' funktio Tekoaly toteuttaa pelin tekoälyn ' parametrit: ' a ensimmäisen pinon koko ' b toisen pinon koko ' c kolmannen pinon koko ' palautusarvo: ' merkkijono, joka kertoo pinon (a-c) sekä poistomäärän ' esim. b4 tarkoittaa "poista 4 toisesta pinosta" Function Tekoaly(a As Number, b As Number, c As Number) As String If a > 0 Then Return "a1" ElseIf b > 0 Then Return "b1" Else Return "c1" End If End Function Dim pino As Number[3] pino[1] = Rnd(5,30) ' ensimmäisen pinon koko pino[2] = Rnd(5,30) ' toisen pinon koko pino[3] = Rnd(5,30) ' kolmannen pinon koko Dim vuoro = 1 'vuoro Dim q = Timer() 'aikaleima TextSize 30 Dim valinta = -1 'valinta Dim maara = -1 'määrä Do 'voitto tai häviö If pino[1] = 0 And pino[2] = 0 And pino[3] = 0 Then If vuoro = 1 Then Message "Hävisit pelin! :(" If vuoro = 2 Then Message "Voitit pelin! :)" Restart End If 'tekoälyn vuoro If vuoro = 2 And valinta = -1 Then Dim x = Tekoaly(pino[1],pino[2],pino[3]) 'x on tekoälyn vastaus 'valinnan tarkistaminen If x = "" Then x = "a1" If Len(x) = 1 Then x = x & "1" valinta = -1 If Left(x,1) = "a" Then valinta = 1 If Left(x,1) = "b" Then valinta = 2 If Left(x,1) = "c" Then valinta = 3 'valinnan rajoittaminen tilanteen mukaan If valinta = -1 Then valinta = 1 If pino[valinta] = 0 Then valinta = 1 If pino[valinta] = 0 Then valinta = 2 If pino[valinta] = 0 Then valinta = 3 maara = Val(Mid(x,2)) If maara < 1 Then maara = 1 If maara > pino[valinta] Then maara = pino[valinta] End If ClearScreen 'ikkunan piirto For i = 1 To 3 'i = pino Dim u = -1 'u = jäljelle jäävät pinossa 'pinossa jäljelle jäävien selvittäminen If vuoro = 1 And MouseX() >= i*150-50 And MouseX() <= i*150+50 Then Dim korkeus = Floor((400-MouseY())/10) 'k = hiiren korkeus [laatikko] If korkeus >= 0 And korkeus < pino[i] Then u = korkeus End If If vuoro = 2 And valinta = i Then u = pino[i]-maara End If 'pinon korkeuden kirjoittaminen If u = -1 Then TextColor 255, 255, 255 DrawText i*150, 420, pino[i], 3 Else If vuoro = 1 Then TextColor 0, 0, 255 Else TextColor 255, 0, 0 End If DrawText i*150, 420, u, 3 End If 'piirrä ja väritä laatikot For j = 1 To pino[i] If u <> -1 And j > u Then If vuoro = 1 Then FillColor 0, 0, 255 Else FillColor 255, 0, 0 End If Else FillColor 200, 200, 200 End If FillRect i*150-50, 400-j*10, 100, 10 DrawColor 0, 0, 0 DrawRect i*150-50, 400-j*10, 100, 10 Next j 'pelaajan valinnan tekeminen If vuoro = 1 And MouseHit(1) And u <> -1 Then pino[i] = u vuoro = 2 q = Timer() valinta = -1 End If 'tekoälyn valinnan tekeminen If vuoro = 2 And Timer()-q > 0.5 Then pino[valinta] = pino[valinta]-maara vuoro = 1 End If Next i DrawScreen Loop