Tässä ois ristinolla (10x10).
Todella sekavaa koodia mutta toimii (ainaskin mulla).
Formille pitää laittaa vain seuraavat asiat:
Form1.ScaleMode = 3
Form1.ScaleHeight = 400
Form1.ScaleWidth = 400
ainii, Tässä ei oo tasapeli mahdollisuutta (mutta sen varmaan näkee jos kaikki ruudut on täynnä), eikä tietokone vastustajaa
"Tarkistus" kohdassa mukana foorumilla oli myös hunajavohveli ja sqwiik. Kiitos heille.
'Ristinolla by zigilii Dim xkohta, ykohta Dim lukux, lukuo Dim vuoro As Boolean Dim merkkio(-1 To 10, -1 To 10) Dim merkki(-1 To 10, -1 To 10) As String Dim ohi As Boolean Private Sub Form_Activate() alku 'alku tilanne End Sub Private Sub Form_Click() If ohi = True Then Exit Sub 'jos peli on ohi , lopetetaan For i = 0 To 9 For a = 0 To 9 'katotaan onko painetussa ruudussa merkkiä If merkkio(xkohta, ykohta) = True And merkkio(xkohta, ykohta) = merkkio(a, i) Then Exit Sub Next 'jos on lopetetaan Next merkkio(xkohta, ykohta) = True 'tallennetaan kohta mihin merkki laitetaan If vuoro = True Then 'jos on X:n vuoro merkki(xkohta, ykohta) = "X" 'laitetaan X 'piirretään X Line (xkohta * 40, ykohta * 40)-(xkohta * 40 + 40, ykohta * 40 + 40) Line (xkohta * 40, ykohta * 40 + 40)-(xkohta * 40 + 40, ykohta * 40) 'O:n vuoro vuoro = False ElseIf vuoro = False Then 'jos O:n vuoro merkki(xkohta, ykohta) = "O" 'laitetaan O 'piirretään O Circle (xkohta * 40 + 20, ykohta * 40 + 20), 20 'X:n vuoro vuoro = True End If 'tarkisetaan onko viiden suoria tarkistus End Sub Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) xkohta = Int(X / 40) 'missä hiiri liikkuu ykohta = Int(Y / 40) End Sub Sub loppu() MsgBox "Peli loppui!" & Chr(13) & "Aloitetaan uusi peli!", , "Ristinolla" alku End Sub Sub alku() ohi = False 'peli ei ole ohi vuoro = True 'x:n vuoro For i = 0 To 9 For a = 0 To 9 'tyhjätään merkit merkki(a, i) = " " Next Next Cls 'pyyhitään pelilauta For a = 0 To 10 For i = 0 To 10 'piirretään ruudukko Line (0, a * 40)-(400, a * 40), RGB(0, 0, 255) '(sinisellä) Line (i * 40, 0)-(i * 40, 400), RGB(0, 0, 255) Next Next For i = 0 To 9 For a = 0 To 9 merkkio(a, i) = False Next Next End Sub
'tarkistus by zigilii & hunajavohveli & sqwiik Sub tarkistus() 'X 'vaaka lukux = 0 For i = 0 To 9 For a = 0 To 9 If merkki(a, i) = "X" Then 'jos löytyy X lukux = lukux + 1 'aletaan laskea Else lukux = 0 'nolla x:ää peräkkäin End If If lukux = 5 Then 'jos viiden suora MsgBox "Pelaaja X voitti!", , "Ristinolla" ohi = True: loppu 'x voitti, peli on ohi Exit Sub End If Next Next 'pysty lukux = 0 For a = 0 To 9 For i = 0 To 9 If merkki(a, i) = "X" Then 'jos löytyy X lukux = lukux + 1 'aletaan laskea Else lukux = 0 'nolla x:ää peräkkäin End If If lukux = 5 Then 'jos viiden suora MsgBox "Pelaaja X voitti!", , "Ristinolla" ohi = True: loppu 'x voitti, peli on ohi Exit Sub End If Next Next 'vino (luode-kaakko) lukux = 0 For i = 0 To 9 For a = 0 To 9 If merkki(a, i) = "X" Then 'jos löytyy X lukux = lukux + 1 'aletaan laskea i = i + 1 'ja lisätään y:tä Else lukux = 0 'nolla x:ää peräkkäin End If If lukux = 5 Then 'jos viiden suora MsgBox "Pelaaja X voitti!", , "Ristinolla" ohi = True: loppu 'x voitti, peli on ohi Exit Sub End If Next Next 'vino(koillinen-lounas) lukux = 0 For i = 9 To 0 Step -1 'mennään y:tä takaperin For a = 0 To 9 If merkki(a, i) = "X" Then 'jos löytyy X lukux = lukux + 1 'aletaan laskea i = i - 1 'vähennetään y:tä Else lukux = 0 'nolla x:ää peräkkäin End If If lukux = 5 Then 'jos viiden suora MsgBox "Pelaaja X voitti!", , "Ristinolla" ohi = True: loppu 'x voitti, peli on ohi Exit Sub End If Next Next 'en jaksa kommentoida koska on samat kommentit paitsi X=O 'O 'vaaka lukuo = 0 For i = 0 To 9 For a = 0 To 9 If merkki(a, i) = "O" Then lukuo = lukuo + 1 Else lukuo = 0 End If If lukuo = 5 Then MsgBox "Pelaaja O voitti!", , "Ristinolla" ohi = True: loppu Exit Sub End If Next Next 'pysty lukuo = 0 For a = 0 To 9 For i = 0 To 9 If merkki(a, i) = "O" Then lukuo = lukuo + 1 Else lukuo = 0 End If If lukuo = 5 Then MsgBox "Pelaaja O voitti!", , "Ristinolla" ohi = True: loppu Exit Sub End If Next Next 'vino(kaakko-luode) lukuo = 0 For i = 0 To 9 For a = 0 To 9 If merkki(a, i) = "O" Then lukuo = lukuo + 1 i = i + 1 Else lukuo = 0 End If If lukuo = 5 Then MsgBox "Pelaaja O voitti!", , "Ristinolla" ohi = True: loppu Exit Sub End If Next Next 'vino(koillinen-luonas) lukuo = 0 For i = 9 To 0 Step -1 For a = 0 To 9 Step 1 If merkki(a, i) = "O" Then lukuo = lukuo + 1 i = i - 1 Else lukuo = 0 End If If lukuo = 5 Then MsgBox "Pelaaja O voitti!", , "Ristinolla" ohi = True: loppu Exit Sub End If Next Next End Sub
Aihe on jo aika vanha, joten et voi enää vastata siihen.