c63939d1267de91274731dfde78955fe56a106b6
[progcomp10.git] / src / link / C / agents / c-streetfighter.c
1 /*
2  *  c-streetfighter.c
3  *  c-link-lib
4  *
5  *  Created by Daniel Axtens on 20/04/10.
6  *  Licensed under an MIT-style license: see the LICENSE file for details.
7  *
8  */
9
10
11 #include <c_link.h>
12
13 /* Implement the streetfighter bot, which thinks everyone has it in for him. */
14
15 ATTACKTYPE Attack( char * foe_name ) {
16         ATTACKTYPE attack;
17         
18         attack.realAttack =  RandomAttack();
19         
20         /* Here we choose the thing that will hurt them if they go for the kill */
21         switch (attack.realAttack) {
22                 case rock:
23                         result.promisedAttack = paper;
24                         break;
25                 case paper:
26                         result.promisedAttack = scissors;
27                         break;
28                 default: /* attack = scissors */
29                         result.promisedAttack = rock;
30                         break;
31         }
32         return attack;
33 }
34
35 /* Here we assume they are lying, trying to kill us. And we try to kill them. */
36 ITEMTYPE Defend( char * foeName, ITEMTYPE foePromisedAttack ) {
37         ITEMTYPE defence;
38         switch (foePromisedAttack) {
39                 case rock:
40                         defence = scissors;
41                         break;
42                 case paper:
43                         defence = rock;
44                         break;
45                 default:
46                         defence = paper;
47                         break;
48         }
49 }
50
51 /* You need to define a results function, even if it isn't used
52  (otherwise the linker will complain) */
53 void Results( char * foeName, int isInstigatedByYou, ITEMTYPE yourItem, 
54                          ITEMTYPE theirItem, ITEMTYPE promisedItem) {
55         
56         return; /* Ignore whatever just happened. */
57 }
58
59 /* same for Cleanup() */
60
61 void Cleanup() {
62         return;
63 }

UCC git Repository :: git.ucc.asn.au