CS2043 Term Project – Iteration 1

 

Due: Apr. 9, 2009 with auto extension to Apr. 24

 

The project consists of multiple iterations. Each iteration should produce one working version of the robot game program as we discussed in class.

 

This can be an individual (single person) project or team project with 2-3 team members. There are different requirements for individual and team projects.

 

1.      Iteration 1 (30%)

 

In the first iteration of the project, you will develop a simplified version of the robot game in textual/command-line interface.

·         The game consists of 2 or more robots in a room. For individual project, 1 robot. For team project , 4-6 robots.

·         The program asks the user to input a sequence of instructions.

·         At each step, the user can instruct one of the robots to do one of the 3 actions: change orientation, move, or sense.

·         The user can instruct a robot to sense its surrounding environment by detecting signals issued by probs attached to other robots and room walls.

·         If a robot sensed a room wall in the direction of its current orientation, it cannot move further in that direction.

·         The user must take turn to instruct each robot.

·         The program ends when the user issues exit instruction.

 

You can assume the following. The room size can be L x W (e.g. L = 180, W = 100). The distance of a robot move can be D (e.g. D = 1).  The signal of a wall prob can reach P distance (e.g. P = 1)  in the direction orthogonal to the all. And the signal of a robot prob can reach R radius (e.g. R = 1) in a circle surrounding the robot.  Initially, each robot can be randomly located in the room.

 

o       Deliverables:

§         The working program with version number: RobotGame v1a

§         Complete UML diagrams that model the design of the program (the class diagram is required, other diagrams are optional)

 

o       Functional requirements

§         A human user can play the robot-maze game program using a command-line interface.

§         Through the interface, the user can enter a sequence of the instructions, by using keyboard, to a robot to make it go around the room and sense other robots and room walls. The instructions include the following

a)      Make the robot change its orientation (East, West, North, South).

b)      Make the robot sense along the current orientation to detect wall or robot

c)      Make the robot move 1 step toward the current orientation.

§         The interface should display a text message after executing each user instruction:

a)      After a robot’s orientation change,  report the robot’s current orientation

b)      After a robot making a move, report the new (x,y) position of the robot

c)      After a robot sensing, report the sensing result whether other robot(s) and/or a wall are detected

 

o       Design requirements

§         The program should consist of two subsystems i.e. packages: gameTextUI and gameModel.

§         The gameTextUI subsystem should consist of a view class and a controller class, plus other helper classes if needed.

§         In the gameModel subsystem, the following class design should be implemented. You have freedom to change this design, but you need to give your rationale. We will discuss this design diagram in class.

 

 

Note that getSignal(sensorX, sensory, orientation) method of Prob returns null if the distance from sensor’s current position to the prob along the sensor’s orientation is longer than the distance that the prob’s signal can reach.  Otherwise, the prob will return “WallProb” or “RobotProb”.

 

 

The following are step for you to submit your project in Eclipse to your CVS on isel.cs.unb.ca server.

(1)   Right-click on your RobotGame project and select Team -> Share Project.

(2)   Select “use existing repository location” with “isel.cs.unb.ca” highlighted.

(3)   Select “Use project name as module name”.

(4)   Check “Launch the Commit wizard” and click on “Finish”.

(5)   In Commit window, enter your comment (optional), then click on “Finish”.

Steps 1-5 save your current project to the CVS, but not as a version of the project.

(6)   Right-click on your RobotGame project and select Team -> Tag as Version.

(7)   Enter version number “v1a”.

Steps 6-7 save your project as the version v1a.

 

To view what you saved in your CVS in Eclipse, open CVS Repositories window (Window->Show Views->Other->CVS->CVS Repositories).

 

2.      Iteration 2 (30%) Due: Apr. 9 with auto extension to Apr. 24

Implement the iteration 1 version of the program in GUI.

 

3.      Iteration 3 (40%) Due: Apr. 9 with auto extension to Apr. 24

Implement the robot game program with human controlled and AI controlled robots in GUI