private static void CheckMoveIsValidAndUpdateGrid(Moves moveToAdd, Tuple <ushort, ushort> positionOnGrid) { if (TurnValidator.ThisMoveIsNotSameAsLastMove(_lastMove, moveToAdd) == MoveCategory.MoveIsValid && TurnValidator.CurrentMoveIsOverwrite(positionOnGrid) == MoveCategory.MoveIsValid) { GridUpdater.InsertIntoGrid(positionOnGrid, moveToAdd); _lastMove = moveToAdd; NumberOfTurns++; } }
public static MoveCategory CurrentMoveIsOverwrite(Tuple <ushort, ushort> positionOnGrid) { if (GridUpdater.GetValueAt(positionOnGrid) != Moves.Blank) { Console.WriteLine("\nThat position is filled, try one of the blanks...\n"); return(MoveCategory.PositionAlreadyFilledError); } return(MoveCategory.MoveIsValid); }
public static void PrintGrid() { GridUpdater.PrettyPrint(); }
public static bool HasNotBeenWon() { var gridToCheckWin = GridUpdater.GetGrid(); return(!WinChecker.HasWon(gridToCheckWin, _lastMove)); }