Utolsó kommentek

Címkék

Életjáték - The game of life

2009.04.13. 15:27 | Kapitány2 | Szólj hozzá!

Címkék: játék életjáték conway

Az életjáték (angolul The game of life) John Horton Conway-től, a cambridge-i egyetem matematikusától származik. A játékot 1970 környékén mutatta meg barátjának, Martin Gardner-nek, aki 1970 októberében ismertette a témát a Scientific American-ben. Conway ezzel az ötletével vált ismertté a matematikusok világán kívül, játéka világszerte népszerűvé vált. Bizonyos becslések szerint a 70-es évek elején ezzel a játékkal rengeteg értékes gépidőt vesztegettek el, s így - a TIME becslése szerint - több millió dolláros anyagi kár merült fel a nagyszámítógépeket üzemeltető biztosítótársaságoknál és bankoknál.

De miről is van szó? Ez a játék nem olyan értelemben vett játék, mint ahogy mostanában szokás "játékról" beszélni (nem FPS, nem RTS, nem RPG stb.), általában nem is tudunk beavatkozni a folyamatába, de nagyon érdekes időtöltés a képernyőn figyelemmel kísérni a folyamatos változásokat.

A játék egy négyzethálós táblán játszható (akár egy "kockás" papíron is megpróbálhatjuk, de ez egy kissé nehézkes). A táblán található négyzeteket celláknak nevezzük, és e cellákba a játék kezdetén tetszőleges helyekre ún. sejteket helyezünk. Ebből a kiinduló állapotból a játék során újabb elrendeződések sorozata keletkezik.

Az egyes cellákban a következő állapotváltozások mehetnek végbe:

  1. Egy adott cella a következő elrendezésben is sejtet tartalmazhat, vagyis az adott sejt túlélte a változást.
  2. Egy adott cella a következő elrendezésben kiürül, vagyis a sejt elpusztul.
  3. Egy előző állapotban üres cellába sejt kerül a következő elrendezésben, vagyis új sejt születik.

Az állapotváltozások egyszerre mennek végbe a táblán, azaz nem fokozatosan (ez nagyon fontos!). A szabályok a következők:

  1. Túlélés: minden olyan sejt, amelynek két vagy három szomszédja van, életben marad, és a következő generáció változatlan tagja lesz.
  2. Elpusztulás: egy sejt elpusztul, ha a következő két állapot valamelyike jön létre a környezetében:
    • négy vagy több szomszédja van : túlnépesedés
    • egy vagy nulla szomszédja van : elszigetelődés
  3. Születés: minden olyan üres cellában, amelynek pontosan három sejt-szomszédja van, új sejt születik.

Ha ezt az algoritmust folyamatosan ismételjük, akkor kis idő elteltével nagyon érdekes elrendeződések alakulhatnak ki.

Érdekes kérdések merülnek fel a programmal kapcsolatban. Az első, hogy hogyan alakítsuk ki a kezdő elrendezést? A legegyszerűbb megoldás, ha a táblát véletlenszerűen töltjük fel. Akár kézzel is el lehet ezt végezni, aminek az az előnye, hogy bizonyos speciális kezdőállapotokból különleges új állapotokba kerülhet a program. A második kérdés, hogy hogyan kezeljük az életteret körbevevő keretet (ami nem látszik a képernyőn), ugyanis a tábla szélén lévő cellákat is módosítanunk kell valahogyan. Itt is választhatunk két egyszerű megoldást: a táblát körbevevő keret összes cellája tartalmazzon illetve ne tartalmazzon sejtet.

Az eredeti ötletet ki lehet egészíteni néhány újjal, hogy érdekesebb legyen a játék:

  • tegyünk a táblára olyan mezőket is, amelyek nem sejtek, de soha nem is változhatnak (pl. fal, szikla stb.)
  • indítsunk kettő vagy több populációt (pl. pirosakat és kékeket) egymás ellen a táblán
  • változtassuk meg a szabályokat (pl. négy szomszéd esetén is szülessen új sejt; ebből is kijöhetnek furcsaságok)
  • néha kerüljön a táblára a szabályoktól függetlenül egy-egy "mutáns" sejt (ez elég rendesen meg tudja kavarni a folyamatot)
  • ha akarunk, mi is tehessünk a táblára egy-egy új sejtet, ahová éppen nekünk tetszik

Rengeteg megvalósítása létezik az életjátéknak. Különösen ajánlom mindenkinek a CellFighter Game című shareware programot, amely a CellFighter.com oldalról tölthető le. Egy saját megvalósítás a tumuslak.uw.hu/tdownload/life.zip címen található.

Felhasznált és ajánlott források:

A bejegyzés trackback címe:

https://gdev.blog.hu/api/trackback/id/tr931062522

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.