Trago-lhes um simples jogo da velha feito em C.
O jogo consiste em você jogar contra o computador. Na função main há um loop que, analogamente, é o "coração" do jogo.
A função init_matriz inicializa a matriz 3x3 com espaços, para que assim fique melhor sua exibição. A função disp_matriz mostra o "tabuleiro" formatado na tela do console. A função move_jogador e move_cpu são, respectivamente, para a sua jogada e a jogada do computador. A função check_vencedor verifica se alguém ganhou o jogo, pela linha, coluna ou diagonal.
Como o programa foi desenvolvido apenas de forma didática, o computador não possui nenhuma "inteligência", sendo assim, na sua vez ele simplesmente procura um espaço em branco e joga nele. Para implementar algum tipo de IA, é necessário apenas modificar a função move_cpu.
12/10/11:
Você pode ver o código do jogo completo no meu repositório no GitHub: Jogo da Velha
22/10/11:
Código no repositório adaptado para rodar tanto em Windows quanto em Linux.
Você pode ver o código do jogo completo no meu repositório no GitHub: Jogo da Velha
22/10/11:
Código no repositório adaptado para rodar tanto em Windows quanto em Linux.
-----
#include <stdio.h> char matriz[3][3]; void init_matriz(){ int i, j; for(i = 0; i < 3; i++) for(j = 0; j < 3; j++) matriz[i][j] = ' '; } void disp_matriz(){ int i, j; printf(" --- --- --- \n"); for(i = 0; i < 3; i++){ printf("|"); for(j = 0; j < 3; j++) printf(" %c |", matriz[i][j]); printf("\n|---|---|---|\n"); } } void move_jogador(){ int x, y; printf("\n\nDigite em qual pos(x, y) deseja jogar: "); scanf("%d%d", &x, &y); x--; y--; if(matriz[x][y] != ' '){ printf("Posicao invalida ou ja jogada, tente novamente...\n\n"); move_jogador(); } else matriz[x][y] = 'X'; } void move_cpu(){ int i, j; for(i = 0; i < 3; i++){ for(j = 0; j < 3; j++) if(matriz[i][j] == ' ') break; if(matriz[i][j] == ' ') break; } if(i*j == 9){ printf("\nEMPATE"); getchar(); exit(0); } else matriz[i][j] = 'O'; } char check_vencedor(){ int i; for(i = 0; i < 3; i++) if( (matriz[i][0] == matriz[i][1]) && (matriz[i][0] == matriz[i][2]) ) return matriz[i][0]; for(i = 0; i < 3; i++) if( (matriz[0][i] == matriz[1][i]) && (matriz[0][i] == matriz[2][i]) ) return matriz[0][i]; if( (matriz[0][0] == matriz[2][2]) && (matriz[1][1] == matriz[2][2]) ) return matriz[1][1]; if( (matriz[1][1] == matriz[0][2]) && (matriz[1][1] == matriz[2][0]) ) return matriz[1][1]; return ' '; } int main(){ char terminado = ' '; printf("\t\tJogo da Velha :)\n"); printf("Modo: vs cpu\n\n"); init_matriz(); do{ disp_matriz(); move_jogador(); terminado = check_vencedor(); if(terminado != ' ') break; move_cpu(); terminado = check_vencedor(); }while( terminado == ' '); if(terminado == 'X') printf("\n\nParabens, voce venceu!\n"); else printf("\n\nQue pena, voce perdeu!\n"); disp_matriz(); fflush(stdin); getchar(); return 0; }
-----
Divirtam-se, façam modificações e code it! :)
Nenhum comentário:
Postar um comentário