diff options
Diffstat (limited to 'battle.c')
-rw-r--r-- | battle.c | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/battle.c b/battle.c new file mode 100644 index 0000000..4ee01df --- /dev/null +++ b/battle.c @@ -0,0 +1,37 @@ +#include <stdio.h> +#include <string.h> + +#define __GPROLOG_FOREIGN_STRICT__ +#include "gprolog.h" + +int pay(char a, char b) +{ + int payment = -1; + PlTerm arg[3]; + + int func = Pl_Find_Atom("pay"); + + Pl_Query_Begin(PL_TRUE); + + arg[0] = Pl_Mk_Char(a); + arg[1] = Pl_Mk_Char(b); + arg[2] = Pl_Mk_Variable(); + + if (Pl_Query_Call(func, 3, arg)) { + payment = Pl_Rd_Integer(arg[2]); + } + Pl_Query_End(PL_RECOVER); + + return payment; +} + +int +main(int argc, char *argv[]) +{ + Pl_Start_Prolog(argc, argv); + + printf("pay: %d\n", pay('d', 'c')); + + Pl_Stop_Prolog(); + return 0; +} |