CS4444: Programming & Problem Solving, Fall 2004
[Project 3: Let's Get Together]
Game Design, Interfaces, Player Guide & Class Notes




Group Assignments
The following is the group assignment for this project:
1CMBPAVK-REDnew Color(1.0f,0.0f,0.0f)
2AMLWAD-GREENnew Color(0.0f,1.0f,0.0f)
3MSSRGVB-BLUEnew Color(0.0f,0.0f,1.0f)
4ZZHKARSUVYELLOWnew Color(1.0f,1.0f,0.0f)
5BCPJJCR-CYANnew Color(0.5f,1.0f,1.0f)
6SOVJCMM-PURPLEnew Color(1.0f,0.5f,1.0f)
7EGPVRM-ORANGEnew Color(1.0f,0.8f,0.3f)
8RTJRAG-PINKnew Color(1.0f,0.67f,0.67f)
9PODJBB-ORCHIDnew Color(0.855f, 0.438f, 0.855f)


Project Reports



Tournament Results
  Players on Board \ Board Size L=15, W=22 L=35, W=35 L=76, W=50 L=2, W=75 L=92, W=1 L=15, W=11
Multi Player 2 Multiplayer-L15-W22-p2 Multiplayer-L35-W35-p2 Multiplayer-L76-W50-p2 Multiplayer-L2-W75-p2 Multiplayer-L92-W1-p2 N/A
3 Multiplayer-L15-W22-p3 Multiplayer-L35-W35-p3 Multiplayer-L76-W50-p3 Multiplayer-L2-W75-p3 Multiplayer-L92-W1-p3
5 Multiplayer-L15-W22-p5 Multiplayer-L35-W35-p5 Multiplayer-L76-W50-p5 Multiplayer-L2-W75-p5 Multiplayer-L92-W1-p5
8 Multiplayer-L15-W22-p8 Multiplayer-L35-W35-p8 Multiplayer-L76-W50-p8 Multiplayer-L2-W75-p8 Multiplayer-L92-W1-p8
Single Player 2 Singleplayer-L15-W22-p2 Singleplayer-L35-W35-p2 Singleplayer-L76-W50-p2 Singleplayer-L2-W75-p2 Singleplayer-L92-W1-p2
3 Singleplayer-L15-W22-p3 Singleplayer-L35-W35-p3 Singleplayer-L76-W50-p3 Singleplayer-L2-W75-p3 Singleplayer-L92-W1-p3
5 Singleplayer-L15-W22-p5 Singleplayer-L35-W35-p5 Singleplayer-L76-W50-p5 Singleplayer-L2-W75-p5 Singleplayer-L92-W1-p5
9 Singleplayer-L15-W22-p9 Singleplayer-L35-W35-p9 Singleplayer-L76-W50-p9 Singleplayer-L2-W75-p9 Singleplayer-L92-W1-p9
L*W N/A Singleplayer-L15-W11-p165
Single + n-1 Random 1+8 WithRandom-L15-W22-p9 WithRandom-L35-W35-p9 WithRandom-L76-W50-p9 WithRandom-L2-W75-p9 WithRandom-L92-W1-p9 N/A


Game Design

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

public int numPlayers() throws Exception;

public int currRound() throws Exception;

public int maxRounds() throws Exception;

public int L() throws Exception;

public int W() throws Exception;

public boolean[] MyInfo(IFCPlayer _player) throws Exception;

Method Description
numPlayers() Number of Players
currRound() Current Round number
maxRounds() Maximum number of Rounds
L() Grid Width
W() Grid Height
MyInfo() Get you own information. See DumbPlayer for example.

Player Interface
Players are required to implement the following interface:

public interface IFCPlayer extends IFCConstants, Serializable {

public void register(Friends __amoeba) throws Exception;
public String name() throws Exception;
public Color color() throws Exception;
public boolean interactive() throws Exception;
public int move(Move input) throws Exception;
}
Method Description
register(Friends __amoeba) Gives the Player a chance to get Game configuration parameters by calling the exposed methods of the Friends object __amoeba.
name() Returns the name of the Player.
color() Player's color.
interactive() HumanPlayer returns true, everyone else returns false.
move(Move input)
Move class conatins the following members:
	boolean[][] information;
	ArrayList[] friends;
Both arrays are indexed by one of 9 directions as defined in IFCConstants.java
information[i][j] is true when information unit j has passed through the adjacent cell i.
friends[i] contains the list of players present at adjacent cell i.


Note that each player has a different random view of the rest of the world now.

Example:
	To find the players present in the cell to the top-left diagonal:
	index = 5; (NorthWest is number 5; see IFCConstants.java)
	input.friends[index] is the ArrayList containing the players present on the cell north-west to the current cell.


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

http://www.cs.columbia.edu/~kamra/CS4444/Project3/Software

In addition, a targzipped version of the directory is also available in that directory. You can access the targzipped file directly at:

http://www.cs.columbia.edu/~kamra/CS4444/Project3/Software/software.tar.gz



Class Notes

25th October, 2004

27th October, 2004

3rd November, 2004

8th November, 2004

10th November, 2004
Absent: BB DJ AG PJ


kamra-at-cs.columbia.edu