Note: You must work on this assignment alone, without the help of anybody other than me or TA(preferably via the listhost, so the help is equally available to everyone). will hold a session in class next week where he offers design and implementation tips,etc. to the class as a whole. Feel free to ask any clarification-type questions on the listhost.
Grading: You will be graded 50% purely on implementation (does the
code do what it is supposed to?) and 50% on design, coding practices,
clarity, etc -- ie all of the things we've discussed for the first
four weeks (Again, will give tips next class). While you are
not required to use any specific feature of Java, I expect to see some
good attempts at OO design, such as we have have discussed in class
extensively to this point. Identify good abstractions, encapsulate
where appropriate, etc. I do not expect inheritance to be used at this
point, but certainly neither it nor anything else is forbidden.
Assignment: Write a tic-tac-toe program that can be run as either human-vs-human or human-vs-computer. In the latter case, I only require that the computer be able to make reasonably intelligent moves. The game does not require a GUI interface, using the terminal with [login to view URL] is fine. Also, obviously, two players will have to share the same machine since we haven't learned about sockets yet
You program should ask at startup whether it is a human-computer or
human-human game. When a game finishes, the winner must be announced
and the user should be given the option to either exit or start a new
game. All reasonable errors must be handled -- moving to an occupied
space, etc. You are free to use [login to view URL]() (in hw1
support files directory) to interactively read input from the
keyboard.
## Deliverables
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) Deliverables must be in ready-to-run condition, as follows (depending on the nature of the deliverables):
a) For web sites or other server-side deliverables intended to only ever exist in one place in the Buyer's environment--Deliverables must be installed by the Seller in ready-to-run condition in the Buyer's environment.
b) For all others including desktop software or software the buyer intends to distribute: A software installation package that will install the software in ready-to-run condition on the platform(s) specified in this bid request.
3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).
## Platform
Let's chat real quick prior to starting work. I need this before Sunday next weeke.