public void AssignNeighbors(BoardSetup bs) { neighbors.Clear(); Vector2[] dirs = { Vector2.left, Vector2.right, Vector2.up, Vector2.down }; foreach (Vector2 d in dirs) { Point n; if (bs.points.TryGetValue(position + d, out n)) { neighbors.Add(n); } } }
//Some explanation here: public static List <Point> StonesFromGameState(int[] gs, BoardSetup board) { List <Point> stones = new List <Point>(); for (int i = 0; i < gs.Length; i = i + 4) { Point p = board.GetPoint(new Vector2(gs[i + 1], gs[i + 2])); p.stone.turnNumberPlayed = gs[i]; p.stone.color = IntToStoneColor(gs[i + 3]); stones.Add(p); } return(stones); }
public void AddToHistory(int turnNumber, Stone s, int stonesCaptued, int[] gameState, BoardSetup board) { TurnDetails turnDetails = new TurnDetails(); turnDetails.turnNumber = turnNumber; turnDetails.player = s.color; turnDetails.stonesCapturedThisTurn = stonesCaptued; turnDetails.playPosition = s.position; turnDetails.columnAsLetter = GetColumnLetter((int)s.position.x); turnDetails.rowAsNumber = (int)s.position.x + 1; turnDetails.gameState = gameState; gameHistory[turnNumber] = turnDetails; }