Ohjelmoinnin peruskurssi Y2, kurssimateriaali

Aihepiiri: pelit

Etusivulle

Aihepiiri: pelit

Vaakapeli


Toteuta vaakapeli, jossa punnuksia ja vaakoja päällekkäin pinoamalla pyritään saavuttamaan mahdollisimman paljon pisteitä.

Vaaka tarkoittaa pelissä pitkää puomia, jonka päälle voi laittaa muita esineitä , toisia vaakoja ja punnuksia. punnukset painavat vaa'alla sitä enemmän, mitä kau empana ne ovat keskustasta. Vaa'alla saa aina olla pieni epätasapaino. Epätasapaino on suuruudeltaan maksimissaan sama, kuin jos 1 punnus asetettaisiin vaa'an kärkeen ennen kuin muita punnuksia on asetettu. ts. epätasapaino >= vaa'an 'säde'.

Pelin toteutuksessa on kolme olennaista osuutta:

  1. Tasapainon määritelmä
  2. Pistelasku
  3. Peliohjeet

Tasapaino

Esimerkki 1.

Jos punnus on etäisyydellä 3 puomin keskuksesta, se painaa tuota puolta alas kolmen punnuksen voimalla. Jos toisella puolella on kaksi punnusta etäisuudellä kaksi, painavat ne toista puolta alas neljän punnuksen voimalla. (2*2=4) Epätasapaino on 3-4 = -1. Ykkösen itseisarvo on pienempi kuin vaa'an säde, 3, joten vaaka on tasapainossa.

           x
 x         x
<3=2=1=A=1=2=3>
       *
       *

Esimerkki 2.

Jos vasemmalla puolella ei edellisessä esimerkissä olisi ollut punnusta, olisi vaaka ollut epätasapainossa sillä epätasapaino olisi ollut 4 joka ylittää vaa'an säteen. Tässä tilanteessa viimeisen punnuksen asettanut menettää punnuksensa.


Pelissä voi asettaa vaa'alle myös toisia vaakoja. Toisen vaa'an päälle asetettu vaaka aiheuttaa allaolevaan vaakaan keskipisteensä kohdalle painon joka on suoraan sen päällä olevien punnusten ja vaakojen painojen summa.

Esimerkki 3.

         x
     x   x       x     x
    -------    -------------
    <1=B=1>   <3=2=1=C=1=2=3>
       *             *
       *           x *
   ---------------------
  <5=4=3=2=1=A=1=2=3=4=5>
             *
             *
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Vaaka B on tasapainossa, oikean puolen paino on 2*1 ja vasemman 1*1 joka ei ylitä vaa'an sädettä. Vaaka B itsessään painaa kolmen punnuksen verran.

Vaaka C on tasapainossa, sillä vasen puoli painaa 1*2=2 ja oikea puoli 1*1=1. Näiden erotus on 1 joka ei ylitä vaa'an sädettä. Vaaka C painaa kahden punnuksen verran.

Vaaka A on myös tasapainossa. Vasemmalla puolella on vaaka B etäisyydellä 3 , 3*3=9 Oikealla puolella on vaaka C etäisyydellä 4, 2*4=8 , sekä punnus etäisyydellä 3 yhteensä oikealla puolella on 11 punnuksen verran painoa. Puolten erotus on 11-9=2 joka on pienempi kuin vaa'an A säde, joten vaaka on tasapainossa.

Pistelasku

Pisteitä saa suoraan vipuun kohdistuvan painon mukaan. Edellisessä esimerkissä lopulliset pisteet määräytyvät Vaa'an A mukaan. Pisteitä olisi saanut seuraavasti

Vaaka B :   3*1       = 3
Vaaka C :   1*2 + 1*1 = 3
Vaaka A :   (3*Vaaka B) + 1*3 + (4 * Vaaka C) =
             3*3 +        1*3 +  4*3          = 24 pistettä.

Vinkki: Pistelasku kannattaa toteuttaa rekursiivisella metodikutsulla!

Peliohjeet

  1. Jokaisella kierroksella tietokone asettaa pelin alussa määritellyllä todennäköisyydellä johonkin vapaaseen kohtaan uuden vaa'an.
  2. Pelaajat asettavat punnukset yksi kerrallaan vaa'alle. (Esimerkissä kaikki punnukset merkittiin kirjaimella x, mutta pelissä jokainen pelaaja määrittää pelin alussa "punnus merkkinsä".
  3. Punnuksia saa pinota. Jos laittaa punnuksen toisen pelaajan punnusten päälle , saa kaikki punnukset haltuunsa.
  4. Peli päättyy, kun kaikki (ennalta määritetty määrä) punnukset on asetettu.
  5. Jos jokin punnus kaataisi vaa'an, se menetetään, joten siitä ei saa pisteitä.
  6. Punnus asetetaan kertomalla vaa'an kirjain, ja sitten kertomalla kummalle puolelle, ja kuinka kauas punnus asetetaan.

Esimerkki 4) : Kuva moninpelistä.

  a     a
 <2=1=B=1=2>
      *           b
      *         c b
     <3=2=1=A=1=2=3>
            *
            *

---------------------------
Tilanne

a : 9 pistettä
b : 6 pistettä
c : 2 pistettä

Vaa'at ovat tasapainossa
---------------------------

Helppo

Keskivaikea

Vaikea

Etusivulle