Jogo da velha, para 2 jogadores, bem simples
Publicado por Samuel Macedo 06/10/2004
[ Hits: 23.544 ]
Este é um jogo da velha bem básico mesmo, para 2 jogadores, em C, que eu fiz bem rápido, em uns 15 minutos... Dá pra melhorar bastante coisa no código, principalmente na parte de checar se dá velha... É interessante p/ estudar matrizes.
#include <stdio.h> int ctrl[3][3]; char imp[3][3]; int ctrlf(int l1,int c1,int l2,int c2) { int cti,ctj,chp1=0,chp2=0,chv=0,cmp; --l1; --c1; --l2; --c2; ctrl[l1][c1] = 1; imp[l1][c1] = 'X'; ctrl[l2][c2] = 2; imp[l2][c2] = 'O'; for(cti=0;cti<3;cti++){ for(ctj=0;ctj<3;ctj++){ if(ctrl[cti][ctj] == 1){ ++chp1; } if(ctrl[cti][ctj] == 2){ ++chp2; } if(ctrl[cti][ctj] == 0){ chv = 1; } } if (chp1 == 3) return 1; if (chp2 == 3) return 2; chp1 = 0; chp2 = 0; }//checagem linha for(cti=0;cti<3;cti++){ for(ctj=0;ctj<3;ctj++){ if(ctrl[ctj][cti] == 1){ ++chp1; } if(ctrl[ctj][cti] == 2){ ++chp2; } } if (chp1 == 3) return 1; if (chp2 == 3) return 2; chp1 = 0; chp2 = 0; }//checagem coluna for(cti = 0;cti<3;cti++){ if(ctrl[cti][cti] == 1){ ++chp1; } if(ctrl[cti][cti] == 2){ ++chp2; } } if (chp1 == 3) return 1; if (chp2 == 3) return 2; chp1 = 0; chp2 = 0; // checagem diag. principal for(cti=0;cti<3;cti++){ for(ctj=0;ctj<3;ctj++){ if(cti + ctj == 2){ if(ctrl[cti][ctj] == 1){ ++chp1; } if(ctrl[cti][ctj] == 2){ ++chp2; } } } } if (chp1 == 3) return 1; if (chp2 == 3) return 2; chp1 = 0; chp2 = 0; //checagem diag. sec. if (chv == 0){ return 3; } return 0; } impjogo() { int impi, impj; system("clear"); for(impi=0;impi<3;impi++){ for(impj=0;impj<3;impj++){ printf("%c ",imp[impi][impj]); } printf("\n"); } } int central() { int i,j,j1l,j1c,j2l,j2c,result; for(i=0;i<3;i++){ for(j=0;j<3;j++){ ctrl[i][j] = 0; imp[i][j] = '*'; } } do{ impjogo(); printf("==Jogador 1==\n"); printf("Linha: "); scanf("%d",&j1l); printf("Coluna: "); scanf("%d",&j1c); printf("==Jogador 2==\n"); printf("Linha: "); scanf("%d",&j2l); printf("Coluna: "); scanf("%d",&j2c); result = ctrlf(j1l,j1c,j2l,j2c); }while(result == 0); impjogo(); if (result == 1){ puts("JOGADOR 1 GANHOU"); } if (result == 2){ puts("JOGADOR 2 GANHOU"); } if (result == 3){ puts("VELHA..."); } return 1; } main() { while(central()==0){ } }
vetor01.c (programa que envolve vetor, simples)
Lista ligada simples, algoritmos de inserção, busca e impressão
Aprenda a Gerenciar Permissões de Arquivos no Linux
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Procurando vídeos de YouTube pelo terminal e assistindo via mpv (2025)
Gravação de tela com temporizador
Aplicativo simples para gravar tela
Eu tive esse erro aqui depois de de baixar o HyprLand Ubuntu na versão... (0)
Como fazer boot em img do debian 12.img da web? (11)
Manjaro 25.0 no permite usar crontab (1)