xico_colaco 0 Posted December 13, 2016 Report Share Posted December 13, 2016 (edited) 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"); } } Edited December 13, 2016 by xico_colaco Link to post Share on other sites
HappyHippyHippo 1,162 Posted December 13, 2016 Report Share Posted December 13, 2016 existe alguma razão especial de não usar arrays ? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to post Share on other sites
iron 11 Posted December 13, 2016 Report Share Posted December 13, 2016 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 post Share on other sites
xico_colaco 0 Posted December 13, 2016 Author Report Share Posted December 13, 2016 9 minutos atrás, HappyHippyHippo disse: existe alguma razão especial de não usar arrays ? É um projeto para a escola. Link to post Share on other sites
xico_colaco 0 Posted December 13, 2016 Author Report Share Posted December 13, 2016 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 post Share on other sites
HappyHippyHippo 1,162 Posted December 13, 2016 Report Share Posted December 13, 2016 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 post Share on other sites
xico_colaco 0 Posted December 13, 2016 Author Report Share Posted December 13, 2016 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 post Share on other sites
HappyHippyHippo 1,162 Posted December 13, 2016 Report Share Posted December 13, 2016 (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 by HappyHippyHippo IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to post Share on other sites
brunuu 20 Posted December 13, 2016 Report Share Posted December 13, 2016 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 post Share on other sites
JakeBass 12 Posted December 13, 2016 Report Share Posted December 13, 2016 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 post Share on other sites
xico_colaco 0 Posted December 13, 2016 Author Report Share Posted December 13, 2016 (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 by xico_colaco Link to post Share on other sites
xico_colaco 0 Posted December 13, 2016 Author Report Share Posted December 13, 2016 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 post Share on other sites
JakeBass 12 Posted December 13, 2016 Report Share Posted December 13, 2016 aumenta mais um ponto para o vencedor Link to post Share on other sites
xico_colaco 0 Posted December 13, 2016 Author Report Share Posted December 13, 2016 14 minutos atrás, sketxz disse: aumenta mais um ponto para o vencedor Foi extamente o que eu fiz então Link to post Share on other sites
xico_colaco 0 Posted December 13, 2016 Author Report Share Posted December 13, 2016 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 post Share on other sites
HappyHippyHippo 1,162 Posted December 13, 2016 Report Share Posted December 13, 2016 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 post Share on other sites
xico_colaco 0 Posted December 13, 2016 Author Report Share Posted December 13, 2016 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 post Share on other sites
HappyHippyHippo 1,162 Posted December 13, 2016 Report Share Posted December 13, 2016 (edited) 6 minutes ago, xico_colaco said: 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 é 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; } Edited December 13, 2016 by HappyHippyHippo example IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to post Share on other sites
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