Jogo da velha melhorado
Publicado por Samuel Macedo 13/10/2004
[ Hits: 7.650 ]
Versão melhorada do jogo da velha que eu postei ha alguns dias atrás...
#include <stdio.h> int ctrl[3][3]; char imp[3][3]; int ctrlf(int l1,int c1,int l2,int c2,int param) { int cti,ctj,chp1=0,chp2=0,chv=0,cmp,ctvelha=0; if ( param == 1 ){ --l1; --c1; if(ctrl[l1][c1]!= 0) return 5; ctrl[l1][c1] = 1; imp[l1][c1] = 'X'; } else{ --l2; --c2; if(ctrl[l2][c2]!= 0) return 5; 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,param,perg; for(i=0;i<3;i++){ for(j=0;j<3;j++){ ctrl[i][j] = 0; imp[i][j] = '*'; } } do{ do{ impjogo(); if (result == 5) puts("Posicao ja ocupada! Jogue novamente:"); printf("==Jogador 1==\n"); do{ printf("Linha: "); scanf("%d",&j1l); if(j1l>3||j1l<1){ puts("Nao existe essa linha!"); puts("Digita de novo, animal:"); } }while(j1l>3||j1l<1); do{ printf("Coluna: "); scanf("%d",&j1c); if(j1c>3||j1c<1){ puts("Nao existe essa coluna!"); puts("Digita de novo, animal:"); } }while(j1c>3||j1c<1); result = ctrlf(j1l,j1c,j2l,j2c,1); if ( result != 0 && result != 5) break; }while(result==5); do{ impjogo(); if (result == 5) puts("Posicao ja ocupada! Jogue novamente:"); printf("==Jogador 2==\n"); do{ printf("Linha: "); scanf("%d",&j2l); if(j2l>3||j2l<1){ puts("Nao existe essa linha!"); puts("Digita de novo, animal:"); } }while(j2l>3||j2l<1); do{ printf("Coluna: "); scanf("%d",&j2c); if(j2c>3||j2c<1){ puts("Nao existe essa coluna!"); puts("Digita de novo, animal:"); } }while(j2c>3||j2c<1); result = ctrlf(j1l,j1c,j2l,j2c,2); }while(result==5); }while(result == 0); impjogo(); if (result == 1){ puts("JOGADOR 1 GANHOU"); } if (result == 2){ puts("JOGADOR 2 GANHOU"); } if (result == 3){ puts("VELHA..."); } puts("Jogar novamente? ( 0 - Sim / qualquer outra tecla - Nao )"); scanf("%d",&perg); return perg; } main() { while(central()==0){ } }
Criptografar e Descriptografar
Inserir e remover caracter da matriz
Saber se um número é primo (algoritmo super simples)
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Criando uma VPC na AWS via CLI
Multifuncional HP imprime mas não digitaliza
Dica básica para escrever um Artigo.
Como Exibir Imagens Aleatórias no Neofetch para Personalizar seu Terminal
Honey Testing Lab: FARE LABS Pvt. Ltd (0)
Honey Testing Lab: FARE LABS Pvt. Ltd (0)
Melhorando a precisão de valores flutuantes em python[AJUDA] (11)
GLPI - Configuração de destinatário com conta Microsoft Exchange (0)