Pikku pelit

Jaa meneillään olevat projektisi tai valmiit pelit muun yhteisön kanssa täällä.
User avatar
MaGetzUb
Guru
Posts: 1715
Joined: Sun Sep 09, 2007 12:35 pm
Location: Alavus

Re: Pikku pelit

Post by MaGetzUb » Tue Aug 17, 2010 4:35 pm

Minua otti päähän tuossa Tetriksessäsi juuri nuo sinun keksimät palikat. :D
Solar Eclipse
Meneillä olevat Projektit:
We're in a simulation, and God is trying to debug us.

User avatar
Wingman
Devoted Member
Posts: 594
Joined: Tue Sep 30, 2008 4:30 pm
Location: Ruudun toisella puolella

Re: Pikku pelit

Post by Wingman » Sun Aug 22, 2010 3:24 pm

Tein tässä sunnuntaipäivän kulutukseksi pienen pelin, jossa tarkoitus on väistellä pahoja kolikoita hyppimällä.

Heitämpä tässä vielä haasteen, kuka pääsee pisimmälle tasoissa (näkyy siinä palkin vasemmassa reunassa).

E: peli ei loppunut, korjasin sen ja lisäsin animaation ukolle
Attachments
Game.zip
kolikkopeli
(577.4 KiB) Downloaded 89 times
- - - -

User avatar
Someday coder
Active Member
Posts: 106
Joined: Wed Jul 30, 2008 5:04 pm

Re: Pikku pelit

Post by Someday coder » Fri Aug 27, 2010 6:38 pm

Puzzle pelit kiinnostanu viime aikoina niin tein tälläisen pienen säädön. Pitää sytyttää kaikki rivissä olevat valot jollain systeemeillä. Vähän kyllä liian munkkipohjainen peli.

Ite sain 22 sekas ja 8 siirrolla.

Code: Select all

FrameLimit 50
SCREEN 600,400
SetWindow "Puzzle with no name"


Dim board(17)
Dim bl(30,7)
bad2:
For i=0 To 2
    r = Rand(2,7)
    For j=0 To r
        bl(i,j) = Rand(1,2)
    Next j
    For j=0 To 7
        If bl(i,j) = 2 Then Goto good2
    Next j
    Goto bad2
    good2:
Next i

aika# = Timer()

Repeat  
    Color cbwhite
    Text 10,380,"Sytytä kaikki vihreät valot"
    ei = 0
    For i=0 To 17
        If board(i) = 1 Then 
            Color cbgreen
        Else
            Color cbsilver
        EndIf
        Circle 30 + i*30,30,15,1
        If board(i) = 0 Then ei = 1
    Next i
    
    If ei = 0 Or KeyHit(28) Then 
        DrawScreen 
        cp3# = Float(Float(Int((Timer() - aika#)/100))/10)
        MakeError "You won the game!"+Chr(10)+"Moves: "+moves+""+Chr(10)+"Time: "+cp3#+"s"
    EndIf 
    
    For i=0 To 30
        For j=0 To 7
            If bl(i,j) <> 0 Then 
                If bl(i,j) = 1 Then
                    Color cbsilver
                Else
                    Color cbgreen
                EndIf
                If sel = i Then 
                    Circle MouseX() + j*30 - 10,MouseY() - 5,15,1
                Else
                    Circle 10 + j*30,200 + i*30,15,1
                EndIf
                l = j*30
            EndIf
        Next j
        If l > 0 Then 
            Color cbwhite
            If sel = i Then 
                Box MouseX() - 15,MouseY() - 15,l + 30,30,0
            Else
                Box 5,190 + i*30,l + 30,30,0
            EndIf
            If BoxOverlap(MouseX(),MouseY(),1,1,5,190 + i*30,l + 30,30) = 1 And MouseDown(1) And sel = -1 Then sel = i
            l = 0
        EndIf
    Next i

    
    
    If sel > -1 Then
        lap = -1
        If MouseY() > 20 And MouseY() < 40 Then
            lap = (RoundDown((Float(MouseX()))/30) - 1)
        EndIf
    EndIf 
    
    If MouseDown(1) = 0 And lap = -1 Then 
        sel = -1
    ElseIf MouseDown(1) = 0 And lap > -1 Then 
        le = 0
        For i=0 To 7
            If bl(sel,i) > 0 Then
                le + 1
            EndIf
        Next i
        vika = lap + le
        If vika < 19 And lap > -1 Then 
            spot = -1
            For i=lap To vika
                spot + 1
                If spot >= 8 Then Exit
                If board(i) = 0 And bl(sel,spot) = 2 Then 
                    board(i) = 1
                ElseIf board(i) = 1 And bl(sel,spot) = 2 Then 
                    board(i) = 0
                EndIf 
            Next i
            bad:
            r = Rand(2,7)
            For j=0 To 7
                bl(sel,j) = 0
            Next j
            For j=0 To r
                bl(sel,j) = Rand(1,2)
            Next j
            For j=0 To 7
                If bl(sel,j) = 2 Then Goto good
            Next j
            Goto bad
            good:
            moves + 1
            sel = -1
            lap = -1
        Else
            sel = -1
            lap = -1
        EndIf 
    EndIf 
    
    
    
    DrawScreen
Forever 

User avatar
Frozen
Advanced Member
Posts: 282
Joined: Fri Jan 01, 2010 5:46 pm
Location: Suomi

Re: Pikku pelit

Post by Frozen » Tue Aug 31, 2010 5:15 pm

Minun tekemä klikkailu peli. Pitemmittä puheitta:
Attachments
Spämmäyksen poisto peli.zip
(587.98 KiB) Downloaded 94 times
Image
Työn alla:
Jotakin epäjulkaistua

Character
Active Member
Posts: 113
Joined: Thu Nov 27, 2008 3:16 pm

Re: Pikku pelit

Post by Character » Wed Nov 10, 2010 7:17 pm

Seuraa vihreää polkua hiirellä :shock:

Code: Select all

peli:

FrameLimit 40

ClearMouse

Type JOKU
    Field x
    Field y
EndType

Type JOKU2
    Field size
    Field x
    Field y
EndType

speed = 3
jokuX = 0

For i = 0 To 29
    jk.JOKU = New(JOKU)
    jk\x = ScreenWidth()/2 - 10
    jokuX = jk\x
    jk\y = ScreenWidth()/2 - 50 - i * 6
Next i

jTimer = Timer()
j2Timer = Timer()

sTimer = Timer()
score = 0

For jk.JOKU = Each JOKU
    Color 0, 255, 0
    Circle jk\x, jk\y, 20
Next jk
Color cbYellow
Text ScreenWidth()/2 - TextWidth("Paina hiiren näppäintä")/2, ScreenHeight()/2 - TextHeight("Paina hiiren näppäintä")/2 + 50, "Paina hiiren näppäintä"
DrawScreen
WaitMouse

PositionMouse ScreenWidth()/2, ScreenHeight()/2

Repeat
    
    SetWindow Str(score)
    
    Randomize Rand(1, Timer())
    
    If Timer() > sTimer + 1000
        score = score + 1
        sTimer = Timer()
    EndIf
    
    If Timer() > jTimer + 90
        jk.JOKU = New(JOKU)
        jk\x = jokuX + Rand(-10, 10)
        jokuX = jk\x
        jk\y = -20
        jTimer = Timer()
    EndIf
    
    If Timer() > j2Timer + 500
        jk2.JOKU2 = New(JOKU2)
        jk2\size = Rand(20, 60)
        jk2\x = Rand(0, ScreenWidth() - jk2\size)
        jk2\y = ScreenHeight()
        j2Timer = Timer()
    EndIf
    
    Color 0, Rand(100, 255), 0
    For jk.JOKU = Each JOKU
        Circle jk\x, jk\y , 20
        jk\y = jk\y + speed
        If jk\y > ScreenHeight() Then Delete jk
    Next jk
    
    For jk2.JOKU2 = Each JOKU2
        Color cbBlue
        Box jk2\x, jk2\y, jk2\size, jk2\size
        jk2\y = jk2\y - speed
        If jk2\y < -jk2\size Then Delete jk2
    Next jk2
    
    PositionMouse MouseX(), ScreenHeight()/2
    PickColor MouseX(), MouseY()
    If getRGB(1) = 0 And getRGB(2) = 0 And getRGB(3) = 0 Then
        Goto häviö
    EndIf
    
    DrawScreen
    
Until EscapeKey()

häviö:

eTimer = Timer()
tex = ON

Repeat
    
    Color cbRed
    Text ScreenWidth()/2 - TextWidth("Hävisit! Pisteesi: "+score+" sekuntia")/2, ScreenHeight()/2 - TextHeight("Hävisit! Pisteesi: "+score+" sekuntia")/2 - 50, "Hävisit! Pisteesi: "+score+" sekuntia"
    
    If tex = ON Then
        Color cbRed
        Text ScreenWidth()/2 - TextWidth("[KLIKKAA HIIRTÄ]")/2, ScreenHeight()/2 - TextHeight("[KLIKKAA HIIRTÄ]")/2 + 50, "[KLIKKAA HIIRTÄ]"
    EndIf
    
    If Timer() > eTimer + 500
        tex = Not tex
        eTimer = Timer()
    EndIf
    
    DrawScreen
    
Until MouseHit(1)

For jk.JOKU = Each JOKU
    Delete jk
Next jk

Goto peli

User avatar
legend
Advanced Member
Posts: 371
Joined: Wed Nov 18, 2009 9:06 pm

Re: Pikku pelit

Post by legend » Mon Nov 15, 2010 8:03 pm

Löysin aika vanhan ristinollatekoälyni (julkaisin sen joskus... .... ruutujen määrä 30x30). Testailin sitä ja korjasin pari bugia. Nyt ristinollatekoäly on voittamaton :twisted: Nyt jos haluatte nähdä tekoälyn valinta perusteet poistakaa // merkit riviltä 229
ps. muistakaa antaa palautetta....

Code: Select all

    SCREEN 600,600
    
    FrameLimit 60
    
    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ä = 0 //Tärkein
    Const Pelaaja = 12
    Const Tietokone = 13
    Const Kerroin = 1 //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
    pois = 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:
    
    Arvo1 = 0
    Arvo2 = 0
    Arvo3 = 0
    Arvo4 = 0
    
    ClearText
        
    For x=1 To 30
        For y=1 To 30
            If Ruutu(x,y) = Tyhjä
                For i=-Määrä+2 To Määrä-2
                    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
                            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
                            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
                            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
                            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
EDIT:

Löysin pienen bugin välillä voitti 4 suoralla se on korjattu. (normaalisti 5)


MrMonday
Advanced Member
Posts: 377
Joined: Fri Oct 10, 2008 2:35 pm

Re: Pikku pelit

Post by MrMonday » Mon Nov 15, 2010 9:17 pm

Mukavan haastavahan tuo oli, mutta vieläkin voitin kerran neljän suoralla :o

User avatar
naputtelija
Devoted Member
Posts: 718
Joined: Wed Nov 03, 2010 8:56 pm
Location: Joku piste pohjoisessa.

Re: Pikku pelit

Post by naputtelija » Mon Nov 15, 2010 10:36 pm

Joo, ei tuo minun iskää parempi ollut. Hävisin ensin 5 kertaa kunnes opin. Sitten pelkkää voittoa. 9+. Olisi 10 jos korjaisitte bugin jossa vihreä ruutu ilmestyy sinne minne hiiren klikkaa, ei sinne minne se rullaa klikin jälkeen.

Olisi hyvä jos tuollaisia tekoälyjä olisi lisää. esim:
Shakkitekoäly? Edes sellainen joka voittaa maailman surkeimman shakittajan, minut.
Keskustelutekoäly? Muistissa voisi olla noin 100+ kysymystä/vastausta.
No tämä on mahdoton: kasvojentunnistus.
<Ize> Pitäs tehä allekirjotus..
<Ize> Vois keksiä jonkin nasahtavan sanonnan..
<Ize> Siitä tulis upea legenda ja kaikki vaihtaisivat allekirjoituksensa siihen.
<Ize> Ehkä ei kuitenkaa...

DJ-Filbe
Devoted Member
Posts: 853
Joined: Sat Feb 20, 2010 3:18 pm

Re: Pikku pelit

Post by DJ-Filbe » Mon Nov 15, 2010 11:29 pm

Mukavasti haastetta, mutta tuolle on kehitettävissä yksinkertainen vasta-tekoäly. En jaksa tuolle pohjalle koodia naputtaa, mutta voisi omaa koittaa väsäillä kunhan aikaa joskus olisi enemmän...

User avatar
valscion
Moderator
Moderator
Posts: 1585
Joined: Thu Dec 06, 2007 8:46 pm
Location: Espoo
Contact:

Re: Pikku pelit

Post by valscion » Mon Nov 15, 2010 11:54 pm

legend wrote:Nyt ristinollatekoäly on voittamaton :twisted:
No aika kaukana voittamattomasta :D. Helposti vein sitä useaan kertaan.
cbEnchanted, uudelleenkirjoitettu runtime. Uusin versio: 0.4.1 — Nyt myös sorsat GitHubissa!
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com

User avatar
Awaclus
Forum Veteran
Posts: 2938
Joined: Tue Aug 28, 2007 2:50 pm
Location: Sulkava

Re: Pikku pelit

Post by Awaclus » Tue Nov 16, 2010 10:04 am

"Ristinolla"ahan pelataan vain ja ainoastaan 3x3 -ruudukolla (kolme peräkkäistä merkkiä vaaditaan), ja siinä tekoäly voi hyvin pystyä aina joko voittamaan tai tasuroimaan. Sen sijaan isommalla ruudukolla pelattavassa, viisi peräkkäistä merkkiä vaativassa "Jätkänshakki"-nimisessä pelissä on erittäin hankalaa olla tekoäly, joka ei koskaan häviä, koska sen pitäisi pystyä joka siirrolla estämään mahdollinen 1748 vuoron päästä tapahtuva tilanne, jossa pelaajalla on kaksi kappaletta neljän suoria yhtäaikaa ja niin pitkään, kun TÄ on pelaajalle tuttu, yhtään älykkäämmän pelaajan ei ole vaikeakaan pelata niin, että noita neljän suoria syntyy kaksi.
Every day I'm reshuffling.
[22:19] <@Grandi> Ha! Tiesin koko ajan, että Awaclus_ oli Awaclus. Hieno peitenimimerkki, mutta Grandia et huiputtanut.

User avatar
Jani
Devoted Member
Posts: 741
Joined: Fri Oct 31, 2008 5:53 pm

Re: Pikku pelit

Post by Jani » Thu Nov 18, 2010 7:21 am

Chaosworm wrote:"Ristinolla"ahan pelataan vain ja ainoastaan 3x3 -ruudukolla (kolme peräkkäistä merkkiä vaaditaan), ja siinä tekoäly voi hyvin pystyä aina joko voittamaan tai tasuroimaan. Sen sijaan isommalla ruudukolla pelattavassa, viisi peräkkäistä merkkiä vaativassa "Jätkänshakki"-nimisessä pelissä on erittäin hankalaa olla tekoäly, joka ei koskaan häviä, koska sen pitäisi pystyä joka siirrolla estämään mahdollinen 1748 vuoron päästä tapahtuva tilanne, jossa pelaajalla on kaksi kappaletta neljän suoria yhtäaikaa ja niin pitkään, kun TÄ on pelaajalle tuttu, yhtään älykkäämmän pelaajan ei ole vaikeakaan pelata niin, että noita neljän suoria syntyy kaksi.
Krhöm, Ristinolla juurikin on tämän isomman ruudukon peli, kun taas Jätkänshakki on se 3x3-ruudukolla pelattava.
EDIT:

Oh, kiitos korjauksesta, esa! Opettajani tosiaan tälläistä meille kertoi...

Last edited by Jani on Thu Nov 18, 2010 7:10 pm, edited 1 time in total.
Dead men tell no tales. Also, Python rocks!
Codegolf: 99 bottles of beer (oneliner) - Water map partition

User avatar
esa94
Guru
Posts: 1855
Joined: Tue Sep 04, 2007 5:35 pm

Re: Pikku pelit

Post by esa94 » Thu Nov 18, 2010 8:49 am

Jani wrote:
Chaosworm wrote:"Ristinolla"ahan pelataan vain ja ainoastaan 3x3 -ruudukolla (kolme peräkkäistä merkkiä vaaditaan), ja siinä tekoäly voi hyvin pystyä aina joko voittamaan tai tasuroimaan. Sen sijaan isommalla ruudukolla pelattavassa, viisi peräkkäistä merkkiä vaativassa "Jätkänshakki"-nimisessä pelissä on erittäin hankalaa olla tekoäly, joka ei koskaan häviä, koska sen pitäisi pystyä joka siirrolla estämään mahdollinen 1748 vuoron päästä tapahtuva tilanne, jossa pelaajalla on kaksi kappaletta neljän suoria yhtäaikaa ja niin pitkään, kun TÄ on pelaajalle tuttu, yhtään älykkäämmän pelaajan ei ole vaikeakaan pelata niin, että noita neljän suoria syntyy kaksi.
Krhöm, Ristinolla juurikin on tämän isomman ruudukon peli, kun taas Jätkänshakki on se 3x3-ruudukolla pelattava.
Poju, missä aineissa oikein olet?
⁴⁰Ar
<@mikeful> kissatehtaalla on miukuhihna.

User avatar
buke44
Active Member
Posts: 169
Joined: Sat May 23, 2009 8:10 pm
Location: Tampere

Re: Pikku pelit

Post by buke44 » Fri Nov 19, 2010 10:31 pm

Ohjaa sinistä laatikkoa hiirellä. Syö vihreät laatikot ja väistele punaisia. Muun värisiset laatikot ovat speciaaleja, joista tulee erinäisiä tapahtumia.

Code: Select all

SCREEN 800, 600
FrameLimit 40

'VOIT MUUTTAA VAIKEUSASTETTA MYÖS POISTAMALLA RIVIN 69 KOMMENTOINNIN JA MUUTTAMALLA VK:N ARVOA. SEN PITÄÄ OLLA 0.25 - 4


Type boxes
    Field x
    Field y
    Field rx
    Field koko
    Field v
    Field s
EndType 

Dim vts (7) As String 
vts (1)="Ylihelppo"
vts (2)="Aloittelija"
vts (3)="Helppo"
vts (4)="Normaali"
vts (5)="Vaikeampi"
vts (6)="Vaikea"
vts (7)="Mahdoton"
    
ClsColor cbWhite

av:
valinn=0
okoko=10
ShowMouse ON 
Repeat
    Color cbBlack
    CenterText 400, 100, "Valitse vaikeustaso"
    For i=1 To 7
        If MouseY ()>170+i*30 And MouseY ()<200+i*30 Then 
            Color cbRed 
            If MouseHit (1) Then valinn=i
        Else 
            Color cbBlack
        EndIf 
        CenterText 400, 170+i*30, vts (i)
    Next i
    DrawScreen 
Until Not valinn=0

ShowMouse OFF 

vk#=0

Select valinn
    Case 1
        vk=0.25
    Case 2
        vk=0.5
    Case 3
        vk=0.8
    Case 4
        vk=1
    Case 5
        vk=2
    Case 6
        vk=3
    Case 7
        vk=4
    Default
        MakeError "error"
EndSelect 

'vk#=1
'suurin vk=4 pienin 0.25

Repeat
    If Rand (1, (5+0.15*okoko)/vk)=1 Then 
        box1.boxes=New (boxes)
        p=Rand (-2,4/vk)
        If p<2 Then box1\koko=Rand (okoko, okoko+okoko*2*vk) Else box1\koko=Rand (1, okoko)
        If box1\koko<okoko And okoko>25 And Rand (1, 7)=3 Then box1\s=Rand (1, 3)
        box1\rx=Rand (0,1)
        Box1\v=Rand (1,4*vk)
        If box1\rx=0 Then 
            box1\x=-box1\koko
        Else 
            Box1\x=800
        EndIf 
        Box1\y=Rand (0,600-box1\koko/4)
    EndIf 
    For box1.boxes=Each boxes
        If box1\rx=1 Then box1\x-box1\v Else box1\x+box1\v
        If box1\koko>okoko Then Color cbRed Else Color 0,255,0
        If spe=1 Then Color 0,255,0
        If box1\s=1 Then Color cbmagenta
        If box1\s=2 Then Color cbYellow
        If box1\s=3 Then Color cbCyan
        Box box1\x, Box1\y, box1\koko, box1\koko
        If MouseX ()+okoko>box1\x And MouseX ()<box1\x+box1\koko And MouseY ()+okoko>box1\y And MouseY ()<box1\y+box1\koko Then 
            If box1\koko>okoko And (Not spe=1)Then Goto gameover Else okoko=okoko+1
            If spe=0 Then 
                spe=box1\s
                spet=Timer ()
            EndIf 
            Delete box1
        EndIf 
    Next box1
        
    If spe=1 And Timer ()-spet>1500 Then spe=0
    If spe=2 Then 
        okoko=okoko+okoko/2.5
        spe=0
    EndIf 
    If spe=3 Then 
        For box1.Boxes=Each boxes
            Delete box1
        Next box1
        spe=0
    EndIf 
    
    Color cbBlue
    Box MouseX (), MouseY (), okoko, okoko
    
    Color cbBlack
    Text 1, 1, "Pisteet "+(okoko-10)
    DrawScreen 
Forever 

gameover:
For box1.boxes=Each boxes 
    Delete box1
Next box1
Repeat 
    CenterText 400, 200, "Hävisit. Pisteesi olivat "+(okoko-10)
    CenterText 400, 240, "Aloita alusta painamalla välilyöntiä"
    If KeyHit (cbkeyspace) Then Goto av
    DrawScreen 
Forever 

User avatar
Frozen
Advanced Member
Posts: 282
Joined: Fri Jan 01, 2010 5:46 pm
Location: Suomi

Re: Pikku pelit

Post by Frozen » Tue Jan 11, 2011 9:59 pm

Pieni exblox (vai mikä nyt onkaan) tyyppinen peli, mikä on muuten lähes kokonaan tavallinen, paitsi ettei pallo kimpoa laidoista, vaan ilmestyy ruudun toiseen laitaan. Samalla tavalla "maila" siirtyy toiseen laitaan mennessään toisen laidan yli. Poweruppeja en jaksanut tehdä kuin yhden (teen ehkä joskus lisää)

http://up.servut.us/27776 <-- eli ei mitään erikoista materiaalia :D
Image
Työn alla:
Jotakin epäjulkaistua

User avatar
Frozen
Advanced Member
Posts: 282
Joined: Fri Jan 01, 2010 5:46 pm
Location: Suomi

Re: Pikku pelit

Post by Frozen » Wed Jan 12, 2011 7:01 pm

axu wrote: @Frozen: exbloxista en ole kyllä kuullutkaan, mutta minusta tuo vaikutti breakout -peliltä :D
Tuolle pelille on niin monta nimeä, että en enää itsekkään tiennyt mikä on alkuperäinen :D
axu wrote: Itse pelistä: Varoitus, tämä on aika negatiivista tekstiä:
Peli oli tuollaisenaan melkoisen ankeaa pelattavaa, pallon liikkeitä oli mahdoton ennustaa, ja joskus pallo kimposi melkein vaakatasossa, jolloin sen laskeutumista joutui odottelemaan kauan (lopetin pelaamisen kun kävi toisen kerran näin). Täysi ruutu palikoita on myös aika tuskasta tuhota. Mielenkiintoinen piirre oli kuitenkin tämä mailan ja pallon liikkuminen ruudun laidoista, ja bonusta saat myös räjähdyksestä. Kaikki statistiikat olivat kirjoitettuna otsikkopalkkiin, joka oli epäonnistunut ratkaisu. Ei sen text-komennon kirjoittamiseen niin kauan mene ja tietojen rivittämiseen. Mitä se powerup muuten teki?
Tiedän että se tuo on vielä ankeaa pelattavaa, mutta koko peli olikin tehty ilman suurempia suunnitelmia. :D Se ainoa powerup lisää yhdellä varapallojen määrää.
Image
Työn alla:
Jotakin epäjulkaistua

User avatar
Jare
Moderator
Moderator
Posts: 860
Joined: Mon Aug 27, 2007 10:18 pm
Location: Helsinki

Re: Pikku pelit

Post by Jare » Sun Jan 16, 2011 8:02 pm

Siirsin SkiDown-viestit uuteen aiheeseen: viewtopic.php?f=11&t=2453

User avatar
axu
Devoted Member
Posts: 854
Joined: Tue Sep 18, 2007 6:50 pm

Re: Pikku pelit

Post by axu » Sun Jan 16, 2011 8:17 pm

Frozen wrote:Pieni exblox (vai mikä nyt onkaan) tyyppinen peli, mikä on muuten lähes kokonaan tavallinen, paitsi ettei pallo kimpoa laidoista, vaan ilmestyy ruudun toiseen laitaan. Samalla tavalla "maila" siirtyy toiseen laitaan mennessään toisen laidan yli. Poweruppeja en jaksanut tehdä kuin yhden (teen ehkä joskus lisää)

http://up.servut.us/27776 <-- eli ei mitään erikoista materiaalia :D
exbloxista en ole kyllä kuullutkaan, mutta minusta tuo vaikutti breakout -peliltä :D
Itse pelistä: Varoitus, tämä on aika negatiivista tekstiä:
Peli oli tuollaisenaan melkoisen ankeaa pelattavaa, pallon liikkeitä oli mahdoton ennustaa, ja joskus pallo kimposi melkein vaakatasossa, jolloin sen laskeutumista joutui odottelemaan kauan (lopetin pelaamisen kun kävi toisen kerran näin). Täysi ruutu palikoita on myös aika tuskasta tuhota. Mielenkiintoinen piirre oli kuitenkin tämä mailan ja pallon liikkuminen ruudun laidoista, ja bonusta saat myös räjähdyksestä. Kaikki statistiikat olivat kirjoitettuna otsikkopalkkiin, joka oli epäonnistunut ratkaisu. Ei sen text-komennon kirjoittamiseen niin kauan mene ja tietojen rivittämiseen. Mitä se powerup muuten teki?
Frozen wrote:Tuolle pelille on niin monta nimeä, että en enää itsekkään tiennyt mikä on alkuperäinen :D
Sama täällä, mutta mielestäni arkanoid- tai breakout-klooneista puhutaan yleensä.

Ainiin muuten Jare, kiitos viestien siirtämisestä. Laitoit epähuomiossa yhden ylimääräisenkin viestin, jonka Frozen lähetti. Siinä puhuttiin vain Frozenin pelistä: viewtopic.php?f=11&t=2453&p=49992#p49998
Jos tämä viesti on kirjoitettu alle 5 min. sitten, päivitä sivu. Se on saattanut jo muuttua :roll:
Image

User avatar
Jare
Moderator
Moderator
Posts: 860
Joined: Mon Aug 27, 2007 10:18 pm
Location: Helsinki

Re: Pikku pelit

Post by Jare » Sun Jan 16, 2011 9:53 pm

axu wrote:Ainiin muuten Jare, kiitos viestien siirtämisestä. Laitoit epähuomiossa yhden ylimääräisenkin viestin, jonka Frozen lähetti. Siinä puhuttiin vain Frozenin pelistä: viewtopic.php?f=11&t=2453&p=49992#p49998
Joo, nopealla viestien lukaisulla ei näemmä hyvää seuraa. Korjasin virheeni. :oops:

User avatar
Sly_Jack0
Devoted Member
Posts: 612
Joined: Mon Dec 10, 2007 9:25 am

Re: Pikku pelit

Post by Sly_Jack0 » Sun Jan 30, 2011 1:01 am

Koodasinpa tänään aikani kuluksi tietokoneversion Mastermind-lautapelistä.

Pelissä on tarkoitus ratkaista tietokoneen arpoma sarja värejä. Klikkaamalla pelissä olevan rivin ruutuja voi valita värin ja enter hyväksyy rivin. Tietokone antaa vastaukseksi sarjan mustia ja valkoisia ruutuja sattumanvaraisessa järjestyksessä. Valkoinen ruutu tarkoittaa että arvauksessasi on oikea väri, mutta se on väärällä paikalla. Musta ruutu tarkoittaa, että arvauksessasi on oikea väri oikealla paikalla.

LATAA

Post Reply

Who is online

Users browsing this forum: No registered users and 8 guests