Mostrando postagens com marcador Jogo da Velha. Mostrar todas as postagens
Mostrando postagens com marcador Jogo da Velha. Mostrar todas as postagens

domingo, julho 06, 2008

Jogo da Velha

Conforme eu comentei anteriormente, eu estava fazendo um jogo da velha para a disciplina de Sistemas Distribuídos na faculdade. O período acabou e o jogo ficou quase pronto.

Ele está funcionando bem, porém algumas vezes acontecem uns bugs que eu ainda não consegui solucionar. O mais comum (mas não tão comum assim) é um jogador vencer e o jogo dizer que deu empate. Uma outra coisa que está faltando é implementar a desconexão de um jogador do servidor, por enquanto quando isso acontece o servidor pode ficar instável e enviar mensagens erradas (além de "prender" o outro jogador no jogo).

Apesar disso, o jogo já está praticamente pronto e eu estou disponibilizando os binários pra quem quiser testar. O código-fonte, conforme combinado com o professor da disciplina, estará disponível em breve, assim que eu tiver um tempo para incluir uns comentários e deixá-lo mais legível.

Pra jogar, basta rodar o servidor.exe e depois dois ou mais cliente.exe. Um novo jogo é criado sempre que dois clientes se conectam, então se um número ímpar de clientes estiverem conectados, o último a entrar fica aguardando numa fila.

O jogo funciona localmente (com o IP loop back 127.0.0.1) ou em rede, bastando mudar o endereço no arquivo ip.txt (coloque o endereço da máquina onde o servidor está rodando). Se for jogar em rede, recomendo que desligue o seu Firewall caso o jogo apresente algum problema de conexão.

Por fim, o jogo foi desenvolvido no Visual C++ 2008 Express Edition (com Allegro e WinSocket) e pode ser necessário instalar o pacote de redistribuição do VC++ para jogar. Se for o caso, o instalador (de 1.7MB) pode ser encontrado aqui.

Para fazer o download e testar o jogo da velha, basta clicar aqui. Qualquer dúvida ou sugestão, falem nos comentários. Se encontrarem algum bug (além dos já comentados) não deixem de falar também.

P.S.: O carnaval da tela de jogo é culpa do David.
P.S.2: Agradecimentos à galera, tanto da faculdade quanto do MSN, que me ajudou a testar e encontrar os bugs no jogo.