Grafiikkaan käytin aikaa jonkin aikaa... (Hahmon spriteen)
Idea: Hyppää porttien ohi niin kauan kuin pystyt!
Näppäimet:
Z - Hyppää (Jos on maassa)
X - Spurttaa (Jos on maassa) - Laskeutuu alas nopeammin (Jos on ilmassa)
Kuva:
Edit: Bugi korjattu.
Ainakin siinä on sellainen bugi että ukko jumittuu välillä seinään.Knoy wrote:Edit: Bugi korjattu.
Se bugi tuli kun korjasin ensimmäisen bugin, korjaan juuri nyt tuota bugia.skinkken wrote:Ainakin siinä on sellainen bugi että ukko jumittuu välillä seinään.Knoy wrote:Edit: Bugi korjattu.
Osuin ensimmäisellä hypyllä alas tullessa portin alaosaan ja peli jäi ilmeisesti loputtomaan looppiin.Knoy wrote:Duunailin pienen pelin nimi on City Runner
Grafiikkaan käytin aikaa jonkin aikaa... (Hahmon spriteen)
Idea: Hyppää porttien ohi niin kauan kuin pystyt!
Näppäimet:
Z - Hyppää (Jos on maassa)
X - Spurttaa (Jos on maassa) - Laskeutuu alas nopeammin (Jos on ilmassa)
Kuva:Ajattelin jatkaa pelin kehittelyä ja tehdä siitä jonkin kokoisen projektin, mutta ensimmäinen osa nyt tänne kun kerron on näin pieni.
Edit: Bugi korjattu.
Nyt peli taas on liian vaikea. Ohjaus voisi olla kiva olla nuolinäppäimistä (ylänuoli hyppää, oikea spurttaa). Muuten ihan hyvä peli.Knoy wrote:Edit: Ainiin vaikeus astetta nostettu kun peli oli hieman liika helppo...
Code: Select all
[23:36:33] <Minixmix> jos nyt viel yhen lastin heittäis
[23:36:48] <Minixmix> Sit loput vois hoitaa kännyllä :/
[00:14:49] <Minixmix> mutta nyt tyhjennykselle ->
Code: Select all
SCREEN 600,600
Dim Ruutu(30,30) As Byte //Unohdin nollat =)
Dim pois As Byte //Milloin löydettiin oikea kohta
Dim x As Integer //väliaikaiset...
Dim y As Integer
Dim i As Integer
///////////Tekoälyyn////////////
Dim Arvo As Byte//Suurin väliaikainen arvo
Dim Arvo1 As Byte //Polun arvo, Vaaka
Dim Arvo2 As Byte //Pysty
Dim Arvo3 As Byte //Viisto(Ylhäältä oikealta)
Dim Arvo4 As Byte //Viisto(alhaalta oikealta)
Dim Maa1 As Byte //Polun Maa, Vaaka
Dim Maa2 As Byte //Pysty
Dim Maa3 As Byte //Viisto(Ylhäältä oikealta)
Dim Maa4 As Byte //Viisto(alhaalta oikealta)
Dim Päätty1 As Byte //Milloin polku päättyy
Dim Päätty2 As Byte
Dim Päätty3 As Byte
Dim Päätty4 As Byte
//Suurimmat
Dim RuudunArvot As Byte //Arvot
Dim RuudunArvotX As Byte //Sijainti
Dim RuudunArvotY As Byte
Dim RuudunArvo As Byte //Suurin (ratkaiseva)
//Pisteytys
Const Tyhjä = 6 //Tärkein
Const Pelaaja = 13
Const Tietokone = 14
Const Kerroin = 3 //Piste kerroin
Dim Kerroin1 As Byte //Sarjat huomataan paremmin
Dim Kerroin2 As Byte
Dim Kerroin3 As Byte
Dim Kerroin4 As Byte
/////////////////////////////////
Dim Määrä As Byte
Määrä = 5
Puhdista()
Repeat
pois = 0
For x=20 To 600 Step 20
For y=20 To 600 Step 20
Color cbwhite
Line x,0,x,600 //Ylhäältä alas
Line 0,y,600,y//Vasemmalta oikealle
If pois = 0 And MouseHit(1) And MouseX() <= x And MouseY() <= y
If Ruutu(x/20,y/20) = Tyhjä
Ruutu(x/20,y/20) = Pelaaja
pois = 1
Else
pois = 2
EndIf
EndIf
If Ruutu(x/20,y/20) = Pelaaja
Color cbgreen
Box x-19,y-19,19,19
ElseIf Ruutu(x/20,y/20) = Tietokone
Color cbred
Box x-19,y-19,19,19
EndIf
Next y
Next x
If pois =1
Gosub Tarkistus
Gosub Tietokone
Ruutu(RuudunArvotX, RuudunArvotY) = Tietokone
Color cbred
Box RuudunArvotX*20-19,RuudunArvotY*20-19,19,19
RuudunArvot = 0
RuudunArvo = 0
RuudunArvotX = 0
RuudunArvotY = 0
Gosub Tarkistus
EndIf
DrawScreen
Forever
Tarkistus:
Arvo1 = 0
Arvo2 = 0
Arvo3 = 0
Arvo4 = 0
For x=1 To 30
For y=1 To 30
If Ruutu(x,y) > Tyhjä
For i=0 To Määrä
pois = 1
If Ruutu(x,y) = Ruutu(x+i,y)
Arvo1 = Arvo1 + 1
pois = 0
EndIf
If Ruutu(x,y) = Ruutu(x,y+i)
Arvo2 = Arvo2 + 1
pois = 0
EndIf
If Ruutu(x,y) = Ruutu(x+i,y+i)
Arvo3 = Arvo3 + 1
pois = 0
EndIf
If Ruutu(x,y) = Ruutu(x+i,y-i)
Arvo4 = Arvo4 + 1
pois = 0
EndIf
If pois = 1
Exit
EndIf
Next i
If Max(Arvo1,Max(Arvo2,Max(Arvo3,Arvo4))) >= Määrä
Voitto(Ruutu(x,y))
EndIf
Arvo1 = 0
Arvo2 = 0
Arvo3 = 0
Arvo4 = 0
EndIf
Next y
Next x
Return
Tietokone:
ClearText
For x=1 To 30
For y=1 To 30
If Ruutu(x,y) = Tyhjä
For i=-Määrä-1 To Määrä-1
If i >< 0
If x+i >= 1 And x+i <= 30 And Päätty1 = 0
If Ruutu(x+i,y) = Tyhjä
Arvo1 = Arvo1 + Ruutu(x+i,y)
Kerroin1 = 1
ElseIf Maa1 = Ruutu(x+i,y) Or Maa1 = 0
Kerroin1 = Kerroin1 * Kerroin
Arvo1 = Arvo1 + Ruutu(x+i,y) - Abs(i) + Kerroin1
Maa1 = Ruutu(x+i,y)
Else
Päätty1 = 1
Arvo1 = Arvo1/2
EndIf
EndIf
If y+i >= 1 And y+i <= 30 And Päätty2 = 0
If Ruutu(x,y+i) = Tyhjä
Arvo2 = Arvo2 + Ruutu(x,y+i)
Kerroin2 = 1
ElseIf Maa2 = Ruutu(x,y+i) Or Maa2 = 0
Kerroin2 = Kerroin2 * Kerroin
Arvo2 = Arvo2 + Ruutu(x,y+i) - Abs(i) + Kerroin2
Maa2 = Ruutu(x,y+i)
Else
Päätty2 = 1
Arvo2 = Arvo2/2
EndIf
EndIf
If x-i >= 1 And x-i <= 30 And y-i >= 1 And y-i <= 30 And Päätty3 = 0
If Ruutu(x-i,y-i) = Tyhjä
Arvo3 = Arvo3 + Ruutu(x-i,y-i)
Kerroin3 = 1
ElseIf Maa3 = Ruutu(x-i,y-i) Or Maa3 = 0
Kerroin3 = Kerroin3 * Kerroin
Arvo3 = Arvo3 + Ruutu(x-i,y-i) - Abs(i) + Kerroin3
Maa3 = Ruutu(x-i,y-i)
Else
Päätty3 = 1
Arvo3 = Arvo3/2
EndIf
EndIf
If x+i >= 1 And x+i <= 30 And y-i >= 1 And y-i <= 30 And Päätty4 = 0
If Ruutu(x+i,y-i) = Tyhjä
Arvo4 = Arvo4 + Ruutu(x+i,y-i)
Kerroin4 = 1
ElseIf Maa4 = Ruutu(x+i,y-i) Or Maa4 = 0
Kerroin4 = Kerroin4 * Kerroin
Arvo4 = Arvo4 + Ruutu(x+i,y-i) - Abs(i) + Kerroin4
Maa4 = Ruutu(x+i,y-i)
Else
Päätty4 = 1
Arvo4 = Arvo4/2
EndIf
EndIf
EndIf
Next i
Arvo = Max(Arvo1,Max(Arvo2,Max(Arvo3,Arvo4)))
Locate (x-1)*20, (y-1)*20
AddText arvo +""
If RuudunArvo < Arvo//Jos oli tähän mennessä paras niin muistiin vaan!
RuudunArvot = Arvo1 + Arvo2 + Arvo3 + Arvo4
RuudunArvotX = x
RuudunArvotY = y
RuudunArvo = Arvo
ElseIf RuudunArvot < Arvo1 + Arvo2 + Arvo3 + Arvo4 And RuudunArvo = Arvo
RuudunArvot = Arvo1 + Arvo2 + Arvo3 + Arvo4
RuudunArvotX = x
RuudunArvotY = y
RuudunArvo = Arvo
EndIf
EndIf
Arvo = 0
Arvo1 = 0
Arvo2 = 0
Arvo3 = 0
Arvo4 = 0
Maa1 = 0
Maa2 = 0
Maa3 = 0
Maa4 = 0
Kerroin1 = 1
Kerroin2 = 1
Kerroin3 = 1
Kerroin4 = 1
Päätty1 = 0
Päätty2 = 0
Päätty3 = 0
Päätty4 = 0
Next y
Next x
Return
Function Voitto(maa)
Color cbwhite
If maa = Tyhjä
Text 10,5, "Tasapeli"
ElseIf maa = Pelaaja
Text 10,5, "Pelaaja voitti"
Else
Text 10,5, "Tekoäly voitti"
EndIf
DrawScreen
ClearMouse()
WaitMouse
ClearMouse()
Puhdista()
EndFunction
Function Puhdista()
For x=1 To 30
For y=1 To 30
Ruutu(x,y) = Tyhjä
Next y
Next x
EndFunction
Code: Select all
SCREEN 600,600
SetWindow "Loading..."
Dim Ruutu(30,30) As Byte //Unohdin nollat =)
Dim pois As Byte //Milloin löydettiin oikea kohta
Dim x As Integer //väliaikaiset...
Dim y As Integer
Dim i As Integer
///////////Tekoälyyn////////////
Dim Arvo As Byte//Suurin väliaikainen arvo
Dim Arvo1 As Byte //Polun arvo, Vaaka
Dim Arvo2 As Byte //Pysty
Dim Arvo3 As Byte //Viisto(Ylhäältä oikealta)
Dim Arvo4 As Byte //Viisto(alhaalta oikealta)
Dim Maa1 As Byte //Polun Maa, Vaaka
Dim Maa2 As Byte //Pysty
Dim Maa3 As Byte //Viisto(Ylhäältä oikealta)
Dim Maa4 As Byte //Viisto(alhaalta oikealta)
Dim Päätty1 As Byte //Milloin polku päättyy
Dim Päätty2 As Byte
Dim Päätty3 As Byte
Dim Päätty4 As Byte
//Suurimmat
Dim RuudunArvot As Byte //Arvot
Dim RuudunArvotX As Byte //Sijainti
Dim RuudunArvotY As Byte
Dim RuudunArvo As Byte //Suurin (ratkaiseva)
//Pisteytys
Const Tyhjä = 6 //Tärkein
Const Pelaaja = 13
Const Tietokone = 14
Const Kerroin = 3 //Piste kerroin
Dim Kerroin1 As Byte //Sarjat huomataan paremmin
Dim Kerroin2 As Byte
Dim Kerroin3 As Byte
Dim Kerroin4 As Byte
/////////////////////////////////
Dim Määrä As Byte
Määrä = 5
Global tausta
tausta = MakeImage(600,600)
DrawToImage tausta
For x=20 To 600 Step 20
For y=20 To 600 Step 20
Color cbwhite
Line x,0,x,600
Line 0,y,600,y
Next y
Next x
DrawToScreen
Puhdista()
Repeat
SetWindow "Ristinolla"
pois = 0
DrawImage tausta,0,0
For x=20 To 600 Step 20
For y=20 To 600 Step 20
If pois = 0 And MouseHit(1) And MouseX() <= x And MouseY() <= y
If Ruutu(x/20,y/20) = Tyhjä Then
Ruutu(x/20,y/20) = Pelaaja
pois = 1
Else
pois = 2
EndIf
EndIf
Next y
Next x
If pois =1
SetWindow "Loading..."
Gosub Tarkistus
Gosub Tietokone
Ruutu(RuudunArvotX, RuudunArvotY) = Tietokone
Color cbred
Box RuudunArvotX*20-19,RuudunArvotY*20-19,19,19
RuudunArvot = 0
RuudunArvo = 0
RuudunArvotX = 0
RuudunArvotY = 0
Gosub Tarkistus
DrawToImage tausta
For x=20 To 600 Step 20
For y=20 To 600 Step 20
If Ruutu(x/20,y/20) = Pelaaja Then
Color cbgreen
Box x-19,y-19,19,19
ElseIf Ruutu(x/20,y/20) <> tyhjä And Ruutu(x/20,y/20) <> pelaaja Then
Color cbred
Box x-19,y-19,19,19
EndIf
Next y
Next x
DrawToScreen
EndIf
DrawScreen
Forever
Tarkistus:
Arvo1 = 0
Arvo2 = 0
Arvo3 = 0
Arvo4 = 0
For x=1 To 30
For y=1 To 30
If Ruutu(x,y) > Tyhjä
For i=0 To Määrä
pois = 1
If Ruutu(x,y) = Ruutu(x+i,y)
Arvo1 = Arvo1 + 1
pois = 0
EndIf
If Ruutu(x,y) = Ruutu(x,y+i)
Arvo2 = Arvo2 + 1
pois = 0
EndIf
If Ruutu(x,y) = Ruutu(x+i,y+i)
Arvo3 = Arvo3 + 1
pois = 0
EndIf
If Ruutu(x,y) = Ruutu(x+i,y-i)
Arvo4 = Arvo4 + 1
pois = 0
EndIf
If pois = 1
Exit
EndIf
Next i
If Max(Arvo1,Max(Arvo2,Max(Arvo3,Arvo4))) >= Määrä
Voitto(Ruutu(x,y))
EndIf
Arvo1 = 0
Arvo2 = 0
Arvo3 = 0
Arvo4 = 0
EndIf
Next y
Next x
Return
Tietokone:
ClearText
For x=1 To 30
For y=1 To 30
If Ruutu(x,y) = Tyhjä
For i=-Määrä-1 To Määrä-1
If i >< 0
If x+i >= 1 And x+i <= 30 And Päätty1 = 0
If Ruutu(x+i,y) = Tyhjä
Arvo1 = Arvo1 + Ruutu(x+i,y)
Kerroin1 = 1
ElseIf Maa1 = Ruutu(x+i,y) Or Maa1 = 0
Kerroin1 = Kerroin1 * Kerroin
Arvo1 = Arvo1 + Ruutu(x+i,y) - Abs(i) + Kerroin1
Maa1 = Ruutu(x+i,y)
Else
Päätty1 = 1
Arvo1 = Arvo1/2
EndIf
EndIf
If y+i >= 1 And y+i <= 30 And Päätty2 = 0
If Ruutu(x,y+i) = Tyhjä
Arvo2 = Arvo2 + Ruutu(x,y+i)
Kerroin2 = 1
ElseIf Maa2 = Ruutu(x,y+i) Or Maa2 = 0
Kerroin2 = Kerroin2 * Kerroin
Arvo2 = Arvo2 + Ruutu(x,y+i) - Abs(i) + Kerroin2
Maa2 = Ruutu(x,y+i)
Else
Päätty2 = 1
Arvo2 = Arvo2/2
EndIf
EndIf
If x-i >= 1 And x-i <= 30 And y-i >= 1 And y-i <= 30 And Päätty3 = 0
If Ruutu(x-i,y-i) = Tyhjä
Arvo3 = Arvo3 + Ruutu(x-i,y-i)
Kerroin3 = 1
ElseIf Maa3 = Ruutu(x-i,y-i) Or Maa3 = 0
Kerroin3 = Kerroin3 * Kerroin
Arvo3 = Arvo3 + Ruutu(x-i,y-i) - Abs(i) + Kerroin3
Maa3 = Ruutu(x-i,y-i)
Else
Päätty3 = 1
Arvo3 = Arvo3/2
EndIf
EndIf
If x+i >= 1 And x+i <= 30 And y-i >= 1 And y-i <= 30 And Päätty4 = 0
If Ruutu(x+i,y-i) = Tyhjä
Arvo4 = Arvo4 + Ruutu(x+i,y-i)
Kerroin4 = 1
ElseIf Maa4 = Ruutu(x+i,y-i) Or Maa4 = 0
Kerroin4 = Kerroin4 * Kerroin
Arvo4 = Arvo4 + Ruutu(x+i,y-i) - Abs(i) + Kerroin4
Maa4 = Ruutu(x+i,y-i)
Else
Päätty4 = 1
Arvo4 = Arvo4/2
EndIf
EndIf
EndIf
Next i
Arvo = Max(Arvo1,Max(Arvo2,Max(Arvo3,Arvo4)))
Locate (x-1)*20, (y-1)*20
If RuudunArvo < Arvo//Jos oli tähän mennessä paras niin muistiin vaan!
RuudunArvot = Arvo1 + Arvo2 + Arvo3 + Arvo4
RuudunArvotX = x
RuudunArvotY = y
RuudunArvo = Arvo
ElseIf RuudunArvot < Arvo1 + Arvo2 + Arvo3 + Arvo4 And RuudunArvo = Arvo
RuudunArvot = Arvo1 + Arvo2 + Arvo3 + Arvo4
RuudunArvotX = x
RuudunArvotY = y
RuudunArvo = Arvo
EndIf
EndIf
Arvo = 0
Arvo1 = 0
Arvo2 = 0
Arvo3 = 0
Arvo4 = 0
Maa1 = 0
Maa2 = 0
Maa3 = 0
Maa4 = 0
Kerroin1 = 1
Kerroin2 = 1
Kerroin3 = 1
Kerroin4 = 1
Päätty1 = 0
Päätty2 = 0
Päätty3 = 0
Päätty4 = 0
Next y
Next x
Return
Function Voitto(maa)
Color cbwhite
If maa = Tyhjä
Text 10,5, "Tasapeli"
SetWindow "Tasapeli"
ElseIf maa = Pelaaja
Text 10,5, "Pelaaja voitti"
SetWindow "Pelaaja voitti"
Else
Text 10,5, "Tekoäly voitti"
SetWindow "Tekoäly voitti"
EndIf
DrawScreen
Wait 1000
Puhdista()
EndFunction
Function Puhdista()
For x=1 To 30
For y=1 To 30
Ruutu(x,y) = Tyhjä
Next y
Next x
DeleteImage tausta
tausta = MakeImage(600,600)
DrawToImage tausta
For x=20 To 600 Step 20
For y=20 To 600 Step 20
Color cbwhite
Line x,0,x,600
Line 0,y,600,y
Next y
Next x
DrawToScreen
EndFunction
Joo, oli kyllä hieno, mitä nyt grafiikat oli aika onnettomat, mutta ne nyt ei paljoa häirinneetjaahas wrote:täs olis mun väsäämä ruletti:
kyl mä paremmat grafiikat tekisin jos olis joku parempi ohjelma ku paintMrMonday wrote:Joo, oli kyllä hieno, mitä nyt grafiikat oli aika onnettomat, mutta ne nyt ei paljoa häirinneetjaahas wrote:täs olis mun väsäämä ruletti:
Loistava pikkupeli, tykkäsin
Gimp, ilmainen, helppokäyttöinen ja sillä saa aikaan kaunista graffaa jos osaa käyttää.jaahas wrote:kyl mä paremmat grafiikat tekisin jos olis joku parempi ohjelma ku paintMrMonday wrote:Joo, oli kyllä hieno, mitä nyt grafiikat oli aika onnettomat, mutta ne nyt ei paljoa häirinneetjaahas wrote:täs olis mun väsäämä ruletti:
Loistava pikkupeli, tykkäsin