Jogo da Velha
Publicado por Hunz 01/09/2004
[ Hits: 14.753 ]
Homepage: http://tnegri.com/
Famoso Jogo da Velha, bem simples.
/* ***************************************** AUTOR: Thiago ( hunz ) EMAIL / MSN: tn_negri@hotmail.com ESPAÇO VOL: www.vivaolinux.com.br/~hunz ***************************************** */ #include <stdio.h> #include <stdlib.h> char set; int linha=0,coluna=0,win,casa[3][3]; void draw(int x, int y) { if (casa[x][y] == '{FONTE}') printf(" "); if (casa[x][y] == 1) printf("X"); if (casa[x][y] == 2) printf("O"); } void limpa() { printf("\e[H\e[2J"); } void jogo() { printf(" 1 2 3\n"); printf("1 "); draw(0,0); printf(" | "); draw(0,1); printf(" | "); draw(0,2); printf("\n ---+---+---\n2 "); draw(1,0); printf(" | "); draw(1,1); printf(" | "); draw(1,2); printf("\n ---+---+---\n3 "); draw(2,0); printf(" | "); draw(2,1); printf(" | "); draw(2,2); } void check() { int i; for (i=0;i<3;i++) { /* Horizontal */ if (casa[i][0] == casa[i][1] && casa[i][0] == casa[i][2]) { if (casa[i][0] == 1) win=1; if (casa[i][0] == 2) win=2; } } for (i=0;i<3;i++) { /* Vertical */ if (casa[0][i] == casa[1][i] && casa[0][i] == casa[2][i]) { if (casa[0][i] == 1) win=1; if (casa[0][i] == 2) win=2; } } if (casa[0][0] == casa[1][1] && casa[0][0] == casa[2][2]) { /* Diagonal Cima->Baixo*/ if (casa[0][0] == 1) win=1; if (casa[0][0] == 2) win=2; } if (casa[0][2] == casa[1][1] && casa[0][2] == casa[2][0]) { /* Diagonal Baixo->Cima */ if (casa[0][2] == 1) win=1; if (casa[0][2] == 2) win=2; } } void play(int player) { if (player==1) set=1; if (player==2) set=2; play: linha=0; coluna=0; while (linha<1 || linha>3) { printf("\nJogador %d. Escolha a Linha (1,2,3): ",set); scanf("%d",&linha); getchar(); } while (coluna<1 || coluna>3) { printf("\nJogador %d. Escolha a Coluna (1,2,3): ",set); scanf("%d",&coluna); getchar(); } linha--; coluna--; if (casa[linha][coluna] != 1 && casa[linha][coluna] != 2) casa[linha][coluna]=set; else { printf("A casa está em uso! Jogue Novamente..\n"); sleep(2); limpa(); jogo(); goto play; } } void main() { limpa(); jogo(); play(1); check(); if (win == 1 || win == 2) goto end; limpa(); jogo(); play(2); check(); if (win == 1 || win == 2) goto end; limpa(); jogo(); play(1); check(); if (win == 1 || win == 2) goto end; limpa(); jogo(); play(2); check(); if (win == 1 || win == 2) goto end; limpa(); jogo(); play(1); check(); if (win == 1 || win == 2) goto end; limpa(); jogo(); play(2); check(); if (win == 1 || win == 2) goto end; limpa(); jogo(); play(1); check(); if (win == 1 || win == 2) goto end; limpa(); jogo(); play(2); check(); if (win == 1 || win == 2) goto end; limpa(); jogo(); play(1); check(); if (win == 1 || win == 2) goto end; end: limpa(); jogo(); if (win == 1 || win == 2) printf("\nJogador %d venceu o jogo!\n",win); else printf("\nEmpate!\n"); }
Exemplo de um "Jogo de Labirinto"
Atualizações de Apps, Desktop e Kernel agitam o ecossistema Linux nesta terça-feira
Miyoo Mini Plus + Onion OS (Linux)
IA local no bolso, novo visual no Raspberry Pi OS e mais destaques do software livre
Kernel turbinado, compatibilidade em alta e debate sobre sustentabilidade: o dia no mundo Linux
Kernel turbinado e GNOME 49 dominam o giro do dia no mundo Linux
Adicionando o repositório backports no Debian 13 Trixie
Como definir um IP estático no Linux Debian
Como colocar atalho para uma pasta na área de trabalho do Ubuntu 24.04... (1)
Como listar os arquivos em "bloquin... (0)
Como vencer a procrastinação? (8)
Adicional de convivdado em linux somente linha de comando (3)