waar zit de fout..

  • Onderwerp starter Onderwerp starter DJef
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

DJef

Gebruiker
Lid geworden
10 aug 2006
Berichten
41
hoi,

ik ben bezig met het spel 3 op een rij te maken maar dan in 3D. het komt er op neer dat je dus in 3 richtingen 3 op een rij kan hebben (in de drie dimensie) en nog schuin ook.

ik heb er al een hele code van gemaakt met oa een 3D matrix erin om gemakkelijk te kunnen controleren op je 3 op een rij hebt en dus gewonnen bent

het spel gaat tussen 2 spelers: de computer en de man/vrouw die achter de computer zit.
ik heb bij de code zoveel mogelijk info geschreven. nu is de vraag: waar zit ergens de fout want hij werkt niet en ik snap niet waarom

je kan de files hier downloaden:
http://www.freewebs.com/djef/3D op een rij.zip

ik heb visual basic 6.0

alvast bedankt,
Jef.
 
Hoi DJef,

Verander je Sub Check in onderstaande.

Code:
Private Sub Check()

'1) check alles horizontaal
For teller1 = 1 To 3
    For teller2 = 1 To 3
        If DDMatrix(1, teller2, teller1) And DDMatrix(2, teller2, teller1) And DDMatrix(3, teller2, teller1) = wie Then
            Gewonnen
            Exit Sub
        End If
    Next teller2
Next teller1

'2) check alles verticaal

For teller3 = 1 To 3
    For teller4 = 1 To 3
    If DDMatrix(teller4, 1, teller3) And DDMatrix(teller4, 2, teller3) And DDMatrix(teller4, 3, teller3) = wie Then
        Gewonnen
        Exit Sub
    End If
    Next teller4
Next teller3

'3) check diepte
For teller5 = 1 To 3
    For teller6 = 1 To 3
        If DDMatrix(teller6, teller5, 1) And DDMatrix(teller6, teller5, 2) And DDMatrix(teller6, teller5, 3) = wie Then
        Gewonnen
        Exit Sub
        End If
    Next teller6
Next teller5

'4) check diagonaal
For teller = 1 To 3
    If DDMatrix(1, teller, 1) And DDMatrix(2, teller, 2) And DDMatrix(3, teller, 3) = wie Then
    Gewonnen
    Exit Sub
    End If
Next teller

For teller = 1 To 3
    If DDMatrix(1, teller, 3) And DDMatrix(2, teller, 2) And DDMatrix(3, teller, 1) = wie Then
    Gewonnen
    Exit Sub
    End If
Next teller


' FIX check diagonaal HORIZONTAAL + diagonaal VERTICAAL (2x 6!)

If wie = 1 Then
'beurt is aan computer
Computer
End If

End Sub
 
hij werkt nu al gedeeltelijk maar als je speelt dan ben je soms gewonnen terwijl je helemaal geen 3 op een rij hebt :confused:

enig idee hoe dit komt?
 
Zo dan :-)

Je had DDMatrix(1, teller2, teller1) And DDMatrix(2, teller2, teller1) And DDMatrix(3, teller2, teller1) = wie
maar dat moest zijn
DDMatrix(1, teller2, teller1) = wie And DDMatrix(2, teller2, teller1) = wie And DDMatrix(3, teller2, teller1) = wie



Code:
Private Sub Check()

'1) check alles horizontaal
For teller1 = 1 To 3
    For teller2 = 1 To 3
        If DDMatrix(1, teller2, teller1) = wie And DDMatrix(2, teller2, teller1) = wie And DDMatrix(3, teller2, teller1) = wie Then
            Gewonnen
            Exit Sub
        End If
    Next teller2
Next teller1

'2) check alles verticaal

For teller3 = 1 To 3
    For teller4 = 1 To 3
    If DDMatrix(teller4, 1, teller3) = wie And DDMatrix(teller4, 2, teller3) = wie And DDMatrix(teller4, 3, teller3) = wie Then
        Gewonnen
        Exit Sub
    End If
    Next teller4
Next teller3

'3) check diepte
For teller5 = 1 To 3
    For teller6 = 1 To 3
        If DDMatrix(teller6, teller5, 1) = wie And DDMatrix(teller6, teller5, 2) = wie And DDMatrix(teller6, teller5, 3) = wie Then
        Gewonnen
        Exit Sub
        End If
    Next teller6
Next teller5

'4) check diagonaal
For teller = 1 To 3
    If DDMatrix(1, teller, 1) = wie And DDMatrix(2, teller, 2) = wie And DDMatrix(3, teller, 3) = wie Then
    Gewonnen
    Exit Sub
    End If
Next teller

For teller = 1 To 3
    If DDMatrix(1, teller, 3) = wie And DDMatrix(2, teller, 2) = wie And DDMatrix(3, teller, 1) = wie Then
    Gewonnen
    Exit Sub
    End If
Next teller


' FIX check diagonaal HORIZONTAAL + diagonaal VERTICAAL (2x 6!)

If wie = 1 Then
'beurt is aan computer
Computer
End If

End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan