public void NextStatus() { if (BeforeStatus == TypeWireWorld.empty) { return; } else if (BeforeStatus == TypeWireWorld.head) { Status = TypeWireWorld.tail; } else if (BeforeStatus == TypeWireWorld.tail) { Status = TypeWireWorld.conductor; } else if (BeforeStatus == TypeWireWorld.conductor) { //si una o dos celdas vecinas son cabeza de electron //se convierte en cabeza de electron int count = 0; if (((WireWorld)Top).BeforeStatus == TypeWireWorld.head) { count++; } if (((WireWorld)TopLeft).BeforeStatus == TypeWireWorld.head) { count++; } if (((WireWorld)TopRight).BeforeStatus == TypeWireWorld.head) { count++; } if (((WireWorld)Left).BeforeStatus == TypeWireWorld.head) { count++; } if (((WireWorld)Right).BeforeStatus == TypeWireWorld.head) { count++; } if (((WireWorld)Bottom).BeforeStatus == TypeWireWorld.head) { count++; } if (((WireWorld)BottomLeft).BeforeStatus == TypeWireWorld.head) { count++; } if (((WireWorld)BottomRight).BeforeStatus == TypeWireWorld.head) { count++; } if (count == 1 || count == 2) { Status = TypeWireWorld.head; } } }
public WireWorld(int x, int y, TypeWireWorld type) : base(x, y) { Status = BeforeStatus = type; }