CS4444: Programming & Problem Solving, Fall 2004
[Project 4: Olympic Road Race]
Game Design, Interfaces, Player Guide & Class Notes



Group Assignments
The following is the group assignment for this project:
1VBAGPV-REDnew Color(1.0f,0.0f,0.0f)
2JREGBB-GREENnew Color(0.0f,1.0f,0.0f)
3BPARAD-BLUEnew Color(0.0f,0.0f,1.0f)
4PJHKAM-YELLOWnew Color(1.0f,1.0f,0.0f)
5JCCMLWRMCYANnew Color(0.5f,1.0f,1.0f)
6SOVAVKBC-PURPLEnew Color(1.0f,0.5f,1.0f)
7MMRTZZ-ORANGEnew Color(1.0f,0.8f,0.3f)
8RGDJSUV-PINKnew Color(1.0f,0.67f,0.67f)
9MSSPOJCR-ORCHIDnew Color(0.855f, 0.438f, 0.855f)


Project Reports



Tournament Results
Tournament Name Teams in the Race(T = 10) Riders in a Team(R = 4) Initial Energy(E = 5M) Race Length(D = 180K) Lanes(L = T*R)
Base Tournament T R E D L
Base-R + R = 1 T 1 E D L
Base-R + R = 2 T 2 E D L
Base-R + R = 3 T 3 E D L
Base-R + R = 5 T 5 E D L
Base-R + R = 6 T 6 E D L
Base-R + R = 7 T 7 E D L
Base-R + R = 9 T 9 E D L
Base-D + D = 30L T R E 1200 L
Base-L + L = 2*T*R T R E D 80
Base-E + E ~ 124*D T R 22M D L
Base-E + E ~ 5*D T R 900K D L
Base-T + T = 1 1 R E D L
Base-T + T = 2 2 R E D L
Base-T + T = 4 4 R E D L
1 Real + 9 Dumbplayers T R E D L
2 Identical Players 2 R E D L


Game Design

Exposed Game Engine Methods
The following methods are exposed by the game engine and are available to the player:

public int currTime() throws Exception;
public int numTeams() throws Exception;
public int D() throws Exception;
public int L() throws Exception;
public int R() throws Exception;
public int E() throws Exception;
public RiderInfo TeamStatus(int team, int rider) throws Exception;
public RiderInfo[] TeamStatus(int team) throws Exception;
public RiderInfo[][] TeamStatus() throws Exception;
public int indexOf() throws Exception;

Method Description
int currTime() Returns the time elapsed during the race.
int numTeams() Returns the number of teams participating in the race.
int D() Returns the length of the race in meters.
int L() Returns the number of lanes.
int R() Returns the number of riders per team.
int E() Returns the initial energy of each rider.
RiderInfo TeamStatus(int team, int rider) Returns the information for the rider with index 'rider' in the team indexed 'team'.
RiderInfo[] TeamStatus(int team) Returns the information for all riders in the team indexed 'team'.
RiderInfo[][] TeamStatus() Returns the information for all riders in all teams.
int indexOf(IFCPlayer _team) Returns the index of the team _team. Should be called as indexOf(this) from the player class.

Player Interface
Players are required to implement the following interface:

public interface IFCPlayer extends IFCConstants, Serializable {

public void register(Olympics __olympics) throws Exception;
public String name() throws Exception;
public Color color() throws Exception;
public boolean interactive() throws Exception;
public Move move() throws Exception;
}
Method Description
register(Olympics __olympics) Gives the Player a chance to get Game configuration parameters by calling the exposed methods of the Olympics object __olympics.
name() Returns the name of the Player.
color() Player's color.
interactive() HumanPlayer returns true, everyone else returns false.
move(Move input)
	Move class must be instantiated as new Move(accelerations, lanechanges)
	where accelerations is an array of size R containing the proposed
	accelerations for each of the riders;
	lanechanges is again an array of size R containing the proposed
	lane changes for each of the riders. Since riders can shift by
	only one lane in one unit of time, the values for each element
	of lanechanges can be _CMOVELEFT, _CSTAYPUT or _CMOVERIGHT.
	See IFCConstants.java and g0/DumbPlayer for examples.


Software
The full software source tree and class files are available from:

Software

In addition, JAR files corresponding to both the game model and ui components as well as a targzipped version of the directory is also available in that directory. You
can access the targzipped file directly at:

Software/software.tar.gz



Class Notes

Wednesday, November 17th

Monday, November 22nd

Wednesday, November 24th

Monday, November 29th

Wednesday, December 1st

Monday, December 6th


kamra-at-cs.columbia.edu