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();
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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);
        }
Beispiel #6
0
        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);
        }
Beispiel #7
0
        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);
        }
Beispiel #8
0
        //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);
        }
Beispiel #9
0
        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);
        }
Beispiel #10
0
        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);
        }
Beispiel #11
0
 [TestCleanup]   // after each test
 override public void MyTestCleanup()
 {
     _frame.Dispose();
     _frame = null;
     base.MyTestCleanup();
 }
Beispiel #12
0
 [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();
 }
Beispiel #13
0
		//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;
		}