Kirjoittaja: Sami
Kirjoitettu: 19.04.2003 – 19.04.2003
Tagit: pelinteko, koodi näytille, peli, vinkki
karvanaama oli tehnyt jo Javaskriptillä life-pelin, mutta tässä on life-peli QBasicille.
CLS ' Tyhjätään edellisen pelin jäänteet
RANDOMIZE TIMER ' Satunnaisuutta peliin
DIM poista(80, 20) AS INTEGER ' Taulukot lisättäville ja poistettaville laatikoille
DIM lisaa(80, 20) AS INTEGER
FOR i = 1 TO 100 ' Arvotaan aluksi 100 laatikkoa ruudulle (päällekäin meno on mahdollista)
LOCATE INT(RND * 20 + 1), INT(RND * 80 + 1)
PRINT "Û"
NEXT i
DO ' Ohjelman päälooppi
FOR x = 1 TO 80 ' Tyhjätään vanhat merkinnät
FOR y = 1 TO 20
poista(x, y) = 0
lisaa(x, y) = 0
NEXT y
NEXT x
FOR x = 1 TO 80
FOR y = 1 TO 20
l = 0 ' Ympäröivien laatikoiden laskurin nollaus
' Perässä on melkoinen hirvitys, jolla lasketaan ruutua ympäröivien laatikoiden määrä
IF x > 1 AND y > 1 THEN
IF SCREEN(y - 1, x - 1) = 219 THEN l = l + 1
END IF
IF y > 1 THEN
IF SCREEN(y - 1, x) = 219 THEN l = l + 1
END IF
IF x < 80 AND y > 1 THEN
IF SCREEN(y - 1, x + 1) = 219 THEN l = l + 1
END IF
IF x > 1 THEN
IF SCREEN(y, x - 1) = 219 THEN l = l + 1
END IF
IF x < 80 THEN
IF SCREEN(y, x + 1) = 219 THEN l = l + 1
END IF
IF x > 1 AND y < 20 THEN
IF SCREEN(y + 1, x - 1) = 219 THEN l = l + 1
END IF
IF y < 20 THEN
IF SCREEN(y + 1, x) = 219 THEN l = l + 1
END IF
IF x < 80 AND y < 20 THEN
IF SCREEN(y + 1, x + 1) = 219 THEN l = l + 1
END IF
' Jos ympärillä on 0,1,4 tai enemmän laatikkoa, tällä kohdalla olevat laatikot poistetaan
IF l = 0 OR l = 1 OR l > 3 THEN
poista(x, y) = 1
END IF
' Jos ruutu on tyhjä ja sen ympärillä on tasan 3 laatikkoa, siihen luodaan uusi laatikko
IF SCREEN(y, x) = 32 AND l = 3 THEN
lisaa(x, y) = 1
END IF
NEXT y
NEXT x
' Poistot ja lisäykset
FOR x = 1 TO 80
FOR y = 1 TO 20
IF poista(x, y) = 1 THEN
LOCATE y, x
PRINT " "
END IF
IF lisaa(x, y) = 1 THEN
LOCATE y, x
PRINT "Û"
END IF
NEXT y
NEXT x
SLEEP ' Jos et halua edetä vaihe vaiheelta, poista tämä
LOOP WHILE INKEY$ <> CHR$(27)
' Täällä on ohjelman loppu, jonne tullaan kun esciä on painettu :)Ööö... Life-peli?
Jep, se hassu ekosysteemi-simulaatio. Googleta.
siis häh?
mulle tuli vaan 2 neliöö..
Ja kun painoi jotain niist tuli semmosii pötköi...
Onkos tää joku game of life tai joku?
Tämä jäljittelee The Game of Life:a. Lisätietoa löytyy esim. MikroBitin 11/2000 nettijatkoista http://www.mikrobitti.fi/nettijatkot/2000/11/
Tästä osoitteesta löytyy tietoa life-pelistä: http://pp.kpnet.fi/jarmo.hietala/gol/lifepeli.
Mulla Tiltas kone....
Tähänkö? Kummallista, tämä kun ei sisällä mitään, mikä olisi sekoittanut oman koneeni..?
piaaska :P
no life peli ideana on löytää tapa jolla saada kaikki ruudut täyteen... (toistaiseksi tähän ongelmaan ei ole löytynyt ratkaisua) (hyväksyttävä tapa EI ole niin että "otetaan suoraan kaikki ruudut niin on hyvä", vaan löytää mahdollisimman yksikertainen ratkaisu...
siinäpä on pähkinää... ite en saanut mitenkään sitä ratkottua... jospa joku teistä saisi... :)
MIKÄ TOI EES OLI???
Omituinen hökötys...
miten nää käynnistetään?
Ihan hyvä. Tein 80*50 version.