public void CheckExampleInputs() { BoardGameClass gameTest = new BoardGameClass(); string[] strInputArray = new string[] { "MRMLMRM", "RMMMLMM", "MMMMM" }; string[] strExpectedResults = new string[] { "2 2 E", "3 2 N", "0 4 N" }; string Result; for (int i = 0; i < strInputArray.Length; i++) { gameTest.ProcessCommands(strInputArray[i]); Result = gameTest.pieceOne.Output(); Console.WriteLine(gameTest.pieceOne.Output()); Assert.That(Result, Is.EqualTo(strExpectedResults[i])); // Move piece back to its starting position (0 0 N) gameTest.Move('E'); } }
//The piece can move around the board in one of four directions ((N)orth, (E)ast, (S)outh and (W)est). public void PieceMovesOneInFourDirections() { string[] CompassPoints = new string[] { "N", "E", "S", "W" }; int intMaxComPoints = CompassPoints.Length; BoardGameClass BGResult = new BoardGameClass(); // Rotate piece multiple times to the right for (int i = 0; i < 60; i++) { Console.WriteLine("Rotation To Right Test {0}, Exp: {1} Res:{2}", i, CompassPoints[i % intMaxComPoints], BGResult.pieceOne.getFDS()); Assert.That(BGResult.pieceOne.getFDS(), Is.EqualTo(CompassPoints[i % intMaxComPoints])); BGResult.pieceOne.ChangeDirection(PieceClass.enTurningDirection.R); } // Move piece back to its starting position (0 0 N) BGResult.Move('E'); Assert.That(BGResult.pieceOne.getX(), Is.EqualTo(0)); Assert.That(BGResult.pieceOne.getY(), Is.EqualTo(0)); Assert.That(BGResult.pieceOne.getFDS(), Is.EqualTo("N")); Console.WriteLine("Move Piece Back To Starting Position"); // While Facing North move from bottom left to top left for (int mi = BoardClass.cintBoardMin; mi < BoardClass.cintBoardMax; mi++) { Assert.That(BGResult.pieceOne.getY(), Is.EqualTo(mi)); Assert.That(BGResult.pieceOne.getX(), Is.EqualTo(BoardClass.cintBoardMin)); BGResult.MoveForwardY(); BGResult.MoveForwardX(); } Console.WriteLine(BGResult.pieceOne.Output()); // Turn piece 90 degrees to face East move from top left to top right BGResult.pieceOne.ChangeDirection(PieceClass.enTurningDirection.R); for (int mi = BoardClass.cintBoardMin; mi < BoardClass.cintBoardMax; mi++) { Assert.That(BGResult.pieceOne.getY(), Is.EqualTo(BoardClass.cintBoardMax)); Assert.That(BGResult.pieceOne.getX(), Is.EqualTo(mi)); BGResult.MoveForwardY(); BGResult.MoveForwardX(); } Console.WriteLine(BGResult.pieceOne.Output()); // Turn piece 90 degrees to face South move from top right to bottom right BGResult.pieceOne.ChangeDirection(PieceClass.enTurningDirection.R); for (int mi = 4; mi >= BoardClass.cintBoardMin; mi--) { Assert.That(BGResult.pieceOne.getY(), Is.EqualTo(mi)); Assert.That(BGResult.pieceOne.getX(), Is.EqualTo(BoardClass.cintBoardMax)); BGResult.MoveForwardY(); BGResult.MoveForwardX(); } Console.WriteLine(BGResult.pieceOne.Output()); // Turn piece 90 degrees to face West move from bottom right to bottom left BGResult.pieceOne.ChangeDirection(PieceClass.enTurningDirection.R); for (int mi = BoardClass.cintBoardMax; mi <= BoardClass.cintBoardMin; mi++) { Assert.That(BGResult.pieceOne.getY(), Is.EqualTo(BoardClass.cintBoardMin)); Assert.That(BGResult.pieceOne.getX(), Is.EqualTo(mi)); BGResult.MoveForwardY(); BGResult.MoveForwardX(); Console.WriteLine("T4: ", BGResult.pieceOne.Output()); } Console.WriteLine(BGResult.pieceOne.Output()); }