Pikapelikisa 12
Pikapelikisa 12
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.
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
Liian vaikee
Code: Select all
#aha. @ IRCNet
<Grandi> Voit laittaa jo valmiiks hailaittiin "Amis-Mikko", koska alan kutsua sua sillä nimellä.
Re: Pikapelikisa 12
Ei ole vaikea, rekursio on melko helppo aihe.
Projektit: Fiperus - Jäädytetty pidemmäksi aikaa.
Voitot: Viikkokisa XIII, Pikapelikisa 3, Pikapelikisa 13
http://www.sami345.tk/
Voitot: Viikkokisa XIII, Pikapelikisa 3, Pikapelikisa 13
http://www.sami345.tk/
Re: Pikapelikisa 12
Mikä se on?
Re: Pikapelikisa 12
Tuossahan on tuo wikipedia-linkki, eli:Chaosworm wrote:Mikä se on?
Wikipedia wrote:Rekursio on matemaattinen keino määritellä funktioita niin, että funktion arvo tietyssä pisteessä riippuu funktion arvosta edellisessä pisteessä.
CoolBasic henkilökuntaa
Graafikko
Graafikko
Re: Pikapelikisa 12
Aika vaikea aihe siinä mielessä, että pitäis peli tehdä. No, yritetään
Re: Pikapelikisa 12
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.
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.
CoolBasic henkilökuntaa
Graafikko
Graafikko
-
- Forum Veteran
- Posts: 2396
- Joined: Tue Aug 28, 2007 4:20 pm
Re: Pikapelikisa 12
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 :-)Lumipallojen grafiikat ovat tehty rekursiolla.
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
Last edited by Koodiapina on Fri Nov 28, 2008 8:34 pm, edited 2 times in total.
Re: Pikapelikisa 12
Kisa on päättynyt. 10 minuuttia aikaa vielä postata peli, sitten teen äänestyksen.
-
- Forum Veteran
- Posts: 2396
- Joined: Tue Aug 28, 2007 4:20 pm
Re: Pikapelikisa 12
Onko Pate5:n koodissa käytetty rekursiota? Itse en ole asiasta aivan varma :o
Re: Pikapelikisa 12
On, noissa komentoiduissa kohdissa. Rekursiota on sekin, vaikka ei ole tehty täsmälleen samalla tavalla kuin wikipedia-linkissä.Grandi wrote:Onko Pate5:n koodissa käytetty rekursiota? Itse en ole asiasta aivan varma
CoolBasic henkilökuntaa
Graafikko
Graafikko
Re: Pikapelikisa 12
Ja urheille herroille vielä allekirjoituksentäytettä.
- Attachments
-
- pika12.png (1.84 KiB) Viewed 10865 times
CoolBasic henkilökuntaa
Kehittäjä
CoolBasic Classic
Kehittäjä
CoolBasic Classic
Re: Pikapelikisa 12
Kyllähän tuo rekursiota on, vaikkakin hyvin erikoisessa muodossa.Pate5 wrote:On, noissa komentoiduissa kohdissa. Rekursiota on sekin, vaikka ei ole tehty täsmälleen samalla tavalla kuin wikipedia-linkissä.Grandi wrote:Onko Pate5:n koodissa käytetty rekursiota? Itse en ole asiasta aivan varma
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