Semestre passado cursando a disciplina Redes II, tive que desenvolver um Jogo da Velha usando sockets. E como sempre deixo tudo pra última hora… Virei a noite/madrugada na casa do cascardo e conseguimos fazer uma versão inicial, e até bem jogável, do Jogo da Velha. Usamos GTK2 e Glib2. Era parte do TP fazer uma pequena documentação. O Jogo é GPL.
Repositório: https://github.com/marcelometal/jogo-da-velha
Nessa primeira “versão 0.1” por decisão de projeto, a porta de conexão escolhida foi a “5555” e o host o “localhost”.
Fontes
Arquivos principais:
Pacote (todos os arquivos):
Métodos do Protocolo:
- START (Inicia um novo jogo)
- JOIN (Usado para entrar em um jogo existente)
- PLAY (Opção escolhida pelo jogador)
- LIST (Lista todos os jogos)
- QUIT (Termina a conexão do cliente)
Dependências:
Como compilar:
gcc -g -Wall -o gtk gtk.c `pkg-config gtk+-2.0 --cflags --libs`
gcc -g -Wall -o velha velha.c `pkg-config glib-2.0 --cflags --libs`
Testando:
Se já foi compilado o cliente e o servidor, basta:
Rodar o servidor:
./velha &
Abrir o cliente A:
./gtk &
clicar em “Start new game”
esperar um outro cliente entrar no jogo
Abrir o cliente B
./gtk &
escolher o jogo no combobox
clicar em “Join existing game”
começar a jogar clicando na posição escolhida
Referências: