Connect4 Game

Order Description

Connect4 is a 2-player turn-based game played on a vertical board that has seven hollow columns and six rows. Each column has a hole in the upper part of the board, where pieces are introduced. There is a window for every square, so that pieces can be seen from both sides. In short, it´s a vertical board with 42 windows distributed in 6 rows and 7 columns. Both players have a set of 21 thin pieces (like coins); each of them uses a different color. The board is empty at the start of the game. The aim for both players is to make a straight line of four own pieces; the line can be vertical, horizontal or diagonal. Reference: https://en.wikipedia.org/wiki/Connect_Four ---------------------------------------------------------------------------------------------------- Program Requirements: Convert the previously developed Java-based Connect4 game into a networked game. Add a Connect4Server.java that is the server program that handles the Game logic and controls all game sessions. It waits for connections from players and pairs them up to play a game. It should create a separate thread for each game session. Also create a Connect4Client.java that is theclient program-handling player moves. It should initiate a connection with the server and then play the game once assigned to a game session. The client program receives the board configuration from the server and updates its UI. No game logic checking should happen on Client side. It should all be done on the server side. Create both these java files in the core package. Use the tic-tac-toe example provided in course shell as a starting point. • Continue to make use of good Object-Oriented design • Provide documentation using Javadoc and appropriate comments in your code. • Generate HTML documentation using Javadoc tool • Make sure you provide Exception Handling where appropriate • At the start of the program, ask the user if they would like GUI or console-based UI. Then show the corresponding UI as per user preference. Next ask user if they want to play against computer or another player and then continue with the game. ---------------------------------------------------------------------------------------------------- Personal Process: Follow a good personal process for implementing this game. You will be using PSP2 in this assignment. So, in addition to tracking your effort and defects you will have to estimate the effort and defects for the GUI module, provide exception handling routines, and conduct a personal code review. • Please use the time log (provided at the end of this document) to keep track of time spent in each phase of development. • Please use the defect log (provided at the end of this document) to keep track of defects found and fixed in each phase of development. • When you are done implementing and testing your program, complete the Project Summary form to summarize your effort and defects. Also answer the reflection questions listed below in Post-mortem phase. Follow these steps in developing this game: 1. Plan: • understand the program specification and get any clarifications needed. • estimate the time you are expecting to spend on the GUI development task. • estimate the defects you are expecting to inject in each phase for GUI development task. • estimate the size of the program (only for new code that you will be adding) • enter this information in the Estimation columns of the Project Summary form. Use your best guess based on your previous programming experience. • use the provided estimating worksheet to show how you are breaking up code into smaller modules and estimating 2. Design – create a design (for the new modules being added) in the form of a flow chart, break up of classes and methods, class diagram, pseudocode. Provide this design in the PSP design form provided later in the document. Keep track of time spent in this phase and log. Also keep track of any defects found and log them.3. Code – implement the program. Keep track of time spent in this phase and log. Also keep track of any defects found and log them. 4. Code Review – use the code review guidelines/checklist provided later in the document to conduct a personal review of your code and fix any issues found. Provide comments in the checklist about your findings. 5. Test – Test your program thoroughly and fix bugs found. Keep track of time spent in this phase and log. Also keep track of any defects found and log them. 6. Post Mortem – Complete the actual columns of the project summary form and answer the following questions. i. How good was your time and defect estimate for various phases of software development? ii. How good was your program size estimate, i.e., was it close to actual? iii. How many issues did you find in your code during code review? -------------------------------------------------------------------------