diff options
-rw-r--r-- | battle.c | 21 |
1 files changed, 21 insertions, 0 deletions
@@ -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; |