If this is the case, then each robot would have to include a ranking of its strengths and weaknesses (e.g., more defensive, better hanger, etc.). Note that it would be rather complicated, and not necessarily very effective (esp. for time put in) to do it this way, ā at least at initial inspection. It seems to me, though, the computer AI needs just be a generic bot (maybe have several based on different strengths/weaknesses), but the AI seems very much a property of the bot. Of course, and this is a BIG of course, it is waaaaaaaaaaaaaaay to early to really be discussing any of this seriously. The AI can wait, because it is all for naught if no energy is put into the basic structure, the very backbone of the game. What will the competition framework be like? How will matches be handled? Start thinking in terms of:
Basic element is Robot, of which two constitute an alliance. 2 alliances passed to Match, which returns winning alliance. List of Robots passed to Tournament, which includes a Scheduler which gets all the pairings and timing set up (a fair amount of thought needed if you allow many players across a network connection; for instance, it seems heuristic methods for a ābin packingā problem might be neededābut now I commit your sin and digress :P). Tournament includes Scheduler, some Referee element (makes sure all stay in field, robots arenāt hit too hard, pinning limited, etc.), a Scorer(for Match, and then one for Tournament), which scores the match and some way to record the running score of the whole tournament. Etc.
Thereās a bunch more elements like this. I may have even been too specific; it helps to start out with general outlines like such, so everyone is thinking of the same thing, ā¦and so that once it is fleshed out more, elements like AI Design can be tackled in turn and everyone can see what they might be able to add discussion to, etc. Of course, ignore my poor example and just use it as a general springboard for thought, not necessarily a suggestion for your particular structureāwhich I canāt even begin to make, as I donāt know many basic things that need to be decided first ā¦ e.g., do you plan to allow multiple players through network connections eventually? if so, should know so you can plan for it now ā¦ do you plan to play through a whole tournament season, and then go to nationals perchance, or just a single match or a series of matches? ā¦ etc. You can see, I hope, that the basic questions must needs be discussed, so that the basic structure can begin to be discussed, so that the more specific elements can be discussed, so that algorithms and pseudocode can be created, so that eventually you can program the darn thing. (Disclaimer: Some steps missing.)