From 962b42b7a3ab20a90da859f361f1694649f22f5b Mon Sep 17 00:00:00 2001 From: Jan Klemkow Date: Mon, 12 Nov 2012 07:43:45 +0100 Subject: Add player rules wrapper for battle program. --- battle.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/battle.c b/battle.c index 4ee01df..40e9bf9 100644 --- a/battle.c +++ b/battle.c @@ -4,6 +4,26 @@ #define __GPROLOG_FOREIGN_STRICT__ #include "gprolog.h" +char player(char *algorithm, char a, char b) +{ + char move = -1; + PlTerm arg[3]; + + int func = Pl_Find_Atom(algorithm); + + Pl_Query_Begin(PL_TRUE); + + arg[0] = Pl_Mk_List(); + arg[1] = Pl_Mk_Variable(); + + if (Pl_Query_Call(func, 3, arg)) { + move = Pl_Rd_char(arg[1]); + } + Pl_Query_End(PL_RECOVER); + + return move; +} + int pay(char a, char b) { int payment = -1; @@ -31,6 +51,7 @@ main(int argc, char *argv[]) Pl_Start_Prolog(argc, argv); printf("pay: %d\n", pay('d', 'c')); + printf("move: %c\n", player("tit4tat", 'd', 'c')); Pl_Stop_Prolog(); return 0; -- cgit