Jogo da velha melhorado
Publicado por Samuel Macedo 13/10/2004
[ Hits: 7.664 ]
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){ } }
clean.h - Biblioteca para limpar um determinado espaço no terminal
Simulador de Cronômetro com 2 digitos
Verificando se um número é primo.
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
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Tem como instalar o gerenciador AMD Adrenalin no Ubuntu 24.04? (16)
Arch Linux - Guia para Iniciantes (2)
Problemas ao instalar o PHP (11)
Tenho dois Link's ( IP VÁLIDOS ), estou tentando fazer o failover... (0)