public void MoveTest() { GameState.RestartGame(numberOfDisks); Move move = new Move(0, 2); //Set expected values int expectedMoveCount = 1; int expectedDiskCountForPole0 = 2; int expectedDiskCountForPole1 = 0; int expectedDiskCountForPole2 = 1; //Get actual values int actualMoveCount = GameState.MakeMove(move); int actualDiskCountForPole0 = GameState.Poles[0].Disks.Count; int actualDiskCountForPole1 = GameState.Poles[1].Disks.Count; int actualDiskCountForPole2 = GameState.Poles[2].Disks.Count; //Assert Assert.AreEqual(expectedMoveCount, actualMoveCount); Assert.AreEqual(expectedDiskCountForPole0, actualDiskCountForPole0); Assert.AreEqual(expectedDiskCountForPole1, actualDiskCountForPole1); Assert.AreEqual(expectedDiskCountForPole2, actualDiskCountForPole2); }
public void GetMovesTest() { int amountOfDisks = 3; Pole pole0 = new Pole(0); Pole pole1 = new Pole(1); Pole pole2 = new Pole(2); //Set expected moves List<Move> expectedMoves = new List<Move>(); Move move1 = new Move(pole0, pole2); Move move2 = new Move(pole0, pole1); Move move3 = new Move(pole2, pole1); Move move4 = new Move(pole0, pole2); Move move5 = new Move(pole1, pole0); Move move6 = new Move(pole1, pole2); Move move7 = new Move(pole0, pole2); expectedMoves.Add(move1); expectedMoves.Add(move2); expectedMoves.Add(move3); expectedMoves.Add(move4); expectedMoves.Add(move5); expectedMoves.Add(move6); expectedMoves.Add(move7); //Get actual moves List<Move> actualMoves = MoveCalculator.GetMoves(amountOfDisks); //Assert Assert.AreEqual(expectedMoves.Count, actualMoves.Count); Assert.AreEqual(expectedMoves[0], actualMoves[0]); Assert.AreEqual(expectedMoves[1], actualMoves[1]); Assert.AreEqual(expectedMoves[2], actualMoves[2]); Assert.AreEqual(expectedMoves[3], actualMoves[3]); Assert.AreEqual(expectedMoves[4], actualMoves[4]); Assert.AreEqual(expectedMoves[5], actualMoves[5]); Assert.AreEqual(expectedMoves[6], actualMoves[6]); }
public static int MakeMove(Move move) { if (move == null || move.FromPole == null || move.ToPole == null) { return -1; } if (move.AffectCount()) { MoveCount++; } if (move.IsValid()) { Disk disk = move.FromPole.GetTopDisk(); Poles[move.FromPole.Number].RemoveDisk(); Poles[move.ToPole.Number].AddDisk(disk); return MoveCount; } else //Invalid move { return -1; } }
void thisBox_QueryContinueDrag(object sender, QueryContinueDragEventArgs e) { Disk disk = (Disk)sender; disk.Location = new Point(Cursor.Position.X - this.Location.X - (disk.Size.Height / 2), Cursor.Position.Y - this.Location.Y - (disk.Size.Width / 2)); if (e.Action == DragAction.Drop) { int destinationPoleNumber = DeterminePoleFromCursorPosition(); Pole currentPole = GameState.FindDisk(disk); Move move = new Move(currentPole, GameState.Poles[destinationPoleNumber]); if (move.IsValid()) { MakeMove(move); } else { Move moveBack = new Move(currentPole, currentPole); GameState.MakeMove(moveBack); } } }
private void MakeMove(Move move) { int moveCount = GameState.MakeMove(move); moveCounter.Text = moveCount.ToString(); if (GameState.IsSolved()) { possibleToSolve.Text = "Solved :) "; } }
private void MakeMove(Move move) { int moveCount = GameState.MakeMove(move); moveCounter.Text = moveCount.ToString(); if (GameState.IsSolved()) { if (!solveme) { MySqlCommand comm = new MySqlCommand("insert into gameresults(gameid,stdid,recorddate,score,level) values (" + Program.arg[1] + ",'" + Program.arg[0] + "',NOW(),'" + GameState.MoveCount + "','" + GameState.Poles[Properties.Settings.Default.EndPole].Disks.Count + "');", Kindergarten.func.connection); //System.Windows.Forms.MessageBox.Show(comm.CommandText); comm.ExecuteNonQuery(); } possibleToSolve.Text = "Solved :) "; solveme = false; } }