X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=src%2Flink%2FC%2Fagents%2Fc_lucifer.c;fp=src%2Flink%2FC%2Fagents%2Fc_lucifer.c;h=204e1ddef79d442e9db6411124b2d7e653e62d67;hb=e4184557ebc33201e217e167d577128f710e4890;hp=0000000000000000000000000000000000000000;hpb=15240ab3375de7b3260c47a204b1e7aae3cd516b;p=progcomp10.git diff --git a/src/link/C/agents/c_lucifer.c b/src/link/C/agents/c_lucifer.c new file mode 100644 index 0000000..204e1dd --- /dev/null +++ b/src/link/C/agents/c_lucifer.c @@ -0,0 +1,67 @@ +/* + * c_lucifer.c + * c-link-lib + * + * Created by Daniel Axtens on 20/04/10. + * Licensed under an MIT-style license: see the LICENSE file for details. + * + */ + + +#include + +/* Implement the lucifer bot, which always lies expecting people to be good + and always goes for the kill */ + +ATTACKTYPE Attack( char * foe_name ) { + ATTACKTYPE attack; + + attack.realAttack = RandomAttack(); + + /* Here we choose the thing that will hurt them if they go for a tie */ + switch (attack.realAttack) { + case rock: + attack.promisedAttack = scissors; + break; + case paper: + attack.promisedAttack = rock; + break; + default: /* attack = scissors */ + attack.promisedAttack = paper; + break; + } + attack.promisedAttack = attack.realAttack; /* Tells the truth for its bluff */ + + return attack; +} + +/* Here we trust that they are telling the truth. And we try to kill them. */ +ITEMTYPE Defend( char * foeName, ITEMTYPE foePromisedAttack ) { + ITEMTYPE defence; + switch (foePromisedAttack) { + case rock: + defence = paper; + break; + case paper: + defence = scissors; + break; + default: + defence = rock; + break; + } + return defence; +} + +/* You need to define a results function, even if it isn't used + (otherwise the linker will complain) */ +void Results( char * foeName, int isInstigatedByYou, ITEMTYPE yourItem, + ITEMTYPE theirItem, ITEMTYPE promisedItem) { + + return; /* Ignore whatever just happened. */ +} + +/* same for Cleanup() */ + +void Cleanup() { + return; +} \ No newline at end of file