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 :o
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 :o
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 ;)