diff options
author | Jan Klemkow <j.klemkow@wemelug.de> | 2012-11-12 01:06:21 +0100 |
---|---|---|
committer | Jan Klemkow <j.klemkow@wemelug.de> | 2012-11-12 01:06:21 +0100 |
commit | 00c6159e0f421c8307fc67973938f64ac405ec79 (patch) | |
tree | c5c912b1908816fd019a4ba7394b2fc1bde8e425 /battle.c | |
parent | c71183f2277cf6465af9a989f36d24a3bb6c18cf (diff) | |
download | wbs-00c6159e0f421c8307fc67973938f64ac405ec79.tar.gz wbs-00c6159e0f421c8307fc67973938f64ac405ec79.tar.bz2 wbs-00c6159e0f421c8307fc67973938f64ac405ec79.zip |
Add c implementation for algorithm battle with working payment.
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; +} |