• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

koelho_807

[VB2008] Jogo Do Galo

6 mensagens neste tópico

Boas... Procurei e nada encontrei! Comecei por fazer o jogo do galo 1 Vs 2 e tudo ok. Depois lembreime do 1 Vs PC. E ai comecaram a aparecer as duvidas/problemas :cheesygrin:

Não sei bem como exlicar e nao cria deixar aqui o codigo (por enkaunto) devido a isto ser um trabalho de escola e ser para nota, e pode alguem se lembrar e vir aqui :P

Quem joga em primeiro é o pc, e depois sou eu, e tenho o procedimento que executa sempre que carrego na minha casa. o precedimento contem:

Private Sub comp()
       If primeira = True Then
           Randomize()
           local = CInt(Rnd() * 8) + 1
           Select Case local
               Case 1 : lbl_1.Text = "X"
               Case 2 : lbl_2.Text = "X"
               Case 3 : lbl_3.Text = "X"
               Case 4 : lbl_4.Text = "X"
               Case 5 : lbl_5.Text = "X"
               Case 6 : lbl_6.Text = "X"
               Case 7 : lbl_7.Text = "X"
               Case 8 : lbl_8.Text = "X"
               Case 9 : lbl_9.Text = "X"
           End Select
           tatica = 0
           primeira = False
           GoTo fim
       End If

       'concluir tatica
       tatic()
       If taticx = True Then
           GoTo fim
       End If

       'ganhar
       ganhar()
       If ganharx = True Then
           GoTo fim
       End If

       'deneder
       defender()
       If defend = True Then
           GoTo fim
       End If

       'Criar Tatica
       criar()
       If criarx = True Then
           GoTo fim
       End If
       sorte()
fim:
       jogadas += 1
       verficar()
       lbl_peca.Text = "O"
   End Sub

tatic -> verifica se posso "rematar" a jogada e ganhar o jogo;

ganhar -> faz principalmente a mesma coisa so ke verifica os campos td e ve se tenho 2 em linha e se poder joga a 3 e ganha;

defender -> verfica se o adversario ten 2 em posição de ganhar e corta a jogada;

criar -> ve onde foi jogada a primeira pessa e cria a tatica guardando o numero da tatica para poder realizar a tatica no precedimento tatic;

Não Sei bem esplicar o problema pelo que me parece é que ele entra em loop no precedimento criar. mas deixo aqui o porgrama:

Download do programa: http://koelho807.no.sapo.pt/Release.zip

Nota: Caso for necessario posto aki o codigo todo ;) ou se alguem kiser tb posso mandar por PM :thumbsup:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sinceramente não entendi qual é o problema (embora tivesse visto alguns problemas no jogo).

Não queres dar mais detalhes ? Reparei que não funciona (o computador) muito bem, mas tens de mostrar mais código e explicar mehor.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O Codigo é um bokadinho grande :P Pois O erro, o que me parece, é que ele xega a uma jogada que entra em loop no procedimento criar... e nao sei como para o loop para ele executar o procedimento sorte(). Não sei se existe alguam forma se ele entrar em loop que saia e execute a tatica sorte... fica aqui o codigo, nao sei se ajuda ou se kerem os fixeiros tds para poderem executar e verficar....

Public Class Form1
   Public winer As Char
   Public local, local2, tatica, jogadas, sortex, criarz As Integer
   Public primeira, defend, taticx, criarx, ganharx As Boolean


   Private Sub peca()
       If lbl_peca.Text = "X" Then
           lbl_peca.Text = "O"
       Else
           lbl_peca.Text = "X"
       End If


   End Sub

   Private Sub verficar()
       'Winner X
       If (lbl_1.Text = "X") And (lbl_2.Text = "X") And (lbl_3.Text = "X") Then
           winer = "1"
           lbl_1.BackColor = Color.Yellow
           lbl_2.BackColor = Color.Yellow
           lbl_3.BackColor = Color.Yellow
           'MsgBox("1")
           GoTo fim
       End If
       If (lbl_1.Text = "X") And (lbl_4.Text = "X") And (lbl_7.Text = "X") Then
           winer = "1"
           lbl_1.BackColor = Color.Yellow
           lbl_4.BackColor = Color.Yellow
           lbl_7.BackColor = Color.Yellow
           'MsgBox("2")
           GoTo fim
       End If
       If (lbl_1.Text = "X") And (lbl_5.Text = "X") And (lbl_9.Text = "X") Then
           winer = "1"
           lbl_1.BackColor = Color.Yellow
           lbl_5.BackColor = Color.Yellow
           lbl_9.BackColor = Color.Yellow
           'MsgBox("3")
           GoTo fim
       End If
       If (lbl_2.Text = "X") And (lbl_5.Text = "X") And (lbl_8.Text = "X") Then
           winer = "1"
           lbl_2.BackColor = Color.Yellow
           lbl_5.BackColor = Color.Yellow
           lbl_8.BackColor = Color.Yellow
           'MsgBox("4")
           GoTo fim
       End If
       If (lbl_3.Text = "X") And (lbl_6.Text = "X") And (lbl_9.Text = "X") Then
           winer = "1"
           lbl_3.BackColor = Color.Yellow
           lbl_6.BackColor = Color.Yellow
           lbl_9.BackColor = Color.Yellow
           ' MsgBox("5")
           GoTo fim
       End If
       If (lbl_3.Text = "X") And (lbl_5.Text = "X") And (lbl_7.Text = "X") Then
           winer = "1"
           lbl_3.BackColor = Color.Yellow
           lbl_5.BackColor = Color.Yellow
           lbl_7.BackColor = Color.Yellow
           'MsgBox("6")
           GoTo fim
       End If
       If (lbl_4.Text = "X") And (lbl_5.Text = "X") And (lbl_6.Text = "X") Then
           winer = "1"
           lbl_4.BackColor = Color.Yellow
           lbl_5.BackColor = Color.Yellow
           lbl_6.BackColor = Color.Yellow
           'MsgBox("7")
           GoTo fim
       End If
       If (lbl_7.Text = "X") And (lbl_8.Text = "X") And (lbl_9.Text = "X") Then
           winer = "1"
           lbl_7.BackColor = Color.Yellow
           lbl_8.BackColor = Color.Yellow
           lbl_9.BackColor = Color.Yellow
           GoTo fim
       End If

       'Winner O
       If (lbl_1.Text = "O") And (lbl_2.Text = "O") And (lbl_3.Text = "O") Then
           winer = "2"
           lbl_1.BackColor = Color.Yellow
           lbl_2.BackColor = Color.Yellow
           lbl_3.BackColor = Color.Yellow
           GoTo fim
       End If
       If (lbl_1.Text = "O") And (lbl_4.Text = "O") And (lbl_7.Text = "O") Then
           winer = "2"
           lbl_1.BackColor = Color.Yellow
           lbl_4.BackColor = Color.Yellow
           lbl_7.BackColor = Color.Yellow
           GoTo fim
       End If
       If (lbl_1.Text = "O") And (lbl_5.Text = "O") And (lbl_9.Text = "O") Then
           winer = "2"
           lbl_1.BackColor = Color.Yellow
           lbl_5.BackColor = Color.Yellow
           lbl_9.BackColor = Color.Yellow
           GoTo fim
       End If
       If (lbl_2.Text = "O") And (lbl_5.Text = "O") And (lbl_8.Text = "O") Then
           winer = "2"
           lbl_2.BackColor = Color.Yellow
           lbl_5.BackColor = Color.Yellow
           lbl_8.BackColor = Color.Yellow
           GoTo fim
       End If
       If (lbl_3.Text = "O") And (lbl_6.Text = "O") And (lbl_9.Text = "O") Then
           winer = "2"
           lbl_3.BackColor = Color.Yellow
           lbl_6.BackColor = Color.Yellow
           lbl_9.BackColor = Color.Yellow
           GoTo fim
       End If
       If (lbl_3.Text = "O") And (lbl_5.Text = "O") And (lbl_7.Text = "O") Then
           winer = "2"
           lbl_3.BackColor = Color.Yellow
           lbl_5.BackColor = Color.Yellow
           lbl_7.BackColor = Color.Yellow
           GoTo fim
       End If
       If (lbl_4.Text = "O") And (lbl_5.Text = "O") And (lbl_6.Text = "O") Then
           winer = "1"
           lbl_4.BackColor = Color.Yellow
           lbl_5.BackColor = Color.Yellow
           lbl_6.BackColor = Color.Yellow
           GoTo fim
       End If
       If (lbl_7.Text = "O") And (lbl_8.Text = "O") And (lbl_9.Text = "O") Then
           winer = "1"
           lbl_7.BackColor = Color.Yellow
           lbl_8.BackColor = Color.Yellow
           lbl_9.BackColor = Color.Yellow
           GoTo fim
       End If

       'Empate
       If jogadas = "9" Then
           MsgBox("Houve um empate ", MsgBoxStyle.Critical, "Fim")
           Repetir()
       End If

       'Quem ganhou
fim:
       If winer = "" Then
       Else
           If winer = "1" Then
               MsgBox("O vencedor foi o " & lbl_nome1.Text, MsgBoxStyle.OkOnly, "Fim")
               lbl_jog1.Text += 1
               Repetir()
           Else
               If winer = "2" Then
                   MsgBox("O vencedor foi o " & lbl_nome2.Text, MsgBoxStyle.Information, "Fim")
                   lbl_jog2.Text += 1
                   Repetir()
               End If
           End If
       End If


   End Sub

   Private Sub Repetir()
       lbl_1.Text = ""
       lbl_2.Text = ""
       lbl_3.Text = ""
       lbl_4.Text = ""
       lbl_5.Text = ""
       lbl_6.Text = ""
       lbl_7.Text = ""
       lbl_8.Text = ""
       lbl_9.Text = ""
       lbl_1.BackColor = Color.White
       lbl_2.BackColor = Color.White
       lbl_3.BackColor = Color.White
       lbl_4.BackColor = Color.White
       lbl_5.BackColor = Color.White
       lbl_6.BackColor = Color.White
       lbl_7.BackColor = Color.White
       lbl_8.BackColor = Color.White
       lbl_9.BackColor = Color.White
       lbl_peca.Text = "X"
       winer = "0"
       jogadas = 0
       If lbl_nome1.Text = "PC" Then
           primeira = True
           tatica = 0
           local = 0
           criarz = 0
           criarx = False
           defend = False
           ganharx = False
           taticx = False
           comp()
       End If
   End Sub

   Private Sub lbl_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lbl_1.Click, lbl_2.Click, lbl_3.Click, lbl_4.Click, lbl_5.Click, lbl_6.Click, lbl_7.Click, lbl_8.Click, lbl_9.Click
       If sender.Text = "" Then
           sender.Text = lbl_peca.Text
           peca()
           jogadas += 1
           verficar()
       End If
       If lbl_nome1.Text = "PC" Then
           comp()
       End If


   End Sub

   Private Sub Form1_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
       End
   End Sub

   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       winer = "0"
       jogadas = 0
       If lbl_nome1.Text = "PC" Then
           primeira = True
           taticx = False
           criarx = False
           tatica = 0
           local = 0
           comp()
       End If
   End Sub

   Private Sub SairToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SairToolStripMenuItem.Click
       End
   End Sub

   Private Sub NovoToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NovoToolStripMenuItem.Click
       def.Show()
       Me.Enabled = False


   End Sub

   Private Sub AutorToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AutorToolStripMenuItem.Click
       AboutBox1.Show()
   End Sub

   Private Sub comp()
       If primeira = True Then
           Randomize()
           local = CInt(Rnd() * 8) + 1
           Select Case local
               Case 1 : lbl_1.Text = "X"
               Case 2 : lbl_2.Text = "X"
               Case 3 : lbl_3.Text = "X"
               Case 4 : lbl_4.Text = "X"
               Case 5 : lbl_5.Text = "X"
               Case 6 : lbl_6.Text = "X"
               Case 7 : lbl_7.Text = "X"
               Case 8 : lbl_8.Text = "X"
               Case 9 : lbl_9.Text = "X"
           End Select
           tatica = 0
           primeira = False
           GoTo fim
       End If

       'concluir tatica
       tatic()
       If taticx = True Then
           GoTo fim
       End If

       'ganhar
       ganhar()
       If ganharx = True Then
           GoTo fim
       End If

       'deneder
       defender()
       If defend = True Then
           GoTo fim
       End If

       'Criar Tatica
       criar()
       If criarx = True Then
           GoTo fim
       End If
       sorte()
fim:
       jogadas += 1
       verficar()
       lbl_peca.Text = "O"
   End Sub

   Private Sub defender()
       defend = False
       If (lbl_1.Text = "O") And (lbl_2.Text = "O") Or (lbl_1.Text = "O") And (lbl_3.Text = "O") Or (lbl_2.Text = "O") And (lbl_3.Text = "O") Then
           If lbl_1.Text = "" Then
               lbl_1.Text = "X"
               GoTo fim
           End If
           If lbl_2.Text = "" Then
               lbl_2.Text = "X"
               GoTo fim
           End If
           If lbl_3.Text = "" Then
               lbl_3.Text = "X"
               GoTo fim
           End If
       End If
       If (lbl_1.Text = "O") And (lbl_4.Text = "O") Or (lbl_1.Text = "O") And (lbl_7.Text = "O") Or (lbl_4.Text = "O") And (lbl_7.Text = "O") Then
           If lbl_1.Text = "" Then
               lbl_1.Text = "X"
               GoTo fim
           End If
           If lbl_4.Text = "" Then
               lbl_4.Text = "X"
               GoTo fim
           End If
           If lbl_7.Text = "" Then
               lbl_7.Text = "X"
               GoTo fim
           End If
       End If
       If (lbl_1.Text = "O") And (lbl_5.Text = "O") Or (lbl_1.Text = "O") And (lbl_9.Text = "O") Or (lbl_5.Text = "O") And (lbl_9.Text = "O") Then
           If lbl_1.Text = "" Then
               lbl_1.Text = "X"
               GoTo fim
           End If
           If lbl_5.Text = "" Then
               lbl_5.Text = "X"
               GoTo fim
           End If
           If lbl_9.Text = "" Then
               lbl_9.Text = "X"
               GoTo fim
           End If

       End If
       If (lbl_2.Text = "O") And (lbl_5.Text = "O") Or (lbl_2.Text = "O") And (lbl_8.Text = "O") Or (lbl_5.Text = "O") And (lbl_8.Text = "O") Then

           If lbl_2.Text = "" Then
               lbl_2.Text = "X"
               GoTo fim
           End If
           If lbl_5.Text = "" Then
               lbl_5.Text = "X"
               GoTo fim
           End If
           If lbl_8.Text = "" Then
               lbl_8.Text = "X"
               GoTo fim
           End If

       End If
       If (lbl_3.Text = "O") And (lbl_6.Text = "O") Or (lbl_3.Text = "O") And (lbl_9.Text = "O") Or (lbl_6.Text = "O") And (lbl_9.Text = "O") Then

           If lbl_3.Text = "" Then
               lbl_3.Text = "X"
               GoTo fim
           End If
           If lbl_6.Text = "" Then
               lbl_6.Text = "X"
               GoTo fim
           End If
           If lbl_9.Text = "" Then
               lbl_9.Text = "X"
               GoTo fim
           End If
       End If
       If (lbl_3.Text = "O") And (lbl_5.Text = "O") Or (lbl_3.Text = "O") And (lbl_7.Text = "O") Or (lbl_5.Text = "O") And (lbl_7.Text = "O") Then

           If lbl_3.Text = "" Then
               lbl_3.Text = "X"
               GoTo fim
           End If
           If lbl_5.Text = "" Then
               lbl_5.Text = "X"
               GoTo fim
           End If
           If lbl_7.Text = "" Then
               lbl_7.Text = "X"
               GoTo fim
           End If

       End If
       If (lbl_4.Text = "O") And (lbl_5.Text = "O") Or (lbl_4.Text = "O") And (lbl_6.Text = "O") Or (lbl_5.Text = "O") And (lbl_6.Text = "O") Then

           If lbl_5.Text = "" Then
               lbl_5.Text = "X"
               GoTo fim
           End If
           If lbl_4.Text = "" Then
               lbl_4.Text = "X"
               GoTo fim
           End If
           If lbl_6.Text = "" Then
               lbl_6.Text = "X"
               GoTo fim
           End If

       End If
       If (lbl_7.Text = "O") And (lbl_8.Text = "O") Or (lbl_7.Text = "O") And (lbl_9.Text = "O") Or (lbl_8.Text = "O") And (lbl_9.Text = "O") Then

           If lbl_8.Text = "" Then
               lbl_8.Text = "X"
               GoTo fim
           End If
           If lbl_9.Text = "" Then
               lbl_9.Text = "X"
               GoTo fim
           End If
           If lbl_7.Text = "" Then
               lbl_7.Text = "X"
               GoTo fim
           End If

       End If
       GoTo nada
fim:

       defend = True
nada:

   End Sub

   Private Sub sorte()
       For i = 1 To 9
           Select Case i
               Case 1
                   If lbl_1.Text = "" Then
                       lbl_1.Text = "X"
                       GoTo fim
                   End If
               Case 2
                   If lbl_2.Text = "" Then
                       lbl_2.Text = "X"
                       GoTo fim
                   End If
               Case 3
                   If lbl_3.Text = "" Then
                       lbl_3.Text = "X"
                       GoTo fim
                   End If
               Case 4
                   If lbl_4.Text = "" Then
                       lbl_4.Text = "X"
                       GoTo fim
                   End If
               Case 5
                   If lbl_5.Text = "" Then
                       lbl_5.Text = "X"
                       GoTo fim
                   End If
               Case 6
                   If lbl_6.Text = "" Then
                       lbl_6.Text = "X"
                       GoTo fim
                   End If
               Case 7
                   If lbl_7.Text = "" Then
                       lbl_7.Text = "X"
                       GoTo fim
                   End If
               Case 8
                   If lbl_8.Text = "" Then
                       lbl_8.Text = "X"
                       GoTo fim
                   End If
               Case 9
                   If lbl_9.Text = "" Then
                       lbl_9.Text = "X"
                       GoTo fim
                   End If
           End Select
       Next
fim:
   End Sub

   Private Sub tatic()
       taticx = False
       Select Case tatica
           Case 1
               If lbl_1.Text = "" Then
                   lbl_1.Text = "X"

                   GoTo fim
               End If
               If lbl_2.Text = "" Then
                   lbl_2.Text = "X"

                   GoTo fim
               End If
               If lbl_3.Text = "" Then
                   lbl_3.Text = "X"

                   GoTo fim
               End If
           Case 2
               If lbl_4.Text = "" Then
                   lbl_4.Text = "X"

                   GoTo fim
               End If
               If lbl_5.Text = "" Then
                   lbl_5.Text = "X"

                   GoTo fim
               End If
               If lbl_6.Text = "" Then
                   lbl_6.Text = "X"

                   GoTo fim
               End If
           Case 3
               If lbl_7.Text = "" Then
                   lbl_7.Text = "X"

                   GoTo fim
               End If
               If lbl_8.Text = "" Then
                   lbl_8.Text = "X"

                   GoTo fim
               End If
               If lbl_9.Text = "" Then
                   lbl_9.Text = "X"

                   GoTo fim
               End If
           Case 4
               If lbl_1.Text = "" Then
                   lbl_1.Text = "X"

                   GoTo fim
               End If
               If lbl_4.Text = "" Then
                   lbl_4.Text = "X"

                   GoTo fim
               End If
               If lbl_7.Text = "" Then
                   lbl_7.Text = "X"

                   GoTo fim
               End If
           Case 5
               If lbl_2.Text = "" Then
                   lbl_2.Text = "X"

                   GoTo fim
               End If
               If lbl_5.Text = "" Then
                   lbl_5.Text = "X"

                   GoTo fim
               End If
               If lbl_8.Text = "" Then
                   lbl_8.Text = "X"

                   GoTo fim
               End If
           Case 6
               If lbl_3.Text = "" Then
                   lbl_3.Text = "X"

                   GoTo fim
               End If
               If lbl_6.Text = "" Then
                   lbl_6.Text = "X"

                   GoTo fim
               End If
               If lbl_9.Text = "" Then
                   lbl_9.Text = "X"

                   GoTo fim
               End If
           Case 7
               If lbl_1.Text = "" Then
                   lbl_1.Text = "X"

                   GoTo fim
               End If
               If lbl_5.Text = "" Then
                   lbl_5.Text = "X"

                   GoTo fim
               End If
               If lbl_9.Text = "" Then
                   lbl_9.Text = "X"

                   GoTo fim
               End If
           Case 8
               If lbl_3.Text = "" Then
                   lbl_3.Text = "X"

                   GoTo fim
               End If
               If lbl_5.Text = "" Then
                   lbl_5.Text = "X"

                   GoTo fim
               End If
               If lbl_7.Text = "" Then
                   lbl_7.Text = "X"

                   GoTo fim
               End If

       End Select
       taticx = False
       GoTo nada

fim:
       taticx = True
nada:
   End Sub
   Private Sub criar()
       criarx = False
       'Local 1
       If local = 1 Then
1:
           Randomize()
           sortex = CInt(Rnd() * 2) + 1
           Select Case sortex
               Case 1
                   If lbl_2.Text <> "" Then
                       GoTo 1
                   Else
                       If lbl_3.Text <> "" Then
                           GoTo 1
                       Else
                           lbl_2.Text = "X"

                           tatica = 1
                           GoTo fim
                       End If
                   End If
               Case 2
                   If lbl_5.Text <> "" Then
                       GoTo 1
                   Else
                       If lbl_9.Text <> "" Then
                           GoTo 1
                       Else
                           lbl_5.Text = "X"
                           tatica = 7
                           GoTo fim
                       End If
                   End If
               Case 3
                   If lbl_4.Text <> "" Then
                       GoTo 1
                   Else
                       If lbl_7.Text <> "" Then
                           GoTo 1
                       Else
                           lbl_4.Text = "X"
                           tatica = 4
                           GoTo fim
                       End If
                   End If
           End Select
       End If
       'Local 2

       If local = 2 Then
2:
           sortex = CInt(Rnd() * 1) + 1
           Select Case sortex
               Case 1
                   If lbl_1.Text <> "" Then
                       GoTo 2
                   Else
                       If lbl_3.Text <> "" Then
                           GoTo 2
                       Else
                           lbl_2.Text = "X"
                           tatica = 1
                           GoTo fim
                       End If
                   End If
               Case 2
                   If lbl_5.Text <> "" Then
                       GoTo 2
                   Else
                       If lbl_8.Text <> "" Then
                           GoTo 2
                       Else
                           lbl_5.Text = "X"
                           tatica = 5
                           GoTo fim
                       End If
                   End If
           End Select
       End If
       'Local 3

       If local = 3 Then
3:
           sortex = CInt(Rnd() * 2) + 1
           Select Case sortex
               Case 1
                   If lbl_1.Text <> "" Then
                       GoTo 3
                   Else
                       If lbl_2.Text <> "" Then
                           GoTo 3
                       Else
                           lbl_1.Text = "X"
                           tatica = 1
                           GoTo fim
                       End If
                   End If
               Case 2
                   If lbl_5.Text <> "" Then
                       GoTo 3
                   Else
                       If lbl_7.Text <> "" Then
                           GoTo 3
                       Else
                           lbl_5.Text = "X"
                           tatica = 8
                           GoTo fim
                       End If
                   End If
               Case 3
                   If lbl_6.Text <> "" Then
                       GoTo 3
                   Else
                       If lbl_9.Text <> "" Then
                           GoTo 3
                       Else
                           lbl_6.Text = "X"
                           tatica = 6
                           GoTo fim
                       End If
                   End If
           End Select
       End If
       'Local 4
       If local = 4 Then
4:
           sortex = CInt(Rnd() * 1) + 1
           Select Case sortex
               Case 1
                   If lbl_1.Text <> "" Then
                       GoTo 4
                   Else
                       If lbl_7.Text <> "" Then
                           GoTo 4
                       Else
                           lbl_1.Text = "X"
                           tatica = 4
                           GoTo fim
                       End If
                   End If
               Case 2
                   If lbl_5.Text <> "" Then
                       GoTo 4
                   Else
                       If lbl_6.Text <> "" Then
                           GoTo 4
                       Else
                           lbl_5.Text = "X"
                           tatica = 2
                           GoTo fim
                       End If
                   End If
           End Select
       End If
       'Local 5
       If local = 5 Then
5:
           sortex = CInt(Rnd() * 3) + 1
           Select Case sortex
               Case 1
                   If lbl_1.Text <> "" Then
                       GoTo 5
                   Else
                       If lbl_9.Text <> "" Then
                           GoTo 5
                       Else
                           lbl_1.Text = "X"
                           tatica = 7
                           GoTo fim
                       End If
                   End If
               Case 2
                   If lbl_4.Text <> "" Then
                       GoTo 5
                   Else
                       If lbl_6.Text <> "" Then
                           GoTo 5
                       Else
                           lbl_4.Text = "X"
                           tatica = 2
                           GoTo fim
                       End If
                   End If
               Case 3
                   If lbl_2.Text <> "" Then
                       GoTo 5
                   Else
                       If lbl_8.Text <> "" Then
                           GoTo 5
                       Else
                           lbl_2.Text = "X"
                           tatica = 5
                           GoTo fim
                       End If
                   End If
               Case 4
                   If lbl_3.Text <> "" Then
                       GoTo 5
                   Else
                       If lbl_7.Text <> "" Then
                           GoTo 5
                       Else
                           lbl_3.Text = "X"
                           tatica = 8
                           GoTo fim
                       End If
                   End If
           End Select
       End If
       'Local 6
       If local = 6 Then
6:
           sortex = CInt(Rnd() * 1) + 1
           Select Case sortex
               Case 1
                   If lbl_3.Text <> "" Then
                       GoTo 6
                   Else
                       If lbl_9.Text <> "" Then
                           GoTo 6
                       Else
                           lbl_3.Text = "X"
                           tatica = 6
                           GoTo fim
                       End If
                   End If
               Case 2
                   If lbl_4.Text <> "" Then
                       GoTo 6
                   Else
                       If lbl_5.Text <> "" Then
                           GoTo 6
                       Else
                           lbl_4.Text = "X"
                           tatica = 2
                           GoTo fim
                       End If
                   End If
           End Select
       End If
       'Local 7
       If local = 7 Then
7:
           sortex = CInt(Rnd() * 2) + 1
           Select Case sortex
               Case 1
                   If lbl_1.Text <> "" Then
                       GoTo 7
                   Else
                       If lbl_4.Text <> "" Then
                           GoTo 7
                       Else
                           lbl_1.Text = "X"
                           tatica = 4
                           GoTo fim
                       End If
                   End If
               Case 2
                   If lbl_5.Text <> "" Then
                       GoTo 7
                   Else
                       If lbl_3.Text <> "" Then
                           GoTo 7
                       Else
                           lbl_5.Text = "X"
                           tatica = 8
                           GoTo fim
                       End If
                   End If
               Case 3
                   If lbl_8.Text <> "" Then
                       GoTo 7
                   Else
                       If lbl_9.Text <> "" Then
                           GoTo 7
                       Else
                           lbl_8.Text = "X"
                           tatica = 3
                           GoTo fim
                       End If
                   End If
           End Select
       End If
       'Local 8
       If local = 8 Then
8:
           sortex = CInt(Rnd() * 1) + 1
           Select Case sortex
               Case 1
                   If lbl_7.Text <> "" Then
                       GoTo 8
                   Else
                       If lbl_9.Text <> "" Then
                           GoTo 8
                       Else
                           lbl_7.Text = "X"
                           tatica = 3
                           GoTo fim
                       End If
                   End If
               Case 2
                   If lbl_5.Text <> "" Then
                       GoTo 8
                   Else
                       If lbl_2.Text <> "" Then
                           GoTo 8
                       Else
                           lbl_5.Text = "X"
                           tatica = 5
                           GoTo fim
                       End If
                   End If
           End Select
       End If
       'Local 9
       If local = 9 Then
9:
           sortex = CInt(Rnd() * 2) + 1
           Select Case sortex
               Case 1
                   If lbl_8.Text <> "" Then
                       GoTo 9
                   Else
                       If lbl_7.Text <> "" Then
                           GoTo 9
                       Else
                           lbl_8.Text = "X"
                           tatica = 3
                           GoTo fim
                       End If
                   End If
               Case 2
                   If lbl_5.Text <> "" Then
                       GoTo 9
                   Else
                       If lbl_1.Text <> "" Then
                           GoTo 9
                       Else
                           lbl_5.Text = "X"
                           tatica = 7
                           GoTo fim
                       End If
                   End If
               Case 3
                   If lbl_6.Text <> "" Then
                       GoTo 9
                   Else
                       If lbl_3.Text <> "" Then
                           GoTo 9
                       Else
                           lbl_6.Text = "X"
                           tatica = 6
                           GoTo fim
                       End If
                   End If
           End Select
       End If
       criarx = False
       GoTo nada
fim:
       criarx = True
       criarz += 1
nada:

   End Sub
   Private Sub ganhar()
       ganharx = False
       If (lbl_1.Text = "X") And (lbl_2.Text = "X") Or (lbl_1.Text = "X") And (lbl_3.Text = "X") Or (lbl_2.Text = "X") And (lbl_3.Text = "X") Then
           If lbl_1.Text = "" Then
               lbl_1.Text = "X"
               GoTo fim
           End If
           If lbl_2.Text = "" Then
               lbl_2.Text = "X"
               GoTo fim
           End If
           If lbl_3.Text = "" Then
               lbl_3.Text = "X"
               GoTo fim
           End If
       End If
       If (lbl_1.Text = "X") And (lbl_4.Text = "X") Or (lbl_1.Text = "X") And (lbl_7.Text = "X") Or (lbl_4.Text = "X") And (lbl_7.Text = "X") Then
           If lbl_1.Text = "" Then
               lbl_1.Text = "X"
               GoTo fim
           End If
           If lbl_4.Text = "" Then
               lbl_4.Text = "X"
               GoTo fim
           End If
           If lbl_7.Text = "" Then
               lbl_7.Text = "X"
               GoTo fim
           End If
       End If
       If (lbl_1.Text = "X") And (lbl_5.Text = "X") Or (lbl_1.Text = "X") And (lbl_9.Text = "X") Or (lbl_5.Text = "X") And (lbl_9.Text = "X") Then
           If lbl_1.Text = "" Then
               lbl_1.Text = "X"
               GoTo fim
           End If
           If lbl_5.Text = "" Then
               lbl_5.Text = "X"
               GoTo fim
           End If
           If lbl_9.Text = "" Then
               lbl_9.Text = "X"
               GoTo fim
           End If

       End If
       If (lbl_2.Text = "X") And (lbl_5.Text = "X") Or (lbl_2.Text = "X") And (lbl_8.Text = "X") Or (lbl_5.Text = "X") And (lbl_8.Text = "X") Then

           If lbl_2.Text = "" Then
               lbl_2.Text = "X"
               GoTo fim
           End If
           If lbl_5.Text = "" Then
               lbl_5.Text = "X"
               GoTo fim
           End If
           If lbl_8.Text = "" Then
               lbl_8.Text = "X"
               GoTo fim
           End If

       End If
       If (lbl_3.Text = "X") And (lbl_6.Text = "X") Or (lbl_3.Text = "X") And (lbl_9.Text = "X") Or (lbl_6.Text = "X") And (lbl_9.Text = "X") Then

           If lbl_3.Text = "" Then
               lbl_3.Text = "X"
               GoTo fim
           End If
           If lbl_6.Text = "" Then
               lbl_6.Text = "X"
               GoTo fim
           End If
           If lbl_9.Text = "" Then
               lbl_9.Text = "X"
               GoTo fim
           End If
       End If
       If (lbl_3.Text = "X") And (lbl_5.Text = "X") Or (lbl_3.Text = "X") And (lbl_7.Text = "X") Or (lbl_5.Text = "X") And (lbl_7.Text = "X") Then

           If lbl_3.Text = "" Then
               lbl_3.Text = "X"
               GoTo fim
           End If
           If lbl_5.Text = "" Then
               lbl_5.Text = "X"
               GoTo fim
           End If
           If lbl_7.Text = "" Then
               lbl_7.Text = "X"
               GoTo fim
           End If

       End If
       If (lbl_4.Text = "X") And (lbl_5.Text = "X") Or (lbl_4.Text = "X") And (lbl_6.Text = "X") Or (lbl_5.Text = "X") And (lbl_6.Text = "X") Then

           If lbl_5.Text = "" Then
               lbl_5.Text = "X"
               GoTo fim
           End If
           If lbl_4.Text = "" Then
               lbl_4.Text = "X"
               GoTo fim
           End If
           If lbl_6.Text = "" Then
               lbl_6.Text = "X"
               GoTo fim
           End If

       End If
       If (lbl_7.Text = "X") And (lbl_8.Text = "X") Or (lbl_7.Text = "X") And (lbl_9.Text = "X") Or (lbl_8.Text = "X") And (lbl_9.Text = "X") Then

           If lbl_8.Text = "" Then
               lbl_8.Text = "X"
               GoTo fim
           End If
           If lbl_9.Text = "" Then
               lbl_9.Text = "X"
               GoTo fim
           End If
           If lbl_7.Text = "" Then
               lbl_7.Text = "X"
               GoTo fim
           End If

       End If
       ganharx = False
       GoTo nada

fim:
       ganharx = True
nada:
   End Sub
End Class

peca -> Muda a peça a ser jogada, passa de X para O e de O para X;

verficar -> Verifica se ha vencedor ou empate;

Repetir -> limpa a mesa, clear as variaveis e lables;

lbl_Click -> insere as peças ao clicar nas labls(nota depois para melhoramento, devo bloquear a peça ja utilizada);

comp -> excuta os procedimentos para o PC jogar;

tatic -> verifica se posso "rematar" a jogada e ganhar o jogo;

ganhar -> faz principalmente a mesma coisa so ke verifica os campos td e ve se tenho 2 em linha e se poder joga a 3 e ganha;

defender -> verfica se o adversario ten 2 em posição de ganhar e corta a jogada;

criar -> ve onde foi jogada a primeira pessa e cria a tatica guardando o numero da tatica para poder realizar a tatica no precedimento tatic;

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para começar, duas coisas:

1º Atenção que isto é um fórum e não é um telemóvel. Cuidado com o Português, por até vai contra as regras do fórum tanto K, X, etc.

2º Não vejo mal nenhum em colocares aqui as tuas dúvidas. Só ajudamos a esclarecer e não fizemos propriamente trabalhos a ninguém.

Em relação ao teu problema, não vejo como o procedimento sorte() vá entrar em loop. No entanto devias sinceramente dar uma volta ao teu código porque está enorme sem necessidade e mal construido.

Por exemplo:

a) Para gerar um numero aleatório usas a classe Random()

Dim rnd As New Random()

Dim resultado As Byte = rnd.Next(1,9)

:) Coloca um Option Explicit On no inicio da classe para te obrigar a declarar as variáveis, evitando erros

c) Queres sair de um ciclo For usar Exit For e não esses métodos do VB6 Goto Fim, etc. Isso já está ultrapassadissimo.

d) Comentários ... muito importante para explicar o código, e ainda por cima é um trabalho para a nota

e) Verifica se não consegues condensar algum código em uma função ou procedimento externos. Tipo a sortex , etc.

Tenta lá melhorar algumas coisas e utilizando um breakpoint vê lá onde o programa encrava. Faz um debug passo a passo e vê o que está a funcionar mal.

É mais simples e de certeza que descobres facilmente.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Gostei das regras :P eu tb nao gosto mas quando é em demasia...mas como nao sou prof de prtugues... mas passando a frente (devem tar a pensar este vem para aqui mandar :nono: mas eu sou assim :thumbdown:) em relação as dicas para mim eu fiquei 0, pois e o meu primeiro ano em vb e utilizo o que sei, obrigado na mesma quando souber mais aplicarei e posto aqui os melhoramentos. No entanto tom com duvida numa questao que ate pode ser simples:

-Quando clico no botao (no menu strip) novo eu mando executar:

Me.Enabled = False
       Repetir()
       def.Show()

mando executar o repetir para limpar a tela, no entanto caso esteja a jogar com o pc ele limpa e joga desseguida, poderei passar esse problema utilizando um "salto" na instrução repetir, no entanto caso ele queira jogar outra vez com o pc como é que eu fasso para o pc jogar a primeira peça(executar o procedimento comp)??

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

desculpa o duble pst!!!!! sory

Mas ja descobri retirei o end do form close e meti as instruções def.show(), me.colse() e ficou tudo OK obrigado na mesma :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora