The task for this homework is to design and implement a simple reflex agent (without state information)
using the
Robocode agent toolkit.
The number of points for this homework is 25.
The score will be determined by the quality of your design
and implementation, the level of sophistication your agent achieves,
and the performance of your agent in competition with other agents.
[5 points]
In this part, you need to describe the overall architecture
of your agent. It consists of the following sections:
a PAGE description of the agent;
a design overview, identifying the main components of the agent;
a table with the percepts and corresponding actions that
determine the behavior of the agent;
a discussion of the expected capabilities and limitations of your agent.
This part should concentrate on the general capabilities of your
agent, and not on specific techniques that you use to endow
your agent with these capabilities; that is the topic of
the next section.
Implementation
[5 points]
Here you need to discuss specific implementation aspects
of your agent, e.g. how you decided to realize the
"reflexes" of the agent.
You may include relevant parts of your source code here,
but make sure that it is explained and commented well.
[15 points]
Your agent should be able to compete with other Robocode agents.
The performance of your agent will be evaluated in two stages:
One-on-One [5 points]: Your agent will individually battle five
of the default agents in the Robocode environment
in competitions lasting ten rounds.
The set of opponents will be determined in class.
You will get one point for each win of a competition
according to the standard Robocode scoring scheme.
One-on-Many [10 points]:
In this case, your agent has to fight multiple opponents
in one or more competitions lasting ten rounds.
All the agents submitted will be randomly assigned into
pools of up to ten agents, and the number of points is
determined by the ranking of your agent in the competition
(e.g. rank 1 gets 10 points, rank 2 gets 9, etc.)
If possible, we will conduct this competition "live"
during one of the lab sessions.
Part 1: One-On-One Competition
For the first part, you need to submit the agent design and implementation
documents as specified above, together with the code for your individual agent.
Part 2: One-On-Many Competition
The final version of your agent is due for the second part.
This is an individual homework, and you need to write your own
Robocode agent. You are not allowed to incorporate code from other
Robocode agents, e.g. from Internet repositories, or
from other students. The use of Java libraries is allowed.
Violations of this policy will result
in lower scores for this assignment.
In addition, the general Cal Poly policies on
Academic Dishonesty: Cheating and Plagiarism apply.
Since this is an experimental homework, some aspects of the exact task definition
and evaluation criteria will be discussed in class, and may be
subject to some minor modifications.