"First, solve the problem.
Then, write the code."
John Johnson
Flash/AS3

Mrówka Langtona/Langton's ant

Game of Life/Gra w życie
zamknięty:
listopad 2011
zleceniodawca:
projekt uczelniany
Opis:

Teoria:

Mrówka Langtona to prosty automat komórkowy wymyślony przez Chrisa Langtona. Może być traktowany również jako rozszerzona do dwóch wymiarów bardzo prosta maszyna Turinga.

W każdym kroku wyróżniona jest jedna komórka nazywana "mrówką", która oprócz koloru ma określony także kierunek, w którym się porusza. Mrówka zachowuje się według następujących zasad:

  1. jeśli znajduje się na polu białym to obraca się w lewo (o kąt prosty), zmienia kolor pola na czarny i przechodzi na następną komórkę;
  2. jeśli znajduje się na polu czarnym to obraca się w prawo (o kąt prosty), zmienia kolor pola na biały i przechodzi na następną komórkę;
  3. porusza się na nieskończonej planszy podzielonej na kwadratowe komórki (pola) w dwóch możliwych kolorach: czarnym i białym.

http://pl.wikipedia.org/wiki/Mr%C3%B3wka_Langtona

 

A teraz o samym projekcie:

  • tak jak i w grze w życie użytłem ActionScript3,
  • można wstawiać na planszę wiele mrówek, które "zjadają się" jeśli trafią na to samo pole,
  • istnieje możliwość ustawienia startowych kolorów pól.

Nieprędko udało mi się znaleźć sposób na zmianę koloru wybranego przycisku. Oto fragment kodu, który to umożliwia:

package 
{
	import fl.controls.Button;
	import flash.geom.ColorTransform;
	//...

	public class AntButton extends Button
	{
		private var curColor:ColorTransform;

		public function AntButton(xPos:int, yPos:int)
		{
			//...			

			curColor = this.transform.colorTransform;
			curColor.color = 0xca7700;
			this.transform.colorTransform = curColor;

		}
		
		// ...
	}
}
do góry