Page 1 of 1
Pikapelikisa 12
Posted: Fri Nov 28, 2008 6:04 pm
by MAVmaggot
Pikakisa alkakoon ja paras voittakoon.
Aihe: Rekursio, joko koodissa tai itse pelissä. käyttäkää mielikuvitusta.
Anteeksi evotukseni; kilpailu loppuu kello 20:04 ja viimeistään 20:14 peli topikissa.
Re: Pikapelikisa 12
Posted: Fri Nov 28, 2008 6:27 pm
by MikkoK
Liian vaikee
Re: Pikapelikisa 12
Posted: Fri Nov 28, 2008 6:33 pm
by Sami345
Ei ole vaikea, rekursio on melko helppo aihe.
Re: Pikapelikisa 12
Posted: Fri Nov 28, 2008 6:59 pm
by Awaclus
Mikä se on?
Re: Pikapelikisa 12
Posted: Fri Nov 28, 2008 7:02 pm
by Pate5
Chaosworm wrote:Mikä se on?
Tuossahan on tuo wikipedia-linkki, eli:
Wikipedia wrote:Rekursio on matemaattinen keino määritellä funktioita niin, että funktion arvo tietyssä pisteessä riippuu funktion arvosta edellisessä pisteessä.
Re: Pikapelikisa 12
Posted: Fri Nov 28, 2008 7:27 pm
by axu
Aika vaikea aihe siinä mielessä, että pitäis peli tehdä. No, yritetään
Re: Pikapelikisa 12
Posted: Fri Nov 28, 2008 7:45 pm
by Pate5
Tässä oma surkea yritykseni. LevelUpper! Pelissä saa leveliä spacea painamalla. Levelit on toteutettu rekursiolla.
Laitan tämän tänne siksi, että muut jaksaisivat tehdä jotain hienompaa, sillä kukaan ei voi antaa tällaisen roskan voittaa.
Code: Select all
'LevelUpper by Pate5
SCREEN 640,480,32,1
FrameLimit 30
Dim maxhp(100)
Dim strength(100)
Dim defence(100)
maxhp(1)=20
strength(1)=6
defence(1)=6
For i=2 To 100
maxhp(i)=maxhp(i-1)*1.3 '<--------------------------TUOSSA ON REKURSIOTA
strength(i)=strength(i-1)*1.5 '<--------------------------TUOSSA ON REKURSIOTA
defence(i)=defence(i-1)*1.4 '<--------------------------TUOSSA ON REKURSIOTA
Next i
level=1
hp=maxhp(level)
Repeat
Text 10,10,"HP: "+hp+"/"+maxhp(level)
Text 10,20,"STRENGTH: "+strength(level)
Text 10,30,"DEFENCE: "+defence(level)
Text 10,50,"LEVEL: "+level
Text 10,70,"PRESS SPACE TO LEVEL UP"
If KeyHit(cbkeyspace) Then level+1:hp=maxhp(level)
DrawScreen
Forever
EDIT:En keksinyt kunnollista aihetta, siksi tein tämän.
Re: Pikapelikisa 12
Posted: Fri Nov 28, 2008 7:56 pm
by Koodiapina
Flaker
Exe löytyy tästä.
Tuhoa ylhäältä satavia lumihiutaleita klikkailemalla niitä. Maahan ei saa osua hiutalettakaan. Pelistä tuli aika karu kun en keksinyt mitään järkevää aihetta ja tekoaika näin ollen jäi puoleentuntiin... Sainpahan kuitenkin jotain valmiiksi :-)
Code: Select all
SCREEN 800,600
Type snow
Field x#
Field y#
Field sx#
Field sd#
EndType
fl=MakeImage(50,50)
DrawToImage fl
flak(25,25)
DrawToScreen
For i=0 To 5
create(Rnd(30,750),Rnd(-400,-60))
Next i
ClsColor 0,0,100
While True
Color 255,255,255
CenterText MouseX(),MouseY()+20,lvl
Color cbblackskin
Box 0,500,ScreenWidth(),100
If Timer()>sec+100 Then
lvl=lvl+1
sec=Timer()
EndIf
If Timer()>tim+(500-lvl) Then
create(Rnd(30,750),-60)
tim=Timer()
EndIf
For s.snow=Each snow
DrawImage fl,s\x+s\sx,s\y
s\sx=s\sx+s\sd
s\y=s\y+0.8
If s\sx<-6 Or s\sx>6 Then s\sd=-s\sd
If s\y>470 Then MakeError "Game over! Score: "+lvl+" p."
If MouseX()>s\x+s\sx And MouseY()>s\y Then
If MouseX()<s\x+s\sx+40 And MouseY()<s\y+40 Then
If MouseHit(1) Then Delete s
EndIf
EndIf
Next s
DrawScreen
Wend
Function create(x#,y#)
s.snow=New(snow)
s\x=x
s\y=y
s\sx=1
s\sd=Rnd(0.1,0.3)
EndFunction
Function flak(x,y,a=30)
a=a/3
If a<3 Then Return 1
For i=1 To 8
x2=x+Cos(i*45)*a
y2=y+Sin(i*45)*a
Line x,y,x2,y2
flak(x2,y2,a)
Next i
EndFunction
Lumipallojen grafiikat ovat tehty rekursiolla.
Re: Pikapelikisa 12
Posted: Fri Nov 28, 2008 8:04 pm
by MAVmaggot
Kisa on päättynyt. 10 minuuttia aikaa vielä postata peli, sitten teen äänestyksen.
Re: Pikapelikisa 12
Posted: Fri Nov 28, 2008 8:12 pm
by Koodiapina
Onko Pate5:n koodissa käytetty rekursiota? Itse en ole asiasta aivan varma :o
Re: Pikapelikisa 12
Posted: Fri Nov 28, 2008 8:17 pm
by Pate5
Grandi wrote:Onko Pate5:n koodissa käytetty rekursiota? Itse en ole asiasta aivan varma
On, noissa komentoiduissa kohdissa. Rekursiota on sekin, vaikka ei ole tehty täsmälleen samalla tavalla kuin wikipedia-linkissä.
Re: Pikapelikisa 12
Posted: Fri Nov 28, 2008 8:18 pm
by Ilmuri
Ja urheille herroille vielä allekirjoituksentäytettä.
Re: Pikapelikisa 12
Posted: Fri Nov 28, 2008 9:01 pm
by Murskaaja
Pate5 wrote:Grandi wrote:Onko Pate5:n koodissa käytetty rekursiota? Itse en ole asiasta aivan varma
On, noissa komentoiduissa kohdissa. Rekursiota on sekin, vaikka ei ole tehty täsmälleen samalla tavalla kuin wikipedia-linkissä.
Kyllähän tuo rekursiota on, vaikkakin hyvin erikoisessa muodossa.
Niille jotka eivät rekursiota tunne, wikipedian pseudoesimerkki käännettynä coolbasicille:
Code: Select all
Function kertoma(n)
If n < 2 Then
Return 1
Else
Return n * kertoma(n-1)
EndIf
EndFunction
Print kertoma(8) '= 8! = 8*7*6*5*4*3*2*1
WaitKey
uumoilen grandin voittoa