X-Git-Url: https://git.ucc.asn.au/?p=progcomp10.git;a=blobdiff_plain;f=src%2Flink%2FC%2Fagents%2Fc_lucifer.c;h=83258400976d122c432bb9b4219980bd9dc6d7d8;hp=f497366a967e0c1a6f7d1f23d159f1c062a8f258;hb=4f032479507641dacc772624c4a6b56a664fb249;hpb=699697dcaa730ccc26cd570cbf8975e2591344c0 diff --git a/src/link/C/agents/c_lucifer.c b/src/link/C/agents/c_lucifer.c old mode 100644 new mode 100755 index f497366..8325840 --- a/src/link/C/agents/c_lucifer.c +++ b/src/link/C/agents/c_lucifer.c @@ -1,67 +1,71 @@ -/* - * 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; - } - - 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, RESULTTYPE winner, - ITEMTYPE attItem, ITEMTYPE defItem, ITEMTYPE bluffItem, - int pointDelta ) { - - return; /* Ignore whatever just happened. */ -} - -/* same for Cleanup() */ - -void Cleanup() { - return; -} \ No newline at end of file +/* + * 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 */ + +void * Initialise( char * myName ) { + return NULL; +} + +ATTACKTYPE Attack( void * this, 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; + } + + return attack; +} + +/* Here we trust that they are telling the truth. And we try to kill them. */ +ITEMTYPE Defend( void * this, 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( void * this, char * foeName, int isInstigatedByYou, RESULTTYPE winner, + ITEMTYPE attItem, ITEMTYPE defItem, ITEMTYPE bluffItem, + int pointDelta ) { + + return; /* Ignore whatever just happened. */ +} + +/* same for Cleanup() */ + +void Cleanup( void * this ) { + return; +}