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.