diff --git a/src/link/C/Makefile b/src/link/C/Makefile index 10e306be3a89804e80565460e722c03e8dddbeb4..ccefb00d6ef255cd85a8ba0059d62aad18394370 100644 --- a/src/link/C/Makefile +++ b/src/link/C/Makefile @@ -16,9 +16,9 @@ all: $(LINKSRCS) $(LINKLIB) $(AGENTS) $(LINKLIB): $(LINKOBJS) $(AR) rcs $(LINKLIB) $(LINKOBJS) -$(AGENTS): $(AGENTSRCS) - @echo Building $< - $(CC) $(CFLAGS) $(LDFLAGS) $< -o $@ +$(AGENTS): $(AGENTSRCS) $(LINKLIB) + @echo Building $@ + $(CC) $(CFLAGS) $(LDFLAGS) $@.c -o $@ .c.o: c_link.h $(CC) -c $(CFLAGS) $< -o $@ diff --git a/src/link/C/__init__.py b/src/link/C/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/src/link/C/agents/c-frechie.c b/src/link/C/agents-broken/c_frenchie.c similarity index 93% rename from src/link/C/agents/c-frechie.c rename to src/link/C/agents-broken/c_frenchie.c index ed2ba095a5a24a44d54bd94bb5e3d7aa9117a83b..78866a62919c2f2442e4bdfb2e5c820cb301def2 100644 --- a/src/link/C/agents/c-frechie.c +++ b/src/link/C/agents-broken/c_frenchie.c @@ -1,5 +1,5 @@ /* - * c-frechie.c + * c_frechie.c * c-link-lib * * Created by Daniel Axtens on 22/04/10. @@ -30,8 +30,8 @@ #define NUMBEROFAGENTSGUESS 100 /* The name of the n-th foe we've seen, as well as a 0/1 have we lost to them */ -char foesNames[][MAXFOENAMELEN] = NULL; -int haveLostToFoe[] = NULL; +char foesNames[][MAXFOENAMELEN]; +int haveLostToFoe[]; /* The length of the array, and how far we are along it */ size_t foesLen = 0; @@ -46,13 +46,13 @@ ATTACKTYPE Attack( char * foe_name ) { /* Here we choose the thing that will hurt them if they go for the kill */ switch (attack.realAttack) { case rock: - result.promisedAttack = paper; + attack.promisedAttack = paper; break; case paper: - result.promisedAttack = scissors; + attack.promisedAttack = scissors; break; default: /* attack = scissors */ - result.promisedAttack = rock; + attack.promisedAttack = rock; break; } return attack; @@ -72,6 +72,7 @@ ITEMTYPE Defend( char * foeName, ITEMTYPE foePromisedAttack ) { defence = paper; break; } + return defence; } /* This is so much less fun in C */ diff --git a/src/link/C/agents/c-angel.c b/src/link/C/agents/c_angel.c similarity index 98% rename from src/link/C/agents/c-angel.c rename to src/link/C/agents/c_angel.c index c6c8687e3188486549ac188c3729bf17909b0557..17d5b65ce76b26394ce971cd56b75451cf02094d 100644 --- a/src/link/C/agents/c-angel.c +++ b/src/link/C/agents/c_angel.c @@ -1,5 +1,5 @@ /* - * c-angel.c + * c_angel.c * c-link-lib * * Created by Daniel Axtens on 20/04/10. diff --git a/src/link/C/agents/c-lucifer.c b/src/link/C/agents/c_lucifer.c similarity index 86% rename from src/link/C/agents/c-lucifer.c rename to src/link/C/agents/c_lucifer.c index 1dabc3424374d1d1357124371a9988b788667c5c..204e1ddef79d442e9db6411124b2d7e653e62d67 100644 --- a/src/link/C/agents/c-lucifer.c +++ b/src/link/C/agents/c_lucifer.c @@ -1,5 +1,5 @@ /* - * c-lucifer.c + * c_lucifer.c * c-link-lib * * Created by Daniel Axtens on 20/04/10. @@ -21,16 +21,16 @@ ATTACKTYPE Attack( char * foe_name ) { /* Here we choose the thing that will hurt them if they go for a tie */ switch (attack.realAttack) { case rock: - result.promisedAttack = scissors; + attack.promisedAttack = scissors; break; case paper: - result.promisedAttack = rock; + attack.promisedAttack = rock; break; default: /* attack = scissors */ - result.promisedAttack = paper; + attack.promisedAttack = paper; break; } - attack.promisedAttack = result.realAttack; /* Tells the truth for its bluff */ + attack.promisedAttack = attack.realAttack; /* Tells the truth for its bluff */ return attack; } @@ -49,6 +49,7 @@ ITEMTYPE Defend( char * foeName, ITEMTYPE foePromisedAttack ) { defence = rock; break; } + return defence; } /* You need to define a results function, even if it isn't used diff --git a/src/link/C/agents/c-streetfighter.c b/src/link/C/agents/c_streetfighter.c similarity index 89% rename from src/link/C/agents/c-streetfighter.c rename to src/link/C/agents/c_streetfighter.c index c63939d1267de91274731dfde78955fe56a106b6..0516c26412972f55356a6002262ce0ff0bb1206e 100644 --- a/src/link/C/agents/c-streetfighter.c +++ b/src/link/C/agents/c_streetfighter.c @@ -1,5 +1,5 @@ /* - * c-streetfighter.c + * c_streetfighter.c * c-link-lib * * Created by Daniel Axtens on 20/04/10. @@ -20,13 +20,13 @@ ATTACKTYPE Attack( char * foe_name ) { /* Here we choose the thing that will hurt them if they go for the kill */ switch (attack.realAttack) { case rock: - result.promisedAttack = paper; + attack.promisedAttack = paper; break; case paper: - result.promisedAttack = scissors; + attack.promisedAttack = scissors; break; default: /* attack = scissors */ - result.promisedAttack = rock; + attack.promisedAttack = rock; break; } return attack; @@ -46,6 +46,7 @@ ITEMTYPE Defend( char * foeName, ITEMTYPE foePromisedAttack ) { defence = paper; break; } + return defence; } /* You need to define a results function, even if it isn't used diff --git a/src/link/C/c-link-lib.xcodeproj/project.pbxproj b/src/link/C/c-link-lib.xcodeproj/project.pbxproj index b01730e18685656a8799b527bf6685a7a0797d24..c2f58fd9cb5618fcf04d13cd51aa8c4c47a39a32 100644 Binary files a/src/link/C/c-link-lib.xcodeproj/project.pbxproj and b/src/link/C/c-link-lib.xcodeproj/project.pbxproj differ diff --git a/src/link/C/c_agents.py b/src/link/C/c_agents.py new file mode 100644 index 0000000000000000000000000000000000000000..ae6441045f7068abb99be068eb59634f17c75b49 --- /dev/null +++ b/src/link/C/c_agents.py @@ -0,0 +1,20 @@ +# add your agents to this file by copying the definition and adjusting +# you then need to modify simulate.py + +from link.externAgent import externAgent + +class c_angel (externAgent): + def __init__ (self): + externAgent.__init__(self, "./link/C/agents/c_angel") + +class c_lucifer (externAgent): + def __init__ (self): + externAgent.__init__(self, "./link/C/agents/c_lucifer") + +class c_streetfighter (externAgent): + def __init__ (self): + externAgent.__init__(self, "./link/C/agents/c_streetfighter") + +class c_frenchie (externAgent): + def __init__ (self): + externAgent.__init__(self, "./link/C/agents/c_frenchie") diff --git a/src/link/cangel.py b/src/link/cangel.py deleted file mode 100644 index 45a64d19df3aa37db87bf9322a15deff510de50b..0000000000000000000000000000000000000000 --- a/src/link/cangel.py +++ /dev/null @@ -1,8 +0,0 @@ -from uccProgComp import BaseAgent, LearningAgent, RandomAttack -from externAgent import externAgent -from rpsconst import * - -class CAngel (externAgent): - def __init__ (self): - externAgent.__init__(self, "./link/C/c-link-lib/agents/c-angel") - diff --git a/src/simulate.py b/src/simulate.py index 643dad0a58a25de36d2d2de9fa0599d5c6787577..7fa1bf2a4f52c13798bc5a565990667da77e11df 100755 --- a/src/simulate.py +++ b/src/simulate.py @@ -6,10 +6,10 @@ Licensed under an MIT-style license: see the LICENSE file for details. ''' # Import and add your agents here: -from link.cangel import CAngel +from link.C.c_agents import c_angel, c_lucifer, c_streetfighter, c_frenchie from SampleAgents import Angel, Lucifer, Dummy, Frenchie, Streetfighter -Agents = [Lucifer, Frenchie, Streetfighter, CAngel] +Agents = [c_lucifer, Frenchie, c_streetfighter, c_angel] #################################### # Developers only past this point! #