| Home Page |
| Course Page |
Overview
Electronic Go Board
Software Requirements
Software Design Criteria
Submission Requirements
Grading Criteria
Late Projects
Plagiarism
Write a Java program to learn about Java objects and classes, Java 2D graphics, Java Swing GUIs, Java networking, and object oriented design. The program will be developed in four increments:
For this project you will develop an electronic Go board. Go is a board game that originated in ancient China. The Go board has a grid of 19x19 lines. Black or white stones are placed on the intersections of the lines.
Many games besides Go itself can be played on a Go board. For further information, see these Wikipedia articles:
The computer program in this project lets two human beings, each running the program on their own computers and communicating over the network, play a game of Go (or any game that uses Go equipment) with each other. The computer is not a player in the game, and the computer does not enforce the rules of the game. The computer is just a fancy game board. The stones that either player places on or removes from the board appear on both players' displays.
The third project increment includes the core classes, graphical output, and GUI input. However, there is no networking. When the main program is executed, the player's color is specified on the command line, either black or white. The main program displays a window containing a graphical depiction of the Go board, like the picture above. Row letters and column numbers are not displayed. The window does not contain any input widgets. Initially, the board is empty. The main program responds to mouse clicks on the board as follows:
java GoBoard <color>where <color> stands for the player's color, either BLACK or WHITE.
Note: This means that the main program's class must be named GoBoard, and this class must not be in a package.
Note: See my Java source files which we studied in class for the style of Javadoc comments I'm looking for.
Your project submission will consist of a Java archive (JAR) file containing the Java source file for every class and interface in your project. You must submit your entire project; I will not use any files you submitted for Programming Project Increment 1. Put all the source files into a JAR file named "<username>.jar", replacing <username> with the user name from your Computer Science Department account. The command is:
jar cvf <username>.jar *.java
If your program uses classes or interfaces from the Computer Science Course Library without changes, then you do not need to include these classes' or interfaces' source files in your JAR file. If your program uses classes or interfaces from the Computer Science Course Library with changes, then you do need to include these classes' or interfaces' source files in your JAR file.
Send your JAR file to me by email at ark@cs.rit.edu. Include your full name and your computer account name in the email message, and include the JAR file as an attachment.
When I get your email message, I will extract the contents of your JAR file into a directory. However, I will not replace any of the source files in the Computer Science Course Library with your source files; your project must compile and run with your files in their own separate directory. (You can do this project without needing to replace any source files in the Computer Science Course Library.) I will set my Java class path to include the directory where I extracted your files and the directory where the Computer Science Course Library is installed. I will compile all the Java source files in your program using the JDK 1.5.0 compiler. I will then send you a reply message acknowledging I received your project and stating whether I was able to compile all the source files. If you have not received a reply within one business day (i.e., not counting weekends), please contact me. Your project is not successfully submitted until I have sent you an acknowledgment stating I was able to compile all the source files.
The submission deadline is Wednesday, October 22, 2008 at 11:59pm. The date/time at which your email message arrives in my inbox (not the time when I actually read the message, which will be some time later than when it arrives in my inbox) will determine whether your project meets the deadline.
If you submit your project before the deadline, but I do not accept it (e.g. I can't compile all the source files), and you cannot or do not submit your project again before the deadline, the project will be late (see below). I strongly advise you to submit the project several days before the deadline, so there will be time to deal with any problems that may arise in the submission process.
I will grade your project by:
When I run your program, the Java class path will point first to the directory with your compiled class files, followed by the directory where the Computer Science Course Library is installed. I will use JDK 1.5.0 to run your program.
I will grade the requirements portion based solely on whether your program produces the correct output as specified in the above Software Requirements. Any deviation from what is specified will result in a grade of 0 for the requirement. This includes errors in the formatting (such as extra or missing spaces), incorrect punctuation, misspelled words, missing output, and extraneous output not called for in the requirements. The requirements state exactly what the output is supposed to be, and there is no excuse for outputting anything different. If any requirement is unclear, please ask for clarification.
If there is a defect in your program and that same defect causes multiple requirements to fail, I will deduct points for every failing requirement. The number of points deducted does not depend on the size of the defect; I will deduct the same number of points whether the defect is 1 line, 10 lines, 100 lines, or whatever.
After grading your project I will put your grade and any comments I have in your encrypted grade file. For further information, see the Course Grading and Policies and the Encrypted Grades.
See the Course Policies for my policy on extensions.
I will not accept a late project increment unless you arrange with me for an extension. Late projects will receive a grade of zero.
See the Course Policies for my policy on plagiarism.
The project increment must be entirely your own work. I will not tolerate plagiarism. If in my judgment the project increment is not entirely your own work, you will receive a grade of zero for the project increment. There are only two exceptions:
[an error occurred while processing this directive]
| Home Page |