private void StepByStepCommandProc() { if (StepByStepFlag == false) { Generate(NumberOfDisks); Queue <string> girl = new Queue <string>(); if (pegend == "C" || pegend == "c") { pegend = "C"; } if (pegend == "B" || pegend == "b") { pegend = "B"; } if (pegend == "A" || pegend == "a") { pegend = "A"; } if (pegname == "A" && pegend == "B") { girl = hoy.MoveStep(NumberOfDisks, BETAfirst, BETAsecond, BETAthird); while (girl.Count != 0) { BackProcedure.Add(girl.Dequeue()); } } if (pegname == "B" && pegend == "A") { girl = hoy.MoveStep(NumberOfDisks, BETAsecond, BETAfirst, BETAthird); while (girl.Count != 0) { BackProcedure.Add(girl.Dequeue()); } } if (pegname == "A" && pegend == "C") { girl = hoy.MoveStep(NumberOfDisks, BETAfirst, BETAthird, BETAsecond); while (girl.Count != 0) { BackProcedure.Add(girl.Dequeue()); } } if (pegname == "C" && pegend == "A") { girl = hoy.MoveStep(NumberOfDisks, BETAthird, BETAfirst, BETAsecond); while (girl.Count != 0) { BackProcedure.Add(girl.Dequeue()); } } if (pegname == "B" && pegend == "C") { girl = hoy.MoveStep(NumberOfDisks, BETAsecond, BETAthird, BETAfirst); while (girl.Count != 0) { BackProcedure.Add(girl.Dequeue()); } } if (pegname == "C" && pegend == "B") { girl = hoy.MoveStep(NumberOfDisks, BETAthird, BETAsecond, BETAfirst); while (girl.Count != 0) { BackProcedure.Add(girl.Dequeue()); } } string zxc = BackProcedure.First(); BackProcedure.Remove(BackProcedure.First()); string[] checker = zxc.Split(' '); //641 2 + 53 * if (checker[5] == "A" && checker[8] == "C") { var b = ALPHAfirst.ElementAtOrDefault(0); ALPHAthird.Insert(0, b); ALPHAfirst.RemoveAt(0); Procedure.Add(zxc); Steps = zxc; } if (checker[5] == "C" && checker[8] == "A") { var b = ALPHAthird.ElementAtOrDefault(0); ALPHAfirst.Insert(0, b); ALPHAthird.RemoveAt(0); Procedure.Add(zxc); Steps = zxc; } if (checker[5] == "A" && checker[8] == "B") { var b = ALPHAfirst.ElementAtOrDefault(0); ALPHAsecond.Insert(0, b); ALPHAfirst.RemoveAt(0); Procedure.Add(zxc); Steps = zxc; } if (checker[5] == "B" && checker[8] == "A") { var b = ALPHAsecond.ElementAtOrDefault(0); ALPHAfirst.Insert(0, b); ALPHAsecond.RemoveAt(0); Procedure.Add(zxc); Steps = zxc; } if (checker[5] == "B" && checker[8] == "C") { var b = ALPHAsecond.ElementAtOrDefault(0); ALPHAthird.Insert(0, b); ALPHAsecond.RemoveAt(0); Procedure.Add(zxc); Steps = zxc; } if (checker[5] == "C" && checker[8] == "B") { var b = ALPHAthird.ElementAtOrDefault(0); ALPHAsecond.Insert(0, b); ALPHAthird.RemoveAt(0); Procedure.Add(zxc); Steps = zxc; } StepByStepFlag = true; return; } if (StepByStepFlag) { if (BackProcedure.Count != 0) { string zxc = BackProcedure.First(); BackProcedure.Remove(BackProcedure.First()); string[] checker = zxc.Split(' '); //641 2 + 53 * if (checker[5] == "A" && checker[8] == "C") { var b = ALPHAfirst.ElementAtOrDefault(0); ALPHAthird.Insert(0, b); ALPHAfirst.RemoveAt(0); Procedure.Add(zxc); Steps = zxc; } if (checker[5] == "C" && checker[8] == "A") { var b = ALPHAthird.ElementAtOrDefault(0); ALPHAfirst.Insert(0, b); ALPHAthird.RemoveAt(0); Procedure.Add(zxc); Steps = zxc; } if (checker[5] == "A" && checker[8] == "B") { var b = ALPHAfirst.ElementAtOrDefault(0); ALPHAsecond.Insert(0, b); ALPHAfirst.RemoveAt(0); Procedure.Add(zxc); Steps = zxc; } if (checker[5] == "B" && checker[8] == "A") { var b = ALPHAsecond.ElementAtOrDefault(0); ALPHAfirst.Insert(0, b); ALPHAsecond.RemoveAt(0); Procedure.Add(zxc); Steps = zxc; } if (checker[5] == "B" && checker[8] == "C") { var b = ALPHAsecond.ElementAtOrDefault(0); ALPHAthird.Insert(0, b); ALPHAsecond.RemoveAt(0); Procedure.Add(zxc); Steps = zxc; } if (checker[5] == "C" && checker[8] == "B") { var b = ALPHAthird.ElementAtOrDefault(0); ALPHAsecond.Insert(0, b); ALPHAthird.RemoveAt(0); Procedure.Add(zxc); Steps = zxc; } } else { return; } } }
private async void MoveCommandProc() { LimiterForAuto = false; SliderBool = false; Queue <string> girl = new Queue <string>(); if (pegend == "C" || pegend == "c") { pegend = "C"; } if (pegend == "B" || pegend == "b") { pegend = "B"; } if (pegend == "A" || pegend == "a") { pegend = "A"; } Generate(NumberOfDisks); await Task.Delay(400); if (pegname == "A" && pegend == "B") { girl = hoy.MoveStep(NumberOfDisks, first, second, third); while (girl.Count != 0) { Procedure.Add(girl.Dequeue()); } await Move(NumberOfDisks, ALPHAfirst, ALPHAsecond, ALPHAthird); } if (pegname == "B" && pegend == "A") { girl = hoy.MoveStep(NumberOfDisks, second, first, third); while (girl.Count != 0) { Procedure.Add(girl.Dequeue()); } await Move(NumberOfDisks, ALPHAsecond, ALPHAfirst, ALPHAthird); } if (pegname == "A" && pegend == "C") { girl = hoy.MoveStep(NumberOfDisks, first, third, second); while (girl.Count != 0) { Procedure.Add(girl.Dequeue()); } await Move(NumberOfDisks, ALPHAfirst, ALPHAthird, ALPHAsecond); } if (pegname == "C" && pegend == "A") { girl = hoy.MoveStep(NumberOfDisks, third, first, second); while (girl.Count != 0) { Procedure.Add(girl.Dequeue()); } await Move(NumberOfDisks, ALPHAthird, ALPHAfirst, ALPHAsecond); } if (pegname == "B" && pegend == "C") { girl = hoy.MoveStep(NumberOfDisks, second, third, first); while (girl.Count != 0) { Procedure.Add(girl.Dequeue()); } await Move(NumberOfDisks, ALPHAsecond, ALPHAthird, ALPHAfirst); } if (pegname == "C" && pegend == "B") { girl = hoy.MoveStep(NumberOfDisks, third, second, first); while (girl.Count != 0) { Procedure.Add(girl.Dequeue()); } await Move(NumberOfDisks, ALPHAthird, ALPHAsecond, ALPHAfirst); } SliderBool = true; LimiterForAuto = true; }