xico_colaco Posted December 13, 2016 at 04:12 PM Report Share #601223 Posted December 13, 2016 at 04:12 PM Boa tarde, Comecei a desenvolver um projecto do jogo do galo mas sem utilizar nenhum array. Mas ele não consegue detectar a parte do vencedor. Se calhar até é uma coisa trivial mas como comecei à pouco tempo espero que tenham paciência comigo 🙂 Este é o código que escrevi: #include <stdio.h> char a1 = '1'; char a2 = '2'; char a3 = '3'; char b1 = '4'; char b2 = '5'; char b3 = '6'; char c1 = '7'; char c2 = '8'; char c3 = '9'; int val = 0; int count = 0; int venc = 0; void jogo(){ printf("\n | | \n"); printf(" %c | %c | %c \n", c1, c2, c3); printf(" | | \n"); printf("-------------\n"); printf(" | | \n"); printf(" %c | %c | %c \n", b1, b2, b3); printf(" | | \n"); printf("-------------\n"); printf(" | | \n"); printf(" %c | %c | %c \n", a1, a2, a3); printf(" | | \n"); } void vezJogarX() { printf("E a vez do X jogar: \n"); scanf("%d", &val); } void vezJogarO() { printf("E a vez da O jogar: \n"); scanf("%d", &val); } void jogadasX() { switch (val) { case 1: if (a1 == 'X' || a1 == 'O') { printf("Este numero ja esta escolhido!! Perdes a vez por estares a brincar :("); count--; val = 0; } else { a1 = 'X'; val = 0; } break; case 2: if (a2 == 'X' || a2 == 'O') { printf("Este numero ja esta escolhido!! Perdes a vez por estares a brincar :("); count--; val = 0; } else { a2 = 'X'; val = 0; } break; case 3: if (a3 == 'X' || a3 == 'O') { printf("Este numero ja esta escolhido!! Perdes a vez por estares a brincar :("); count--; val = 0; } else { a3 = 'X'; val = 0; } break; case 4: if (b1 == 'X' || b1 == 'O') { printf("Este numero ja esta escolhido!! Perdes a vez por estares a brincar :("); count--; val = 0; } else { b1 = 'X'; val = 0; } break; case 5: if (b2 == 'X' || b2 == 'O') { printf("Este numero ja esta escolhido!! Perdes a vez por estares a brincar :("); count--; val = 0; } else { b2 = 'X'; val = 0; } break; case 6: if (b3 == 'X' || b3 == 'O') { printf("Este numero ja esta escolhido!! Perdes a vez por estares a brincar :("); count--; val = 0; } else { b3 = 'X'; val = 0; } break; case 7: if (c1 == 'X' || c1 == 'O') { printf("Este numero ja esta escolhido!! Perdes a vez por estares a brincar :("); count--; val = 0; } else { c1 = 'X'; val = 0; } break; case 8: if (c2 == 'X' || c2 == 'O') { printf("Este numero ja esta escolhido!! Perdes a vez por estares a brincar :("); count--; val = 0; } else { c2 = 'X'; val = 0; } break; case 9: if (c3 == 'X' || c3 == 'O') { printf("Este numero ja esta escolhido!! Perdes a vez por estares a brincar :("); count--; val = 0; } else { c3 = 'X'; val = 0; } break; } } void jogadasO() { switch (val) { case 1: if (a1 == 'X' || a1 == 'O') { printf("Este numero ja esta escolhido!! Perdes a vez por estares a brincar :("); val = 0; count--; } else { val = 0; a1 = 'O'; } break; case 2: if (a2 == 'X' || a2 == 'O') { printf("Este numero ja esta escolhido!! Perdes a vez por estares a brincar :("); val = 0; count--; } else { val = 0; a2 = 'O'; } break; case 3: if (a3 == 'X' || a3 == 'O') { printf("Este numero ja esta escolhido!! Perdes a vez por estares a brincar :("); val = 0; count--; } else { val = 0; a3 = 'O'; } break; case 4: if (b1 == 'X' || b1 == 'O') { printf("Este numero ja esta escolhido!! Perdes a vez por estares a brincar :("); val = 0; count--; } else { val = 0; b1 = 'O'; } break; case 5: if (b2 == 'X' || b2 == 'O') { printf("Este numero ja esta escolhido!! Perdes a vez por estares a brincar :("); val = 0; count--; } else { val = 0; b2 = 'O'; } break; case 6: if (b3 == 'X' || b3 == 'O') { printf("Este numero ja esta escolhido!! Perdes a vez por estares a brincar :("); val = 0; count--; } else { val = 0; b3 = 'O'; } break; case 7: if (c1 == 'X' || c1 == 'O') { printf("Este numero ja esta escolhido!! Perdes a vez por estares a brincar :("); val = 0; count--; } else { val = 0; c1 = 'O'; } break; case 8: if (c2 == 'X' || c2 == 'O') { printf("Este numero ja esta escolhido!! Perdes a vez por estares a brincar :("); val = 0; count--; } else { val = 0; c2 = 'O'; } break; case 9: if (c3 == 'X' || c3 == 'O') { printf("Este numero ja esta escolhido!! Perdes a vez por estares a brincar :("); val = 0; count--; } else { val = 0; c3 = 'O'; } break; } } void vencedor(){ if (a1 == a2 == a3 == 'X') { printf("O jogador do X ganhou!! PARABENS :))"); //Verifica se há sequência na linha de baixo venc = 1; } else if (a1 == a2 == a3 == 'O') { printf("O jogador da O ganhou!! PARABENS :))"); venc = 1; } else if (b1 == b2 == b3 == 'X') { printf("O jogador da X ganhou!! PARABENS :))"); //Verifica se há sequência na linha do centro venc = 1; } else if (b1 == b2 == b3 == 'O') { printf("O jogador da O ganhou!! PARABENS :))"); venc = 1; } else if (c1 == c2 == c3 == 'X') { printf("O jogador da X ganhou!! PARABENS :))"); //Verifica se há sequência na linha de cima venc = 1; } else if (c1 == c2 == c3 == 'O') { printf("O jogador da O ganhou!! PARABENS :))"); venc = 1; } else if (a1 == b1 == c1 == 'X') { printf("O jogador da X ganhou!! PARABENS :))"); //Verifica se há sequência na 1ª coluna venc = 1; } else if (a1 == b1 == c1 == 'O') { printf("O jogador da O ganhou!! PARABENS :))"); venc = 1; } else if (a2 == b2 == c2 == 'X') { printf("O jogador da X ganhou!! PARABENS :))"); //Verifica se há sequência na 2ª coluna venc = 1; } else if (a2 == b2 == c2 == 'O') { printf("O jogador da O ganhou!! PARABENS :))"); venc = 1; } else if (a3 == b3 == c3 == 'X') { printf("O jogador da X ganhou!! PARABENS :))"); //Verifica se há sequnência na 3ª coluna venc = 1; } else if (a3 == b3 == c3 == 'O') { printf("O jogador da O ganhou!! PARABENS :))"); venc = 1; } else if (a1 == b2 == c3 == 'X') { printf("O jogador da X ganhou!! PARABENS :))"); //Verifica se há sequência na 1ª diagonal venc = 1; } else if (a1 == b2 == c3 == 'O') { printf("O jogador da O ganhou!! PARABENS :))"); venc = 1; } else if (a3 == b2 == c1 == 'X') { printf("O jogador da X ganhou!! PARABENS :))"); // Verifica se há seqência na 2ª diagonal venc = 1; } else if (a3 == b2 == c1 == 'O') { printf("O jogador da O ganhou!! PARABENS :))"); venc = 1; } } int main() { jogo(); while(count != 9){ vezJogarX(); jogadasX(); jogo(); vencedor(); count++; if(count == 9 || venc == 1){ break; } vezJogarO(); jogadasO(); jogo(); vencedor(); count++; if (venc == 1) { break; } } if(count == 9 && venc != 1){ printf("\n O jogo acabou em empate!!\n"); } } Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted December 13, 2016 at 04:26 PM Report Share #601224 Posted December 13, 2016 at 04:26 PM existe alguma razão especial de não usar arrays ? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
iron Posted December 13, 2016 at 04:29 PM Report Share #601225 Posted December 13, 2016 at 04:29 PM venc = 1; } else if (a3 == b2 == c1 == 'O') { printf("O jogador da O ganhou!! PARABENS :))"); Aqui falta te o venc =1 Cumprimentos, iron Link to comment Share on other sites More sharing options...
xico_colaco Posted December 13, 2016 at 04:37 PM Author Report Share #601227 Posted December 13, 2016 at 04:37 PM 9 minutos atrás, HappyHippyHippo disse: existe alguma razão especial de não usar arrays ? É um projeto para a escola. Link to comment Share on other sites More sharing options...
xico_colaco Posted December 13, 2016 at 04:39 PM Author Report Share #601228 Posted December 13, 2016 at 04:39 PM 8 minutos atrás, iron disse: venc = 1; } else if (a3 == b2 == c1 == 'O') { printf("O jogador da O ganhou!! PARABENS :))"); Aqui falta te o venc =1 Modifiquei depois e copiei mal. Faltava também fechar uma chaveta mas continua a não dar Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted December 13, 2016 at 05:41 PM Report Share #601231 Posted December 13, 2016 at 05:41 PM 1 hour ago, xico_colaco said: É um projeto para a escola. mas o projecto diz especificamente que não podes usar arrays ? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
xico_colaco Posted December 13, 2016 at 05:49 PM Author Report Share #601232 Posted December 13, 2016 at 05:49 PM 5 minutos atrás, HappyHippyHippo disse: mas o projecto diz especificamente que não podes usar arrays ? Sim. A professora propôs que fizesse-mos um projeto do jogo do galo e alguém disse que isso era fácil, bastava usar arrays. A professora então disse: - Então vão faze-lo sem utilizar arrays! 😕 Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted December 13, 2016 at 05:59 PM Report Share #601233 Posted December 13, 2016 at 05:59 PM (edited) 28 minutes ago, xico_colaco said: Sim. A professora propôs que fizesse-mos um projeto do jogo do galo e alguém disse que isso era fácil, bastava usar arrays. A professora então disse: - Então vão faze-lo sem utilizar arrays! 😕 para a próxima está calado --------- e ponteiros ? Edited December 13, 2016 at 06:17 PM by HappyHippyHippo IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
brunuu Posted December 13, 2016 at 07:35 PM Report Share #601235 Posted December 13, 2016 at 07:35 PM 1 hora atrás, xico_colaco disse: Sim. A professora propôs que fizesse-mos um projeto do jogo do galo e alguém disse que isso era fácil, bastava usar arrays. A professora então disse: - Então vão faze-lo sem utilizar arrays! 😕 Poem fita cola na boca no gajo que disse isso :/ Link to comment Share on other sites More sharing options...
JakeBass Posted December 13, 2016 at 08:09 PM Report Share #601238 Posted December 13, 2016 at 08:09 PM já vi um parecido em vb: Public Class Form1 Dim i As Integer = 0 Private Sub win() 'O wins If Button1.Text = "O" And Button2.Text = "O" And Button3.Text = "O" Then Label1.Text += 1 MsgBox("O won!", MsgBoxStyle.Information, "Tic Tac Toe") ElseIf Button4.Text = "O" And Button5.Text = "O" And Button6.Text = "O" Then Label1.Text += 1 MsgBox("O won!", MsgBoxStyle.Information, "Tic Tac Toe") ElseIf Button7.Text = "O" And Button8.Text = "O" And Button9.Text = "O" Then Label1.Text += 1 MsgBox("O won!", MsgBoxStyle.Information, "Tic Tac Toe") ElseIf Button1.Text = "O" And Button4.Text = "O" And Button7.Text = "O" Then Label1.Text += 1 MsgBox("O won!", MsgBoxStyle.Information, "Tic Tac Toe") ElseIf Button2.Text = "O" And Button5.Text = "O" And Button8.Text = "O" Then Label1.Text += 1 MsgBox("O won!", MsgBoxStyle.Information, "Tic Tac Toe") ElseIf Button3.Text = "O" And Button6.Text = "O" And Button9.Text = "O" Then Label1.Text += 1 MsgBox("O won!", MsgBoxStyle.Information, "Tic Tac Toe") ElseIf Button1.Text = "O" And Button5.Text = "O" And Button9.Text = "O" Then Label1.Text += 1 MsgBox("O won!", MsgBoxStyle.Information, "Tic Tac Toe") ElseIf Button3.Text = "O" And Button5.Text = "O" And Button7.Text = "O" Then Label1.Text += 1 MsgBox("O won!", MsgBoxStyle.Information, "Tic Tac Toe") 'X wins ElseIf Button1.Text = "X" And Button2.Text = "X" And Button3.Text = "X" Then Label2.Text += 1 MsgBox("X won!", MsgBoxStyle.Information, "Tic Tac Toe") ElseIf Button4.Text = "X" And Button5.Text = "X" And Button6.Text = "X" Then Label2.Text += 1 MsgBox("X won!", MsgBoxStyle.Information, "Tic Tac Toe") ElseIf Button7.Text = "X" And Button8.Text = "X" And Button9.Text = "X" Then Label2.Text += 1 MsgBox("X won!", MsgBoxStyle.Information, "Tic Tac Toe") ElseIf Button1.Text = "X" And Button4.Text = "X" And Button7.Text = "X" Then Label2.Text += 1 MsgBox("X won!", MsgBoxStyle.Information, "Tic Tac Toe") ElseIf Button2.Text = "X" And Button5.Text = "X" And Button8.Text = "X" Then Label2.Text += 1 MsgBox("X won!", MsgBoxStyle.Information, "Tic Tac Toe") ElseIf Button3.Text = "X" And Button6.Text = "X" And Button9.Text = "X" Then Label2.Text += 1 MsgBox("X won!", MsgBoxStyle.Information, "Tic Tac Toe") ElseIf Button1.Text = "X" And Button5.Text = "X" And Button9.Text = "X" Then Label2.Text += 1 MsgBox("X won!", MsgBoxStyle.Information, "Tic Tac Toe") ElseIf Button3.Text = "X" And Button5.Text = "X" And Button7.Text = "X" Then Label2.Text += 1 MsgBox("X won!", MsgBoxStyle.Information, "Tic Tac Toe") End If If Button1.Enabled = False And Button2.Enabled = False And Button3.Enabled = False And Button4.Enabled = False And Button5.Enabled = False And Button6.Enabled = False And Button7.Enabled = False And Button8.Enabled = False And Button9.Enabled = False Then MsgBox("Tie!", MsgBoxStyle.Information, "Tic Tac Toe") End If End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If i = 0 Then Button1.Text = "O" Button1.Enabled = False i = i + 1 Else Button1.Text = "X" Button1.Enabled = False i = i - 1 End If Call win() End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click If i = 0 Then Button2.Text = "O" Button2.Enabled = False i = i + 1 Else Button2.Text = "X" Button2.Enabled = False i = i - 1 End If Call win() End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click If i = 0 Then Button3.Text = "O" Button3.Enabled = False i = i + 1 Else Button3.Text = "X" Button3.Enabled = False i = i - 1 End If Call win() End Sub Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click If i = 0 Then Button4.Text = "O" Button4.Enabled = False i = i + 1 Else Button4.Text = "X" Button4.Enabled = False i = i - 1 End If Call win() End Sub Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click If i = 0 Then Button5.Text = "O" Button5.Enabled = False i = i + 1 Else Button5.Text = "X" Button5.Enabled = False i = i - 1 End If Call win() End Sub Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click If i = 0 Then Button6.Text = "O" Button6.Enabled = False i = i + 1 Else Button6.Text = "X" Button6.Enabled = False i = i - 1 End If Call win() End Sub Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click If i = 0 Then Button7.Text = "O" Button7.Enabled = False i = i + 1 Else Button7.Text = "X" Button7.Enabled = False i = i - 1 End If Call win() End Sub Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click If i = 0 Then Button8.Text = "O" Button8.Enabled = False i = i + 1 Else Button8.Text = "X" Button8.Enabled = False i = i - 1 End If Call win() End Sub Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click If i = 0 Then Button9.Text = "O" Button9.Enabled = False i = i + 1 Else Button9.Text = "X" Button9.Enabled = False i = i - 1 End If Call win() End Sub Private Sub Button10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button10.Click Call clear() End Sub Private Sub clear() Button1.Text = "" Button1.Enabled = True Button2.Text = "" Button2.Enabled = True Button3.Text = "" Button3.Enabled = True Button4.Text = "" Button4.Enabled = True Button5.Text = "" Button5.Enabled = True Button6.Text = "" Button6.Enabled = True Button7.Text = "" Button7.Enabled = True Button8.Text = "" Button8.Enabled = True Button9.Text = "" Button9.Enabled = True End Sub End Class Link to comment Share on other sites More sharing options...
xico_colaco Posted December 13, 2016 at 08:20 PM Author Report Share #601239 Posted December 13, 2016 at 08:20 PM (edited) 51 minutos atrás, brunuu disse: Poem fita cola na boca no gajo que disse isso :/ Já o lixamos XD teve de pagar uma mini a turma toda. 2 horas atrás, HappyHippyHippo disse: para a próxima está calado --------- e ponteiros ? Nem sei o que são isso.. Já dei uma pequena pesquisa no google mas não estou a ver como encaixa nesta situação Edited December 13, 2016 at 08:27 PM by xico_colaco Link to comment Share on other sites More sharing options...
xico_colaco Posted December 13, 2016 at 08:27 PM Author Report Share #601240 Posted December 13, 2016 at 08:27 PM 11 minutos atrás, sketxz disse: já vi um parecido em vb: Public Class Form1 Dim i As Integer = 0 Private Sub win() 'O wins If Button1.Text = "O" And Button2.Text = "O" And Button3.Text = "O" Then Label1.Text += 1 MsgBox("O won!", MsgBoxStyle.Information, "Tic Tac Toe") ElseIf Button4.Text = "O" And Button5.Text = "O" And Button6.Text = "O" Then Label1.Text += 1 MsgBox("O won!", MsgBoxStyle.Information, "Tic Tac Toe") ElseIf Button7.Text = "O" And Button8.Text = "O" And Button9.Text = "O" Then Label1.Text += 1 MsgBox("O won!", MsgBoxStyle.Information, "Tic Tac Toe") ElseIf Button1.Text = "O" And Button4.Text = "O" And Button7.Text = "O" Then Label1.Text += 1 MsgBox("O won!", MsgBoxStyle.Information, "Tic Tac Toe") ElseIf Button2.Text = "O" And Button5.Text = "O" And Button8.Text = "O" Then Label1.Text += 1 MsgBox("O won!", MsgBoxStyle.Information, "Tic Tac Toe") ElseIf Button3.Text = "O" And Button6.Text = "O" And Button9.Text = "O" Then Label1.Text += 1 MsgBox("O won!", MsgBoxStyle.Information, "Tic Tac Toe") ElseIf Button1.Text = "O" And Button5.Text = "O" And Button9.Text = "O" Then Label1.Text += 1 MsgBox("O won!", MsgBoxStyle.Information, "Tic Tac Toe") ElseIf Button3.Text = "O" And Button5.Text = "O" And Button7.Text = "O" Then Label1.Text += 1 MsgBox("O won!", MsgBoxStyle.Information, "Tic Tac Toe") 'X wins ElseIf Button1.Text = "X" And Button2.Text = "X" And Button3.Text = "X" Then Label2.Text += 1 MsgBox("X won!", MsgBoxStyle.Information, "Tic Tac Toe") ElseIf Button4.Text = "X" And Button5.Text = "X" And Button6.Text = "X" Then Label2.Text += 1 MsgBox("X won!", MsgBoxStyle.Information, "Tic Tac Toe") ElseIf Button7.Text = "X" And Button8.Text = "X" And Button9.Text = "X" Then Label2.Text += 1 MsgBox("X won!", MsgBoxStyle.Information, "Tic Tac Toe") ElseIf Button1.Text = "X" And Button4.Text = "X" And Button7.Text = "X" Then Label2.Text += 1 MsgBox("X won!", MsgBoxStyle.Information, "Tic Tac Toe") ElseIf Button2.Text = "X" And Button5.Text = "X" And Button8.Text = "X" Then Label2.Text += 1 MsgBox("X won!", MsgBoxStyle.Information, "Tic Tac Toe") ElseIf Button3.Text = "X" And Button6.Text = "X" And Button9.Text = "X" Then Label2.Text += 1 MsgBox("X won!", MsgBoxStyle.Information, "Tic Tac Toe") ElseIf Button1.Text = "X" And Button5.Text = "X" And Button9.Text = "X" Then Label2.Text += 1 MsgBox("X won!", MsgBoxStyle.Information, "Tic Tac Toe") ElseIf Button3.Text = "X" And Button5.Text = "X" And Button7.Text = "X" Then Label2.Text += 1 MsgBox("X won!", MsgBoxStyle.Information, "Tic Tac Toe") End If If Button1.Enabled = False And Button2.Enabled = False And Button3.Enabled = False And Button4.Enabled = False And Button5.Enabled = False And Button6.Enabled = False And Button7.Enabled = False And Button8.Enabled = False And Button9.Enabled = False Then MsgBox("Tie!", MsgBoxStyle.Information, "Tic Tac Toe") End If End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If i = 0 Then Button1.Text = "O" Button1.Enabled = False i = i + 1 Else Button1.Text = "X" Button1.Enabled = False i = i - 1 End If Call win() End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click If i = 0 Then Button2.Text = "O" Button2.Enabled = False i = i + 1 Else Button2.Text = "X" Button2.Enabled = False i = i - 1 End If Call win() End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click If i = 0 Then Button3.Text = "O" Button3.Enabled = False i = i + 1 Else Button3.Text = "X" Button3.Enabled = False i = i - 1 End If Call win() End Sub Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click If i = 0 Then Button4.Text = "O" Button4.Enabled = False i = i + 1 Else Button4.Text = "X" Button4.Enabled = False i = i - 1 End If Call win() End Sub Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click If i = 0 Then Button5.Text = "O" Button5.Enabled = False i = i + 1 Else Button5.Text = "X" Button5.Enabled = False i = i - 1 End If Call win() End Sub Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click If i = 0 Then Button6.Text = "O" Button6.Enabled = False i = i + 1 Else Button6.Text = "X" Button6.Enabled = False i = i - 1 End If Call win() End Sub Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click If i = 0 Then Button7.Text = "O" Button7.Enabled = False i = i + 1 Else Button7.Text = "X" Button7.Enabled = False i = i - 1 End If Call win() End Sub Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click If i = 0 Then Button8.Text = "O" Button8.Enabled = False i = i + 1 Else Button8.Text = "X" Button8.Enabled = False i = i - 1 End If Call win() End Sub Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click If i = 0 Then Button9.Text = "O" Button9.Enabled = False i = i + 1 Else Button9.Text = "X" Button9.Enabled = False i = i - 1 End If Call win() End Sub Private Sub Button10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button10.Click Call clear() End Sub Private Sub clear() Button1.Text = "" Button1.Enabled = True Button2.Text = "" Button2.Enabled = True Button3.Text = "" Button3.Enabled = True Button4.Text = "" Button4.Enabled = True Button5.Text = "" Button5.Enabled = True Button6.Text = "" Button6.Enabled = True Button7.Text = "" Button7.Enabled = True Button8.Text = "" Button8.Enabled = True Button9.Text = "" Button9.Enabled = True End Sub End Class Não percebo nada de VB 😛 Mas pelo o que consegui "ler" ele está a verificar o vencedor: if (a1 == "O" && a2 == "O" && a3 == "O"){ printf("Jogador O ganhou!"); } Mas não percebo o que o Label1.text faz.. Link to comment Share on other sites More sharing options...
JakeBass Posted December 13, 2016 at 09:32 PM Report Share #601241 Posted December 13, 2016 at 09:32 PM aumenta mais um ponto para o vencedor Link to comment Share on other sites More sharing options...
xico_colaco Posted December 13, 2016 at 09:47 PM Author Report Share #601242 Posted December 13, 2016 at 09:47 PM 14 minutos atrás, sketxz disse: aumenta mais um ponto para o vencedor Foi extamente o que eu fiz então Link to comment Share on other sites More sharing options...
xico_colaco Posted December 13, 2016 at 10:05 PM Author Report Share #601243 Posted December 13, 2016 at 10:05 PM CONSEGUI FAZER 😄 Tinha um erro na função vencedor()... Mas era um erro que eu não sabia que não se podia fazer e não acho que muita gente saiba: 5 == 5 dá 1 mas 5 == 5 == 5 dá 0 Não acho que seja uma coisa muito lógica mas pelos vistos é assim que funciona #include <stdio.h> char a1 = '1'; char a2 = '2'; char a3 = '3'; char b1 = '4'; char b2 = '5'; char b3 = '6'; char c1 = '7'; char c2 = '8'; char c3 = '9'; int val = 0; int count = 0; int venc = 0; void jogo(){ printf("\n | | \n"); printf(" %c | %c | %c \n", c1, c2, c3); printf(" | | \n"); printf("-------------\n"); printf(" | | \n"); printf(" %c | %c | %c \n", b1, b2, b3); printf(" | | \n"); printf("-------------\n"); printf(" | | \n"); printf(" %c | %c | %c \n", a1, a2, a3); printf(" | | \n"); } void vezJogarX() { printf("E a vez do X jogar: \n"); scanf("%d", &val); } void vezJogarO() { printf("E a vez da O jogar: \n"); scanf("%d", &val); } void jogadasX() { switch (val) { case 1: if (a1 == 'X' || a1 == 'O') { printf("Este numero ja esta escolhido!! Perdes a vez por estares a brincar :("); count--; val = 0; } else { a1 = 'X'; val = 0; } break; case 2: if (a2 == 'X' || a2 == 'O') { printf("Este numero ja esta escolhido!! Perdes a vez por estares a brincar :("); count--; val = 0; } else { a2 = 'X'; val = 0; } break; case 3: if (a3 == 'X' || a3 == 'O') { printf("Este numero ja esta escolhido!! Perdes a vez por estares a brincar :("); count--; val = 0; } else { a3 = 'X'; val = 0; } break; case 4: if (b1 == 'X' || b1 == 'O') { printf("Este numero ja esta escolhido!! Perdes a vez por estares a brincar :("); count--; val = 0; } else { b1 = 'X'; val = 0; } break; case 5: if (b2 == 'X' || b2 == 'O') { printf("Este numero ja esta escolhido!! Perdes a vez por estares a brincar :("); count--; val = 0; } else { b2 = 'X'; val = 0; } break; case 6: if (b3 == 'X' || b3 == 'O') { printf("Este numero ja esta escolhido!! Perdes a vez por estares a brincar :("); count--; val = 0; } else { b3 = 'X'; val = 0; } break; case 7: if (c1 == 'X' || c1 == 'O') { printf("Este numero ja esta escolhido!! Perdes a vez por estares a brincar :("); count--; val = 0; } else { c1 = 'X'; val = 0; } break; case 8: if (c2 == 'X' || c2 == 'O') { printf("Este numero ja esta escolhido!! Perdes a vez por estares a brincar :("); count--; val = 0; } else { c2 = 'X'; val = 0; } break; case 9: if (c3 == 'X' || c3 == 'O') { printf("Este numero ja esta escolhido!! Perdes a vez por estares a brincar :("); count--; val = 0; } else { c3 = 'X'; val = 0; } break; } } void jogadasO() { switch (val) { case 1: if (a1 == 'X' || a1 == 'O') { printf("Este numero ja esta escolhido!! Perdes a vez por estares a brincar :("); val = 0; count--; } else { val = 0; a1 = 'O'; } break; case 2: if (a2 == 'X' || a2 == 'O') { printf("Este numero ja esta escolhido!! Perdes a vez por estares a brincar :("); val = 0; count--; } else { val = 0; a2 = 'O'; } break; case 3: if (a3 == 'X' || a3 == 'O') { printf("Este numero ja esta escolhido!! Perdes a vez por estares a brincar :("); val = 0; count--; } else { val = 0; a3 = 'O'; } break; case 4: if (b1 == 'X' || b1 == 'O') { printf("Este numero ja esta escolhido!! Perdes a vez por estares a brincar :("); val = 0; count--; } else { val = 0; b1 = 'O'; } break; case 5: if (b2 == 'X' || b2 == 'O') { printf("Este numero ja esta escolhido!! Perdes a vez por estares a brincar :("); val = 0; count--; } else { val = 0; b2 = 'O'; } break; case 6: if (b3 == 'X' || b3 == 'O') { printf("Este numero ja esta escolhido!! Perdes a vez por estares a brincar :("); val = 0; count--; } else { val = 0; b3 = 'O'; } break; case 7: if (c1 == 'X' || c1 == 'O') { printf("Este numero ja esta escolhido!! Perdes a vez por estares a brincar :("); val = 0; count--; } else { val = 0; c1 = 'O'; } break; case 8: if (c2 == 'X' || c2 == 'O') { printf("Este numero ja esta escolhido!! Perdes a vez por estares a brincar :("); val = 0; count--; } else { val = 0; c2 = 'O'; } break; case 9: if (c3 == 'X' || c3 == 'O') { printf("Este numero ja esta escolhido!! Perdes a vez por estares a brincar :("); val = 0; count--; } else { val = 0; c3 = 'O'; } break; } } void vencedor() { if ((a1 == a2) && (a3 == 'X')) { printf("O jogador do X ganhou!! PARABENS :))"); //Verifica se há sequência na linha de baixo venc = 1; } else if ((a1 == a2) && (a3 == 'O')) { printf("O jogador da O ganhou!! PARABENS :))"); venc = 1; } else if ((b1 == b2) && (b3 == 'X')) { printf("O jogador da X ganhou!! PARABENS :))"); //Verifica se há sequência na linha do centro venc = 1; } else if ((b1 == b2) && (b3 == 'O')) { printf("O jogador da O ganhou!! PARABENS :))"); venc = 1; } else if ((c1 == c2) && (c3 == 'X')) { printf("O jogador da X ganhou!! PARABENS :))"); //Verifica se há sequência na linha de cima venc = 1; } else if ((c1 == c2) && (c3 == 'O')) { printf("O jogador da O ganhou!! PARABENS :))"); venc = 1; } else if ((a1 == b1) && (c1 == 'X')) { printf("O jogador da X ganhou!! PARABENS :))"); //Verifica se há sequência na 1ª coluna venc = 1; } else if ((a1 == b1) && (c1 == 'O')) { printf("O jogador da O ganhou!! PARABENS :))"); venc = 1; } else if ((a2 == b2) && (c2 == 'X')) { printf("O jogador da X ganhou!! PARABENS :))"); //Verifica se há sequência na 2ª coluna venc = 1; } else if ((a2 == b2) && (c2 == 'O')) { printf("O jogador da O ganhou!! PARABENS :))"); venc = 1; } else if ((a3 == b3) && (c3 == 'X')) { printf("O jogador da X ganhou!! PARABENS :))"); //Verifica se há sequnência na 3ª coluna venc = 1; } else if ((a3 == b3) && (c3 == 'O')) { printf("O jogador da O ganhou!! PARABENS :))"); venc = 1; } else if ((a1 == b2) && (c3 == 'X')) { printf("O jogador da X ganhou!! PARABENS :))"); //Verifica se há sequência na 1ª diagonal venc = 1; } else if ((a1 == b2) && (c3 == 'O')) { printf("O jogador da O ganhou!! PARABENS :))"); venc = 1; } else if ((a3 == b2) && (c1 == 'X')) { printf("O jogador da X ganhou!! PARABENS :))"); // Verifica se há seqência na 2ª diagonal venc = 1; } else if ((a3 == b2) && (c1 == 'O')) { printf("O jogador da O ganhou!! PARABENS :))"); venc = 1; } } int main() { jogo(); while(count != 9){ vezJogarX(); jogadasX(); jogo(); vencedor(); count++; if(count == 9 || venc == 1){ break; } vezJogarO(); jogadasO(); jogo(); vencedor(); count++; if (venc == 1) { break; } } if(count == 9 && venc != 1){ printf("\n O jogo acabou em empate!!\n"); } } Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted December 13, 2016 at 10:06 PM Report Share #601244 Posted December 13, 2016 at 10:06 PM ok, agora que não estou a trabalhar, vamos lá ver se consegues chegar ao problema tenta responder às questões em comentário: int i; i = 1 == 0; // qual o valor de i ? i = 1 == 0 == 0; // qual o valor de i ? i = 1 == 0 == 0 == 1; // qual o valor de i ? i = 1 == 0 == 0 == 1 == 0; // qual o valor de i ? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
xico_colaco Posted December 13, 2016 at 10:33 PM Author Report Share #601245 Posted December 13, 2016 at 10:33 PM 20 minutos atrás, HappyHippyHippo disse: ok, agora que não estou a trabalhar, vamos lá ver se consegues chegar ao problema tenta responder às questões em comentário: int i; i = 1 == 0; // qual o valor de i ? i = 1 == 0 == 0; // qual o valor de i ? i = 1 == 0 == 0 == 1; // qual o valor de i ? i = 1 == 0 == 0 == 1 == 0; // qual o valor de i ? Não estava a perceber mas com os teus exemplos já consegui compreender i = 1 == 0; //i = 0 i = 1 == 0 == 0; //i = 0 == 0; i = 1; i = 1 == 0 == 0 == 1; //i = 1 == 1; i = 1; i = 1 == 0 == 0 == 1 == 0; //i = 1 == 0; i = 0; Nem pensei que se tratasse de um problema de Boolean Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted December 13, 2016 at 10:34 PM Report Share #601246 Posted December 13, 2016 at 10:34 PM é para isso que o pessoal está aqui ... --------- só para curiosidade, uma solução bem mais simples (visto que já tens o teu programa a funcionar): #include <stdio.h> #include <string.h> #define PLAYER1 'X' #define PLAYER2 'O' typedef struct { struct { char col1, col2, col3; } line1; struct { char col1, col2, col3; } line2; struct { char col1, col2, col3; } line3; } Board; void printBoard (Board board) { printf(" | | \n" \ " %c | %c | %c \n" \ " | | \n" \ "-------------\n" \ " | | \n" \ " %c | %c | %c \n" \ " | | \n" \ "-------------\n" \ " | | \n" \ " %c | %c | %c \n" \ " | | \n\n", board.line1.col1, board.line1.col2, board.line1.col3, board.line2.col1, board.line2.col2, board.line2.col3, board.line3.col1, board.line3.col2, board.line3.col3); } int askPlay (char player) { int cell = 0; // no input validation ... this is going to be good printf("E a vez do %c jogar: \n", player); scanf(" %d", & cell); return cell - 1; } int validatePlay (Board board, int cell) { char * aux = (char *) & board; if (* (aux + (cell)) != ' ') { printf ("A celula ja se encontra seleccionada\n"); return 0; } return 1; } // lets not complicate even more by using pointer arguments Board doPlay (Board board, int cell, char player) { char * aux = (char *) & board; * (aux + (cell)) = player; return board; } int checkWin (Board board) { int aux; if ( ((aux = board.line1.col1 + board.line1.col2 + board.line1.col3) == PLAYER1 * 3) || (aux == PLAYER2 * 3) || ((aux = board.line2.col1 + board.line2.col2 + board.line2.col3) == PLAYER1 * 3) || (aux == PLAYER2 * 3) || ((aux = board.line3.col1 + board.line3.col2 + board.line3.col3) == PLAYER1 * 3) || (aux == PLAYER2 * 3) || ((aux = board.line1.col1 + board.line2.col1 + board.line3.col1) == PLAYER1 * 3) || (aux == PLAYER2 * 3) || ((aux = board.line1.col2 + board.line2.col2 + board.line3.col2) == PLAYER1 * 3) || (aux == PLAYER2 * 3) || ((aux = board.line1.col3 + board.line2.col3 + board.line3.col3) == PLAYER1 * 3) || (aux == PLAYER2 * 3) || ((aux = board.line1.col1 + board.line2.col2 + board.line3.col3) == PLAYER1 * 3) || (aux == PLAYER2 * 3) || ((aux = board.line1.col3 + board.line2.col2 + board.line3.col1) == PLAYER1 * 3) || (aux == PLAYER2 * 3)) return aux / 3; return 0; } int main (void) { Board board; char win = 0, validCells = 9, cell, player = PLAYER1; memset (& board, ' ', sizeof (board)); while (!win && validCells) { printBoard (board); cell = askPlay (player); if (validatePlay (board, cell)) { board = doPlay (board, cell, player); win = checkWin (board); if (win) { printBoard (board); printf ("O jogador %c ganhou ... parabens\n", win); } else { --validCells; player = player == PLAYER1 ? PLAYER2 : PLAYER1; } } } if (!win) { printBoard (board); printf ("... empate ... que seca ...\n"); } return 0; } IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now