MC336 - Jogo

Criada: 2010-07-22

A atividade relativa ao jogo será dividida em três fases. A primeira fase, com duração aproximada de um mês, será de familiarização dos alunos com o jogo. A segunda fase, com duração aproximada de dois meses, será de implementação e testes. A terceira fase, com duração aproximada de um mês, será o campeonato oficial.

Descrição de cada fase

Os jogadores devem ser escritos em Java. A primeira fase, com duração aproximada de um mês, destina-se a permitir que os alunos se familiarizem com o jogo e com a linguagem Java. Os alunos poderão baixar exemplos de código de jogadores disponibilizados pela revista Queue, bem como componentes de software que permitirão realizar jogos entre dois oponentes. Os alunos aprenderão a compilar e executar código Java. Há dois tipos de componente: uma para visualização 2D e uma para visualização 3D.

Na segunda fase, que ocupará aproximadamente o segundo e terceiro meses de aula, os alunos submetrão seus jogadores para jogar uns com os outros. O jogador deverá ser submetido em código fonte Java, que será compilado pelo instrutor e, caso não apresente erros, será colocado para jogar com três outros jogadores submetidos, escolhidos ao acaso. Estas partidas não serão divulgadas na sua integridade. Apenas os resultados serão divulgados, bem como o nome dos adversários.

Adicionalmente, cada aluno poderá requisitar até 3 jogos contra adversários específicos. Será mantido um placar com o número de jogos aleatórios efetuados e número de vitórias de cada aluno. Nestes jogos específicos, o aluno requisitante receberá um trace do jogo, mas também seu adversário receberá o mesmo trace. Através do trace, é possível reproduzir a partida no simulador e perceber estratégias de jogo.

As disputas serão feitas uma vez por dia. A cada dia, todos os alunos que tiverem jogador válido submetido entrarão na disputa. Caso um aluno tenha submetido um jogador falho, será utilizado o último jogador válido deste aluno. Podem ser feitas várias submissões durante o dia, mas apenas a última será considerada. O horário limite de submissão é 23:59 daquele dia.

Além disso, os códigos dos jogadores serão analisados para ver se contém comandos espúrios e maliciosos, como tentativa de acesso ao sistema de arquivos local, tentativa de acesso à rede, etc. Quaisquer arquivos fonte que contiverem comandos considerados maliciosos serão descartados e o aluno que os tiver submetido receberá zero na disicplina como punição.

A terceira e última fase ocorrerá durante o quarto mês de aula, aproximadamente. Há um dia específico para a entrega dos programas. Quem se atrasar, poderá ainda entregar durante os próximos 5 dias, com penalidades proporcionais ao tempo de atraso. Após estes 5 dias, teremos os jogadores oficiais de cada aluno, que serão os últimos jogadores válidos submetidos por cada aluno. Estes jogadores participarão de um campeonato de pontos corridos, onde jogarão todos contra todos, sendo que a tabela e as colocações após cada rodada serão divuldagas periodicamente. A critério do instrutor, poderão também participar deste campeonato um ou mais jogadores escritos pelo instrutor ou por terceiros.

Como serão calculadas as notas

Ao final das três fases, teremos um campeonato todos contra todos concluido. A pontuação neste campeonato determinará a nota de cada aluno. A pontuação do primeiro colocado corresponderá a uma nota 10. A pontuação do último colocado corresponderá a uma nota 1. As demais pontuações receberão uma nota de 1 a 10 de acordo com a fórmula de interpolação linear a seguir:

nota = 1 + 9 * (pont - pult) / (ppri - pult) gráfico de cálculo de nota de jogo

onde "nota" é a nota da pessoa, "pont" é a pontuação que conseguiu no campenato, "ppri" é a pontuação do primeiro colocado, e "pult" é a pontuação do último colocado.

Quem não entregar jogador válido receberá nota zero como nota do projeto de programação. Não será aceito como válido um jogador igual ou muito parecido com os jogadores disponibilizados como exemplo na primeira fase.


MC336 Home

© 2010 João Meidanis