Jogo da velha, para 2 jogadores, bem simples
Publicado por Samuel Macedo 06/10/2004
[ Hits: 23.768 ]
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){
}
}
Calculadora de equações de 2º grau versão 2 (com funções)
Soma dos dígitos de um número decimal
Determinando resultado de uma partida futebol (iniciante)
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Atualizar Linux Mint 22.2 para 22.3 beta
Jogar games da Battle.net no Linux com Faugus Launcher
Como fazer a Instalação de aplicativos para acesso remoto ao Linux
Assisti Avatar 3: Fogo e Cinzas (3)
Conky, alerta de temperatura alta (8)
Duas Pasta Pessoal Aparecendo no Ubuntu 24.04.3 LTS (42)









