diff options
author | Jan Klemkow <j.klemkow@wemelug.de> | 2012-11-12 07:43:45 +0100 |
---|---|---|
committer | Jan Klemkow <j.klemkow@wemelug.de> | 2012-11-12 07:45:56 +0100 |
commit | 962b42b7a3ab20a90da859f361f1694649f22f5b (patch) | |
tree | 5f51c8a7b217e54789ceb01efc7800981097dcb3 | |
parent | ff7f3f2aeb3d0a7a8ab5ecafc9da980d50d818c0 (diff) | |
download | wbs-962b42b7a3ab20a90da859f361f1694649f22f5b.tar.gz wbs-962b42b7a3ab20a90da859f361f1694649f22f5b.tar.bz2 wbs-962b42b7a3ab20a90da859f361f1694649f22f5b.zip |
Add player rules wrapper for battle program.
-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; |