لعبة الحياة

اخترع الرياضي (عالم رياضيات) جون كُنواي "لعبة الحياة" – "Game of Life"، التي يصفها بأنها "لعبة بدون لاعبين" – "zero-player game" بسبب عدم الحاجة إلى لاعبين ليختاروا استراتيجيات أو يتخذوا قرارات. بعد تجهيز الشروط الابتدائية، تجلس وتشاهد اللعبة تلعب لوحدها. لكن تبين أن ذلك أكثر تشويقاً مما يبدو؛ يمكنك القراءة عنها على http://en.wikipedia.org/wiki/Conways_Game_of_Life.
إن الغرض من هذا التمرين هو تنفيذ لعبة الحياة باستخدام GridWorld. ستكون الشبكة رقعة اللعبة (game board)، وستمثل الصخور القطع.
تجرى اللعبة في أدوار، أو خطوات زمنية (time steps). في بداية الخطوة الزمنية، كل صخرة إما أن تكون "على قيد الحياة" أو "ميتة". على الشاشة، سيمثـِل لون الصخرة حالتها.
تعتمد حالة كل صخرة على حالة جيرانها. لكل صخرة 8 جيران، عدا الصخور الموجودة على حافة الشبكة. ها هي القواعد:
· إذا كان للصخرة الميتة ثلاثة جيران بالضبط، تعود إلى الحياة! وإلا ستظل ميتة.
· إذا كان للصخرة الحيّة جارين أو ثلاثة، فستنجو. وإلا ستموت.
بعض تبعات هذه القواعد: إذا كانت جميع الصخور ميتة، لا تعود أي منها إلى الحياة. إذا بدأت اللعبة مع صخرة حية وحيدة، تموت. لكن إذا وجدت 4 صخور في مربع، فستبقى كلها على قيد الحياة، لذلك نقول أن هذا الوضع مستقر.
معظم الأوضاع الابتدائية البسيطة إما أن تنقرض فيها الصخور سريعاً أو تصل إلى وضع مستقر. لكن توجد بعض الشروط الابتدائية التي تظهِر تعقيداً مميزاً. أحدها هو r-pentomino: يبدأ مع 5 صخور فقط، يعمل 1103 خطوة زمنية وينتهي في وضع مستقر مع 116 صخرة حية (انظر
http://www.conwaylife.com/wiki/R-pentomino).
الأقسام التالية هي اقتراحاتي لتنفيذ لعبة الحياة (GoF) في GridWorld. يمكنك تنزيل الحل من http://thinklikecs.webs.com/resource...ifeRunner.java و http://thinklikecs.webs.com/resource.../LifeRock.java.