void AssertWord(string word) { using (PlFrame fr = new PlFrame()) { PlTermV av = new PlTermV(1); av[0] = PlTerm.PlCompound("word", new PlTermV(new PlTerm(word))); using (PlQuery q = new PlQuery("assert", av)) { q.NextSolution(); } } }
void AssertWord2(string word) { PlFrame fr = new PlFrame(); PlTermV av = new PlTermV(1); av[0] = PlTerm.PlCompound("word", new PlTermV(new PlTerm(word))); PlQuery q = new PlQuery("assert", av); q.NextSolution(); q.Dispose(); // IMPORTANT ! never forget to free the query before the PlFrame is closed fr.Dispose(); }
private string getNamePlayer(PlTerm player) { string name; using (PlFrame fr = new PlFrame()) { PlTerm playerName = new PlTerm("NomPlayer"); player.Unify(PlTerm.PlCompound("player", playerName)); name = playerName.ToString(); } return(name); }
private string getIdCarte(PlTerm carte) { string idCarte; using (PlFrame fr = new PlFrame()) { PlTerm id = new PlTerm("Id"); var carte2 = PlTerm.PlCompound("carte", id, PlTerm.PlVar(), PlTerm.PlVar()); carte.Unify(carte2); idCarte = id.ToString(); } return(idCarte); }
private int getNbPariCurrentPlayer() { int result; using (PlFrame fr = new PlFrame()) { using (PlQuery query = new PlQuery("currentPlayer(Player),pari(Player, Pari).")) { string nbPari = query.SolutionVariables.First()["Pari"].ToString(); result = int.Parse(nbPari); } } return(result); }
private int getPointsManchePlayer(PlTerm player) { int result; using (PlFrame fr = new PlFrame()) { PlTerm nbPoint = new PlTerm("NbPoint"); PlTermV terms = new PlTermV(player, nbPoint); using (PlQuery query = new PlQuery("pointManchePlayer", terms)) { string nbPari = query.Solutions.First()[1].ToString(); result = int.Parse(nbPari); } } return(result); }
private string getNameCurrentPlayer() { string name; using (PlFrame fr = new PlFrame()) { PlTerm playerName = new PlTerm("NomPlayer"); using (PlQuery query = new PlQuery("currentPlayer(Player).")) { PlTerm currentPlayer = query.Solutions.First()[0]; currentPlayer.Unify(PlTerm.PlCompound("player", playerName)); name = playerName.ToString(); } } return(name); }
//operator char *(void); /// <inheritdoc /> /// <summary> /// The exception is translated into a message as produced by print_message/2. The character data is stored in a ring. /// </summary> /// <returns></returns> override public string ToString() { if (_messagePl != null) { return(GetType() + ": " + _messagePl); } if (!PlEngine.IsInitialized) { return("A PlException was thrown but it can't formatted because PlEngine is not Initialized."); } string strRet = "[ERROR: Failed to generate message. Internal error]\n"; if (libpl.NoToString) { return("[ERROR: Failed to generate message. NoToString presently]\n"); } using (PlFrame fr = new PlFrame()) { #if USE_PRINT_MESSAGE PlTermV av = new PlTermV(2); av[0] = PlTerm.PlCompound("print_message", new PlTermV(new PlTerm("error"), new PlTerm(_exTerm.TermRef))); PlQuery q = new PlQuery("$write_on_string", av); if (q.NextSolution()) { strRet = (string)av[1]; } q.Free(); #else PlTermV av = new PlTermV(2); av[0] = new PlTerm(_exTerm.TermRef); PlQuery q = new PlQuery("$messages", "message_to_string", av); if (q.NextSolution()) { strRet = av[1].ToString(); } //q.Free(); return(strRet); q.Dispose(); #endif } return(strRet); }
private List <string> getMainCurrentPlayer() { List <string> main = new List <string>(); using (PlFrame fr = new PlFrame()) { using (PlQuery query = new PlQuery("currentPlayer(Player),jeuPlayer(Player, Jeu).")) { var jeu = query.SolutionVariables.First()["Jeu"]; if (jeu.IsList) { foreach (var item in jeu.ToList()) { main.Add(getIdCarte(item)); } } } } return(main); }
private List <Tuple <string, int> > getPointsGame() { List <Tuple <string, int> > result = new List <Tuple <string, int> >(); using (PlFrame fr = new PlFrame()) { PlTerm player = new PlTerm("Player"); PlTerm points = new PlTerm("Points"); PlTermV terms = new PlTermV(player, points); using (PlQuery query = new PlQuery("pointGame", terms)) { foreach (var item in query.Solutions) { player = item[0]; string nomPlayer = getNamePlayer(player); int nbPointsGame = int.Parse(item[1].ToString()); result.Add(new Tuple <string, int>(nomPlayer, nbPointsGame)); } } } return(result); }
[TestCleanup] // after each test override public void MyTestCleanup() { _frame.Dispose(); _frame = null; base.MyTestCleanup(); }
[TestInitialize] // befor each test override public void MyTestInitialize() { base.MyTestInitialize(); // mit pl_frame müssen alle queryes (die pl_wchar_to_term benutzen) in ein using bzw. dispose aufrufen _frame = new PlFrame(); }
//operator char *(void); /// <inheritdoc /> /// <summary> /// The exception is translated into a message as produced by print_message/2. The character data is stored in a ring. /// </summary> /// <returns></returns> override public string ToString() { if (_messagePl != null) return GetType() + ": " + _messagePl; if (!PlEngine.IsInitialized) return "A PlException was thrown but it can't formatted because PlEngine is not Initialized."; string strRet = "[ERROR: Failed to generate message. Internal error]\n"; if (libpl.NoToString) return "[ERROR: Failed to generate message. NoToString presently]\n"; using (PlFrame fr = new PlFrame()) { #if USE_PRINT_MESSAGE PlTermV av = new PlTermV(2); av[0] = PlTerm.PlCompound("print_message", new PlTermV(new PlTerm("error"), new PlTerm( _exTerm.TermRef))); PlQuery q = new PlQuery("$write_on_string", av); if ( q.NextSolution() ) strRet = (string)av[1]; q.Free(); #else PlTermV av = new PlTermV(2); av[0] = new PlTerm(_exTerm.TermRef); PlQuery q = new PlQuery("$messages", "message_to_string", av); if (q.NextSolution()) strRet = av[1].ToString(); //q.Free(); return strRet; q.Dispose(); #endif } return strRet; }