SlideShare uma empresa Scribd logo
1 #include <stdio.h>
2
3 void inicia_tabuleiro(char tabuleiro[3][3]) /*preenche todas as posições com um ponto*/
4 {
5 int i, j;
6 printf("nnJogo da velha iniciado...nnTabuleiro inicializado...nn");
7 for(i = 0; i < 3; i++)
8 for(j = 0; j < 3; j++)
9 tabuleiro[i][j] = '.'; /*atribui um ponto nas posições*/
10 }
11
12 void apresenta_tabuleiro(char tabuleiro[3][3]) /*apresenta o tabuleiro com os pontos em seus devidos
lugares*/
13 {
14 int i, j;
15 printf("nnn Tabuleironnn");
16 for(i = 0; i < 3; i++)
17 {
18 for(j = 0; j < 3; j++)
19 printf("%4c", tabuleiro[i][j]);
20 printf("nn");
21 }
22 }
23
24 int realiza_jogada(int jogador, int linha, int coluna, char tabuleiro[3][3]) /*função responsável por
atribuir um caractere definido em uma determinada posição passado a ela*/
25 {
26 int i;
27 if((linha < 0) || (linha > 2) || (coluna < 0) || (coluna > 2)) /*teste os limites das posições
atribuídas*/
28 {
29 printf("Entrada invalida! Digite novamente! ");
30 return 0;
31 }else{
32 if(jogador == 1)
33 tabuleiro[linha][coluna] = 'X'; /*atribui X na posição recebida*/
34 else
35 tabuleiro[linha][coluna] = 'O'; /*/*atribui O na posição recebida*/
36 apresenta_tabuleiro(tabuleiro); /*apresenta novamente o tabuleiro com as posições já
atribuídas anteriormente pelos jogadores*/
37 }
38 }
- 1 -
41 int verifica_tabuleiro(char tabuleiro[3][3]) /*testa todas as combinações*/
42 {
43 if((tabuleiro[0][0] == 'X' && tabuleiro[0][1] == 'X' && tabuleiro[0][2] == 'X') ||
44
45 (tabuleiro[1][0] == 'X' && tabuleiro[1][1] == 'X' && tabuleiro[1][2] == 'X') ||
46
47 (tabuleiro[2][0] == 'X' && tabuleiro[2][1] == 'X' && tabuleiro[2][2] == 'X') ||
48
49 (tabuleiro[0][0] == 'X' && tabuleiro[1][1] == 'X' && tabuleiro[2][2] == 'X') ||
50
51 (tabuleiro[0][2] == 'X' && tabuleiro[1][1] == 'X' && tabuleiro[2][0] == 'X') ||
52
53 (tabuleiro[0][0] == 'X' && tabuleiro[1][0] == 'X' && tabuleiro[2][0] == 'X') ||
54
55 (tabuleiro[0][1] == 'X' && tabuleiro[1][1] == 'X' && tabuleiro[2][1] == 'X') ||
56
57 (tabuleiro[0][2] == 'X' && tabuleiro[1][2] == 'X' && tabuleiro[2][2] == 'X')){
58 printf("Jogador 1 é o VENCEDOR!n");
59 return 1;
60 }else{
61 if((tabuleiro[0][0] == 'O' && tabuleiro[0][1] == 'O' && tabuleiro[0][2] == 'O') ||
62
63 (tabuleiro[1][0] == 'O' && tabuleiro[1][1] == 'O' && tabuleiro[1][2] == 'O') ||
64
65 (tabuleiro[2][0] == 'O' && tabuleiro[2][1] == 'O' && tabuleiro[2][2] == 'O') ||
66
67 (tabuleiro[0][0] == 'O' && tabuleiro[1][1] == 'O' && tabuleiro[2][2] == 'O') ||
68
69 (tabuleiro[0][2] == 'O' && tabuleiro[1][1] == 'O' && tabuleiro[2][0] == 'O') ||
70
71 (tabuleiro[0][0] == 'O' && tabuleiro[1][0] == 'O' && tabuleiro[2][0] == 'O') ||
72
73 (tabuleiro[0][1] == 'O' && tabuleiro[1][1] == 'O' && tabuleiro[2][1] == 'O') ||
74
75 (tabuleiro[0][2] == 'O' && tabuleiro[1][2] == 'O' && tabuleiro[2][2] == 'O')){
76 printf("Jogador 2 é o VENCEDOR!n");
77 return 1;
78 }else
79 if((tabuleiro[0][0] != '.' && tabuleiro[0][1] != '.' && tabuleiro[0][2] != '.') &&
80
81 (tabuleiro[1][0] != '.' && tabuleiro[1][1] != '.' && tabuleiro[1][2] != '.') &&
82
- 2 -
83 (tabuleiro[2][0] != '.' && tabuleiro[2][1] != '.' && tabuleiro[2][2] != '.') &&
84
85 (tabuleiro[0][0] != '.' && tabuleiro[1][1] != '.' && tabuleiro[2][2] != '.') &&
86
87 (tabuleiro[0][2] != '.' && tabuleiro[1][1] != '.' && tabuleiro[2][0] != '.') &&
88
89 (tabuleiro[0][0] != '.' && tabuleiro[1][0] != '.' && tabuleiro[2][0] != '.') &&
90
91 (tabuleiro[0][1] != '.' && tabuleiro[1][1] != '.' && tabuleiro[2][1] != '.') &&
92
93 (tabuleiro[0][2] != '.' && tabuleiro[1][2] != '.' && tabuleiro[2][2] != '.')){
94 printf("Empate!n");
95 return 0;
96 }
97
98 }
99 }
100
101
102 main(void)
103 {
104 int jogador, linha, coluna, i, c;
105 char tabuleiro[3][3];
106
107 inicia_tabuleiro(tabuleiro); /*inicializa tabuleiro*/
108 apresenta_tabuleiro(tabuleiro); /*apresenta tabuleiro*/
109
110 for(i = 0; i < 9; i++) /*loop com o numero determinado de posições do tabuleiro*/
111 {
112 printf(" Jogador 1nn"); /*solicita ao jogador 1 uma posição para jogar*/
113 printf("Linha: ");
114 scanf("%d", &linha);
115 printf("Coluna: ");
116 scanf("%d", &coluna);
117
118 realiza_jogada(jogador = 1, linha, coluna, tabuleiro); /*invoca a função e passa os parâmetros*/
119 c = verifica_tabuleiro(tabuleiro); /*invoca a função ja atribuindo o retorno a c*/
120 if(c == 1) /*testa o retorno*/
121 break; /*quebra o loop caso verdadeiro*/
122 if(c == 0){ /*testa o retorno*/
123 break;
124 }
- 3 -
125
126
127 printf(" Jogador 2nn"); /*solicita ao jogador 2 uma posição para jogar*/
128 printf("Linha: ");
129 scanf("%d", &linha);
130 printf("Coluna: ");
131 scanf("%d", &coluna);
132
133 realiza_jogada(jogador = 2, linha, coluna, tabuleiro); /*invoca a função já atribuindo o
retorno a c*/
134 c = verifica_tabuleiro(tabuleiro);
135 if(c == 1) /*testa o retorno*/
136 break; /*quebra o loop caso verdadeiro*/
137 if(c == 0){ /*testa o retorno*/
138 break;
139 }
140 }
141 }
142
- 4 -

Mais conteúdo relacionado

PDF
Storytelling For The Web: Integrate Storytelling in your Design Process
PDF
Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...
PDF
How to Leverage AI to Boost Employee Wellness - Lydia Di Francesco - SocialHR...
PDF
2024 Trend Updates: What Really Works In SEO & Content Marketing
PDF
Arduino - Projeto GENIUS (jogo de memória)
PPTX
jQuery - Visão Geral
PDF
1 jogos diversos pnaic u_nidade 4
PDF
2024 State of Marketing Report – by Hubspot
Storytelling For The Web: Integrate Storytelling in your Design Process
Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...
How to Leverage AI to Boost Employee Wellness - Lydia Di Francesco - SocialHR...
2024 Trend Updates: What Really Works In SEO & Content Marketing
Arduino - Projeto GENIUS (jogo de memória)
jQuery - Visão Geral
1 jogos diversos pnaic u_nidade 4
2024 State of Marketing Report – by Hubspot

Último (20)

PPTX
Fund-proc-moagem-carvaoerde_PPT_v007.pptx
PDF
Reacoes_expansivas_no_concreto_DEF_ABCP_dez2020.pdf
PPTX
Trabalho sobre Distancia de Visibilidade do Curso de Engenharia
PPT
Ergonomia Aula 01 conceitos básicos segurança
PPTX
Integração SMS introdutorio 111111111111
PDF
Aula sobre Materiais de construção - Construções rurais.ppt
PPT
22a Aula Manejo de Plantas Daninhas(1).ppt
PPTX
Física I - 01 e 02 - Introdução ao método Científico.pptx
PPT
O gênero resumo O gênero resumo O gênero
PDF
Material referente a introdução a instr.
PDF
Aula 01 INT. EnnnnnnnnnnnnnnENF.pdf 2.pdf
PPT
Curso de NR 10 para segurança do trabalho
PDF
Impactos ambientais gerados pela construção civil
PPTX
Treinamento em powerpoint para integração de colaboradores em fábrica de pequ...
PPTX
Caminho das Bromélias _Nível Obra - Governança em SSMA_03.2024.pptx
PPTX
Apresentação_Mecanismo_Garra_P2_18-06-2017.pptx
PDF
Mapa de Oferta Eng Civil (20h 02min, 06-08-2025).pdf
PPT
DIFERENTES TIPOS DE SOLO NA AGRICULTURA.
PDF
Aula_04 gestão da manutenção _Custos da manutencão.pdf
PDF
DETECCAO DE ALARME DE INCENSDIO E PANICO
Fund-proc-moagem-carvaoerde_PPT_v007.pptx
Reacoes_expansivas_no_concreto_DEF_ABCP_dez2020.pdf
Trabalho sobre Distancia de Visibilidade do Curso de Engenharia
Ergonomia Aula 01 conceitos básicos segurança
Integração SMS introdutorio 111111111111
Aula sobre Materiais de construção - Construções rurais.ppt
22a Aula Manejo de Plantas Daninhas(1).ppt
Física I - 01 e 02 - Introdução ao método Científico.pptx
O gênero resumo O gênero resumo O gênero
Material referente a introdução a instr.
Aula 01 INT. EnnnnnnnnnnnnnnENF.pdf 2.pdf
Curso de NR 10 para segurança do trabalho
Impactos ambientais gerados pela construção civil
Treinamento em powerpoint para integração de colaboradores em fábrica de pequ...
Caminho das Bromélias _Nível Obra - Governança em SSMA_03.2024.pptx
Apresentação_Mecanismo_Garra_P2_18-06-2017.pptx
Mapa de Oferta Eng Civil (20h 02min, 06-08-2025).pdf
DIFERENTES TIPOS DE SOLO NA AGRICULTURA.
Aula_04 gestão da manutenção _Custos da manutencão.pdf
DETECCAO DE ALARME DE INCENSDIO E PANICO
Anúncio
Anúncio

Code

  • 1. 1 #include <stdio.h> 2 3 void inicia_tabuleiro(char tabuleiro[3][3]) /*preenche todas as posições com um ponto*/ 4 { 5 int i, j; 6 printf("nnJogo da velha iniciado...nnTabuleiro inicializado...nn"); 7 for(i = 0; i < 3; i++) 8 for(j = 0; j < 3; j++) 9 tabuleiro[i][j] = '.'; /*atribui um ponto nas posições*/ 10 } 11 12 void apresenta_tabuleiro(char tabuleiro[3][3]) /*apresenta o tabuleiro com os pontos em seus devidos lugares*/ 13 { 14 int i, j; 15 printf("nnn Tabuleironnn"); 16 for(i = 0; i < 3; i++) 17 { 18 for(j = 0; j < 3; j++) 19 printf("%4c", tabuleiro[i][j]); 20 printf("nn"); 21 } 22 } 23 24 int realiza_jogada(int jogador, int linha, int coluna, char tabuleiro[3][3]) /*função responsável por atribuir um caractere definido em uma determinada posição passado a ela*/ 25 { 26 int i; 27 if((linha < 0) || (linha > 2) || (coluna < 0) || (coluna > 2)) /*teste os limites das posições atribuídas*/ 28 { 29 printf("Entrada invalida! Digite novamente! "); 30 return 0; 31 }else{ 32 if(jogador == 1) 33 tabuleiro[linha][coluna] = 'X'; /*atribui X na posição recebida*/ 34 else 35 tabuleiro[linha][coluna] = 'O'; /*/*atribui O na posição recebida*/ 36 apresenta_tabuleiro(tabuleiro); /*apresenta novamente o tabuleiro com as posições já atribuídas anteriormente pelos jogadores*/ 37 } 38 } - 1 - 41 int verifica_tabuleiro(char tabuleiro[3][3]) /*testa todas as combinações*/ 42 { 43 if((tabuleiro[0][0] == 'X' && tabuleiro[0][1] == 'X' && tabuleiro[0][2] == 'X') || 44 45 (tabuleiro[1][0] == 'X' && tabuleiro[1][1] == 'X' && tabuleiro[1][2] == 'X') || 46 47 (tabuleiro[2][0] == 'X' && tabuleiro[2][1] == 'X' && tabuleiro[2][2] == 'X') || 48 49 (tabuleiro[0][0] == 'X' && tabuleiro[1][1] == 'X' && tabuleiro[2][2] == 'X') || 50 51 (tabuleiro[0][2] == 'X' && tabuleiro[1][1] == 'X' && tabuleiro[2][0] == 'X') || 52 53 (tabuleiro[0][0] == 'X' && tabuleiro[1][0] == 'X' && tabuleiro[2][0] == 'X') || 54 55 (tabuleiro[0][1] == 'X' && tabuleiro[1][1] == 'X' && tabuleiro[2][1] == 'X') || 56 57 (tabuleiro[0][2] == 'X' && tabuleiro[1][2] == 'X' && tabuleiro[2][2] == 'X')){ 58 printf("Jogador 1 é o VENCEDOR!n"); 59 return 1; 60 }else{ 61 if((tabuleiro[0][0] == 'O' && tabuleiro[0][1] == 'O' && tabuleiro[0][2] == 'O') || 62 63 (tabuleiro[1][0] == 'O' && tabuleiro[1][1] == 'O' && tabuleiro[1][2] == 'O') || 64 65 (tabuleiro[2][0] == 'O' && tabuleiro[2][1] == 'O' && tabuleiro[2][2] == 'O') || 66 67 (tabuleiro[0][0] == 'O' && tabuleiro[1][1] == 'O' && tabuleiro[2][2] == 'O') || 68 69 (tabuleiro[0][2] == 'O' && tabuleiro[1][1] == 'O' && tabuleiro[2][0] == 'O') || 70 71 (tabuleiro[0][0] == 'O' && tabuleiro[1][0] == 'O' && tabuleiro[2][0] == 'O') || 72 73 (tabuleiro[0][1] == 'O' && tabuleiro[1][1] == 'O' && tabuleiro[2][1] == 'O') || 74 75 (tabuleiro[0][2] == 'O' && tabuleiro[1][2] == 'O' && tabuleiro[2][2] == 'O')){ 76 printf("Jogador 2 é o VENCEDOR!n"); 77 return 1; 78 }else 79 if((tabuleiro[0][0] != '.' && tabuleiro[0][1] != '.' && tabuleiro[0][2] != '.') && 80 81 (tabuleiro[1][0] != '.' && tabuleiro[1][1] != '.' && tabuleiro[1][2] != '.') && 82 - 2 -
  • 2. 83 (tabuleiro[2][0] != '.' && tabuleiro[2][1] != '.' && tabuleiro[2][2] != '.') && 84 85 (tabuleiro[0][0] != '.' && tabuleiro[1][1] != '.' && tabuleiro[2][2] != '.') && 86 87 (tabuleiro[0][2] != '.' && tabuleiro[1][1] != '.' && tabuleiro[2][0] != '.') && 88 89 (tabuleiro[0][0] != '.' && tabuleiro[1][0] != '.' && tabuleiro[2][0] != '.') && 90 91 (tabuleiro[0][1] != '.' && tabuleiro[1][1] != '.' && tabuleiro[2][1] != '.') && 92 93 (tabuleiro[0][2] != '.' && tabuleiro[1][2] != '.' && tabuleiro[2][2] != '.')){ 94 printf("Empate!n"); 95 return 0; 96 } 97 98 } 99 } 100 101 102 main(void) 103 { 104 int jogador, linha, coluna, i, c; 105 char tabuleiro[3][3]; 106 107 inicia_tabuleiro(tabuleiro); /*inicializa tabuleiro*/ 108 apresenta_tabuleiro(tabuleiro); /*apresenta tabuleiro*/ 109 110 for(i = 0; i < 9; i++) /*loop com o numero determinado de posições do tabuleiro*/ 111 { 112 printf(" Jogador 1nn"); /*solicita ao jogador 1 uma posição para jogar*/ 113 printf("Linha: "); 114 scanf("%d", &linha); 115 printf("Coluna: "); 116 scanf("%d", &coluna); 117 118 realiza_jogada(jogador = 1, linha, coluna, tabuleiro); /*invoca a função e passa os parâmetros*/ 119 c = verifica_tabuleiro(tabuleiro); /*invoca a função ja atribuindo o retorno a c*/ 120 if(c == 1) /*testa o retorno*/ 121 break; /*quebra o loop caso verdadeiro*/ 122 if(c == 0){ /*testa o retorno*/ 123 break; 124 } - 3 - 125 126 127 printf(" Jogador 2nn"); /*solicita ao jogador 2 uma posição para jogar*/ 128 printf("Linha: "); 129 scanf("%d", &linha); 130 printf("Coluna: "); 131 scanf("%d", &coluna); 132 133 realiza_jogada(jogador = 2, linha, coluna, tabuleiro); /*invoca a função já atribuindo o retorno a c*/ 134 c = verifica_tabuleiro(tabuleiro); 135 if(c == 1) /*testa o retorno*/ 136 break; /*quebra o loop caso verdadeiro*/ 137 if(c == 0){ /*testa o retorno*/ 138 break; 139 } 140 } 141 } 142 - 4 -