public void TestInfer_SolveColoumCardDesk_Sub() { Desk tempDesk1 = new Desk(); tempDesk1.AllCardOnDesk.SortedCard[0] = new Card(Card.Type.Diamonds, Card.Number.King); tempDesk1.AllCardOnDesk.SortedCard[1] = new Card(Card.Type.Heart, Card.Number.Queen); tempDesk1.AllCardOnDesk.SortedCard[2] = new Card(Card.Type.Spade, Card.Number.Jack); tempDesk1.AllCardOnDesk.SortedCard[3] = new Card(Card.Type.Club, Card.Number.Ten); tempDesk1.AddNewCardInColoum(1, new Card(Card.Type.Heart, Card.Number.King)); tempDesk1.AddNewCardInColoum(2, new Card(Card.Type.Spade, Card.Number.King)); tempDesk1.AddNewCardInColoum(3, new Card(Card.Type.Club, Card.Number.King)); tempDesk1.AddNewCardInColoum(2, new Card(Card.Type.Spade, Card.Number.Queen)); tempDesk1.AddNewCardInColoum(3, new Card(Card.Type.Club, Card.Number.Queen)); tempDesk1.AddNewCardInColoum(3, new Card(Card.Type.Club, Card.Number.Jack)); InferManager.GetInstance().ClearInferData(); InferManager.GetInstance().SetStartDesk(tempDesk1); var result = InferManager.GetInstance().StartInfer(); if (!result.IsSolved) { throw new Exception(result.Message); } }
public void TestInfer_SolveColoumCardDesk() { Desk tempDesk1 = new Desk(); for (int coloumIndex = 0; coloumIndex < 4; coloumIndex++) { for (Card.Number i = Card.Number.King; i >= Card.Number.Arch; i--) { tempDesk1.AddNewCardInColoum(coloumIndex, new Card((Card.Type)coloumIndex + 1, i)); } } InferManager.GetInstance().ClearInferData(); InferManager.GetInstance().SetStartDesk(tempDesk1); var result = InferManager.GetInstance().StartInfer(); if (!result.IsSolved) { throw new Exception(result.Message); } }
public void TestInfer_SolveFreeCardDesk() { Desk tempDesk1 = new Desk(); for (int i = 0; i < tempDesk1.AllCardOnDesk.FreeCard.Length; i++) { tempDesk1.AddNewCardInFreeCard(new Card(Card.Type.Diamonds, Card.Number.King - i)); } tempDesk1.AllCardOnDesk.SortedCard[(int)Card.Type.Diamonds - 1] = new Card(Card.Type.Diamonds, Card.Number.King - tempDesk1.AllCardOnDesk.FreeCard.Length); tempDesk1.AllCardOnDesk.SortedCard[(int)Card.Type.Club - 1] = new Card(Card.Type.Club, Card.Number.King); tempDesk1.AllCardOnDesk.SortedCard[(int)Card.Type.Heart - 1] = new Card(Card.Type.Heart, Card.Number.King); tempDesk1.AllCardOnDesk.SortedCard[(int)Card.Type.Spade - 1] = new Card(Card.Type.Spade, Card.Number.King); InferManager.GetInstance().ClearInferData(); InferManager.GetInstance().SetStartDesk(tempDesk1); var result = InferManager.GetInstance().StartInfer(); if (!result.IsSolved) { throw new Exception(result.Message); } }
public override void Execute() { string location = CommandManager.GetInstance().RemainCommand.Trim(); string json; try { json = File.ReadAllText(location); } catch (FileNotFoundException) { Console.WriteLine("File not found"); return; } Desk targetDesk = Desk.GetDeskFromJson(json); Console.WriteLine(targetDesk.Pretty()); try { targetDesk.CheckError(); } catch (ErrorInDeskException e) { Console.WriteLine($"Error: {e}"); return; } InferManager.GetInstance().ClearInferData(); InferManager.GetInstance().SetStartDesk(targetDesk); var result = InferManager.GetInstance().StartInfer(); Console.WriteLine(result.Message); foreach (var singleProcedure in result.Procedures) { Console.WriteLine(singleProcedure.MoveMessage); } }