Pikapelikisa 12

Post Reply
MAVmaggot
Advanced Member
Posts: 468
Joined: Fri Aug 31, 2007 10:18 pm
Location: bitspace

Pikapelikisa 12

Post 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.
MikkoK
Devoted Member
Posts: 813
Joined: Thu Jun 05, 2008 2:13 pm
Location: City 17

Re: Pikapelikisa 12

Post by MikkoK »

Liian vaikee :(

Code: Select all

#aha. @ IRCNet
<Grandi> Voit laittaa jo valmiiks hailaittiin "Amis-Mikko", koska alan kutsua sua sillä nimellä.
Sami345
Advanced Member
Posts: 349
Joined: Fri Aug 31, 2007 4:52 pm
Contact:

Re: Pikapelikisa 12

Post by Sami345 »

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/
Awaclus
Forum Veteran
Posts: 2939
Joined: Tue Aug 28, 2007 2:50 pm

Re: Pikapelikisa 12

Post by Awaclus »

Mikä se on?
Pate5
Artist
Artist
Posts: 551
Joined: Tue Aug 28, 2007 4:53 pm
Location: Vantaa

Re: Pikapelikisa 12

Post 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ä.
CoolBasic henkilökuntaa
Graafikko
User avatar
axu
Devoted Member
Posts: 854
Joined: Tue Sep 18, 2007 6:50 pm

Re: Pikapelikisa 12

Post by axu »

Aika vaikea aihe siinä mielessä, että pitäis peli tehdä. No, yritetään
Jos tämä viesti on kirjoitettu alle 5 min. sitten, päivitä sivu. Se on saattanut jo muuttua :roll:
Image
Pate5
Artist
Artist
Posts: 551
Joined: Tue Aug 28, 2007 4:53 pm
Location: Vantaa

Re: Pikapelikisa 12

Post 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.

CoolBasic henkilökuntaa
Graafikko
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: Pikapelikisa 12

Post 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.
Last edited by Koodiapina on Fri Nov 28, 2008 8:34 pm, edited 2 times in total.
MAVmaggot
Advanced Member
Posts: 468
Joined: Fri Aug 31, 2007 10:18 pm
Location: bitspace

Re: Pikapelikisa 12

Post by MAVmaggot »

Kisa on päättynyt. 10 minuuttia aikaa vielä postata peli, sitten teen äänestyksen.
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: Pikapelikisa 12

Post by Koodiapina »

Onko Pate5:n koodissa käytetty rekursiota? Itse en ole asiasta aivan varma :o
Pate5
Artist
Artist
Posts: 551
Joined: Tue Aug 28, 2007 4:53 pm
Location: Vantaa

Re: Pikapelikisa 12

Post 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ä.
CoolBasic henkilökuntaa
Graafikko
User avatar
Ilmuri
Developer
Developer
Posts: 277
Joined: Sun Aug 26, 2007 2:46 pm
Location: \o

Re: Pikapelikisa 12

Post by Ilmuri »

Ja urheille herroille vielä allekirjoituksentäytettä.
Attachments
pika12.png
pika12.png (1.84 KiB) Viewed 10819 times
CoolBasic henkilökuntaa
Kehittäjä
CoolBasic Classic
Murskaaja
Member
Posts: 92
Joined: Tue Aug 28, 2007 8:19 pm
Contact:

Re: Pikapelikisa 12

Post 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 ;)
ASCII star wars Xtreme | Cool Bombers | Combat (kehitteillä)

RedShadow productions
Post Reply