MC336 - Jogo

Criada: 2011-07-22
Modificada: 2011-08-02
Modificada: 2011-09-03 (requisitos para nota 5)

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 aprenderão a compilar e executar código Java. Possíveis jogos para este semestre são: Cilada (um jogo de tabuleiro; veja aqui um vídeo sobre o jogo), e Capture (um jogo de ação; veja uma descrição sobre o jogo).

Perto do dia 10/08/2011, foi decido afinal que o jogo será mesmo Cilada, mas com regras um pouco diferentes.

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 relatório do jogo, mas também seu adversário receberá o mesmo relatório. Através do relatório, é possível reproduzir a partida e avaliar, manter ou reformular 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 é 13:30 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. Inicialmente, serão separados os jogadores que fizeram jogada inválida ou ultrapassaram o limite de tempo em pelo menos 10% dos jogos disputados (os incorretos) dos demais (os corretos). Para os incorretos, a nota será 5p, onde p é a fração de jogos em que não fizeram jogada inválida nem esgotaram tempo sobre jogos disputados. Para os corretos, a pontuação do primeiro colocado corresponderá a uma nota 10; a pontuação do último colocado (entre os corretos) corresponderá a uma nota 5; as demais pontuações receberão uma nota de 5 a 10 de acordo com a fórmula de interpolação linear a seguir:

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

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

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

© 2011 João Meidanis