using System; using System.Collections.Generic; using System.Text; namespace TileGame { class Tile { public enum SideType { LeavesRedUp = 1, CornLeft = 2, ApplesTop = 3, ScareCrowTop = 4, LeavesRedDown = 11, CornRight = 12, ApplesBottom = 13, ScareCrowBottom = 14 }; public static SideType[][] Layouts = new SideType[][] { new SideType[] { SideType.LeavesRedUp, SideType.CornLeft, SideType.ApplesTop, SideType.LeavesRedUp}, new SideType[] { SideType.CornLeft, SideType.LeavesRedUp, SideType.ApplesTop, SideType.ApplesTop}, new SideType[] { SideType.ApplesTop, SideType.LeavesRedDown, SideType.ScareCrowTop, SideType.CornRight}, new SideType[] { SideType.ApplesTop, SideType.CornRight, SideType.ScareCrowTop, SideType.LeavesRedDown}, new SideType[] { SideType.CornLeft, SideType.LeavesRedDown, SideType.ScareCrowTop, SideType.ScareCrowBottom}, new SideType[] { SideType.ScareCrowBottom, SideType.CornRight, SideType.ScareCrowTop, SideType.ApplesTop}, new SideType[] { SideType.ScareCrowBottom, SideType.LeavesRedUp, SideType.ApplesBottom, SideType.CornRight}, new SideType[] { SideType.ScareCrowBottom, SideType.CornLeft, SideType.ApplesBottom, SideType.LeavesRedUp}, new SideType[] { SideType.ScareCrowBottom, SideType.CornRight, SideType.ApplesBottom, SideType.LeavesRedUp } }; public SideType[] Sides; public int RotateCount; public int ID; public Tile(int i) { ID = i; ResetToDefault(); } public void ResetToDefault() { Sides = new SideType[4]; for (int i = 0; i < 4; i++) { Sides[i] = Layouts[ID][i]; } RotateCount = 0; } public void RotateClockwise() { SideType temp = Sides[3]; for (int i = 3; i > 0; i--) { Sides[i] = Sides[i-1]; } Sides[0] = temp; RotateCount++; } public void RotateCounterClockwise() { SideType temp = Sides[0]; for (int i = 0; i < 3; i++) { Sides[i] = Sides[i + 1]; } Sides[3] = temp; RotateCount--; } public override string ToString() { return ID + " rot " + RotateCount; } } }