static void Main(string[] args) { System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch(); sw.Start(); TowerOfHanoi tower = new TowerOfHanoi(); string sNumdisc; Console.WriteLine("Enter the number of discs: "); sNumdisc = Console.ReadLine(); // tower.dicsNumbers = Convert.ToInt32(sNumdisc); if (int.TryParse(sNumdisc, out int n)) { tower.dicsNumbers = n; } else { // sNumdisc = "10"; // tower.dicsNumbers = 10; Console.WriteLine("Please Numbers only"); return; } Console.WriteLine($"Count : {tower.MoveTower(tower.dicsNumbers, 1, 3, 2)}"); Console.WriteLine(Math.Pow(2, Convert.ToInt32(sNumdisc)) - 1); sw.Stop(); Console.WriteLine($"End Time : {sw.Elapsed.ToString()}"); Console.ReadLine(); }
/// <summary> /// Private method to test gameplay /// </summary> private void benchmark() { try { if (this.n == 0) { for (int n = 1; n < 10 + 1; n++) { TowerOfHanoi hanoi = new TowerOfHanoi(); Dictionary <movement, int> stat = hanoi.simulate(n); var lines = stat.Select(kvp => "Movement " + kvp.Key.fromPeg + " to " + kvp.Key.toPeg + ": " + kvp.Value.ToString()); Console.WriteLine("Movements for " + n + " disks" + " => \n" + string.Join("\n", lines)); } } else { TowerOfHanoi hanoi = new TowerOfHanoi(); Dictionary <movement, int> stat = hanoi.simulate(this.n); var lines = stat.Select(kvp => "Movement " + kvp.Key.fromPeg + " to " + kvp.Key.toPeg + ": " + kvp.Value.ToString()); Console.WriteLine(n + " => " + string.Join("\n", lines)); } Debug.Assert(getExpectedNumber(2, 5, 1, 3, 5) == 60); Debug.Assert(getExpectedNumber(3, 20, 4, 9, 17) == 2358); } catch (Exception ex) { errorTrace = "Problem@benchmark"; throw; } }
static void Main(string[] args) { var game = new TowerOfHanoi(); game.Play(); Console.ReadLine(); }
static void Main() { // Number of disks int n = int.Parse(Console.ReadLine()); var tower = new TowerOfHanoi(n); tower.Solve(); }
public QLearning(TowerOfHanoi puzzle, int numberOfDisks) { _Puzzle = puzzle; _NumberOfDisks = numberOfDisks; _Generator = new StateGenerator(); Init(_NumberOfDisks); }
public QLearning(TowerOfHanoi puzzle, int numberOfDisks) { _Puzzle = puzzle; _NumberOfDisks = numberOfDisks; _Generator = new StateGenerator(); Init(_NumberOfDisks); }
static void Main(string[] args) { TowerOfHanoi Tower = new TowerOfHanoi(); string cnumdiscs; Console.WriteLine("Enter the number of the disks"); cnumdiscs = Console.ReadLine(); Tower.numdiscs = Convert.ToInt32(cnumdiscs); Tower.movetower(Tower.numdiscs, 1, 3, 2); Console.ReadLine(); }
public void TestSolve() { int n; if (!string.IsNullOrEmpty((string)TestContext.DataRow["n"])) { bool isNumeric = int.TryParse((string)TestContext.DataRow["n"], out n); if (isNumeric) { TowerOfHanoi.TowerOfHanoi towerOfHanoi = new TowerOfHanoi.TowerOfHanoi(); Dictionary <movement, int> stat = towerOfHanoi.simulate(n); Assert.IsTrue(stat.Count > 0); } } }
static void Main(string[] args) { //testcases TowerOfHanoi.move(3, 1, 3, 2); }