The purpose of this assignment is to document your design for a personal soccer team implementation, which will be submitted a week later (Homework #7) for entry into the soccer tournament.
In order to get 10/10 on Homework #7, you are expected to add a substantial new strategy to your soccer AI, which typically involves adding at least two new states to both the team and the players' state machines, along with new messages to support them, as needed.
In this design document:
N.B. The spirit of the soccer tournament is to compete on the basis of AI strategy. This means, for example, that you cannot try to win by making your players move faster or making their shots more accurate (i.e., by changing the "fuzz" factors used in Buckland's code). Similarly, it would also abuse the spirit of the competition to attempt a low-CPU-cycle defense-only strategy to win 0-0 games based on the efficiency bonus.
In particular, it is ok to adjust any of the following strategy-controlling parameters: Spot_CanPassScore, Spot_CanScoreFromPositionScore, Spot_DistFromControllingPlayerScore, PlayerComfortZone, MinPassDistance, GoalkeeperMinPassDistance, GoalKeeperTendingDistance, GoalKeeperInterceptRange, BallWithinReceivingRange.
Note that you cannot actually change the values of these variables in Params.ini, because all teams will be sharing the same ParamLoader instance at run time. Instead, you should modify the locations in your team code where these parameters are referenced.
If you are not sure whether a given design idea violates the spirit of the rules, describe it in this assignment (which will be returned by Weds, February 3), or if you think of it later, ask the instructor in advance to avoid being disqualified at the tournament.
Acknowledgement: I would like to thank Robin Burke for allowing the reuse of this assignment.