Great Deal! Get Instant $10 FREE in Account on First Order + 10% Cashback on Every Order Order Now

CIS*2430 Assignment Two The Big Picture This assignment consists of two separate tasks. 1. Write a text-based Connect Four game using object-oriented Java. Your solution must be in your A2 git...

2 answer below »
CIS*2430 Assignment Two
The Big Picture
This assignment consists of two separate tasks.
1. Write a text-based Connect Four game using object-oriented Java. Your solution must be in your A2 git repos-
itory and must be in standard gradle layout. Your A2 repository has been initialized with empty files.
2. Review your own code with respect to cohesion and coupling and produce a written report.
You can clone your assignment repo in one of two ways using a terminal or command prompt:
• git clone https:
gitlab.socs.uoguelph.ca/2430f22/≪your username here≫/A2.git
• With ssh + vpn:
git clone XXXXXXXXXX:2430f22/≪your username here≫/A2.git
This assignment is intended to be independent work. Your submissions will be programatically inspected
to identify possible plagiarism.
Learning Outcomes
Completion of this assignment will help you master the learning outcomes noted below.
• Differentiate between procedural and object-oriented paradigms.
• Design and implement classes for an object-oriented program demonstrating co
ect use of encapsulation,
constructors, method overloading, class invariants, accessors, mutators, instance variables and class variables.
Grading
Assignment Grade Calculation: (TTT + CR)*PI
Component Symbol Grade Range Marking Process
Connect Four TTT XXXXXXXXXXInstructional team member marks submission on their own
schedule during grading period
Code Review CR XXXXXXXXXXInstructional team member marks submission on their own
schedule during grading period
Personal Interview PI XXXXXXXXXXStudents must schedule the interview with an instructional team
member using the scheduler on the course website. Failure to at-
tend an interview will result in a grade of 0.0 for this component.
1
Task Descriptions
Part 1: Connect Fou
You will create a text-based Connect Four game. Connect Four is a popular children’s game that has a similar game
mechanic to Tic Tac Toe. The first task for any software development is to ensure that you understand the domain.
• An online version of Connect Four: https:
papergames.io/en/connect4
• The game rules: https:
www.gamesver.com/the-rules-of-connect-4-according-to-m-
adley-has
o
Game Features
• Game Play: It is sufficient to allow player vs player using the same keyboard on a board that is 7 spaces wide
and 6 tall. You are not required to create a computer player. The program may exit after one game has been
played or it may allow the user to request another game.
• Load/Save: Your program must allow the user to save a partially complete game board to a comma separated
text file (csv). The program must load a co
ectly formatted csv file and allow the game to resume. Saving
should be done at the request of the players, not automatically. Players must be able to provide the desired
name of the save file. An example CSV file is provided for you in your A2 repo. In the CSV file a 1 represents
player 1, a 2 represents player 2 and a 0 represents an empty position. Your program must be able to recove
gracefully from improperly formatted files or files with inco
ect contents.
Classes
Your Connect Four game must be text-based. It should reprint the board after each turn in the same fashion that
the TicTacToe game did for A1. Instead of colours use two different ascii characters of your choosing.
Your solution must have the following classes:
• Board: The Board class is responsible for maintaining the state of the board (where the pieces are), for creating
the string representation of the board that is printed for the user, and for checking for win conditions (four in
a row). Your Board class must provide methods that hide the implementation details of the board from any
classes using the Board class. The private member variable that models the board may be an a
ay or some
other data structure of your choosing.
• TextUI: The TextUI class is entirely responsible for interacting with the user. It does all of the printing for the
program and is the only class that takes user input.
• ConnectFour: The ConnectFour class is responsible for managing the turns, calling Board methods to update
the state, asking the Board whether a win has been detected and telling the TextUI what to print. The Connect-
Four class is a class with instance methods and instance variables, but it will also contain the main method
that is run to play the game.
You may create as many additional classes as needed. All classes in your program should include a toString()
method to facilitate printing of the class.
Required Coding Constructs
The following coding constructs must be present and used co
ectly in your solution.
• Exceptions: The validation of user input must include the use of exceptions. The validation of the save file
for the board must also include the use of exceptions. Create custom exception classes as needed to facilitate
co
ect handling of inco
ect and co
ect user input and files. You may use exceptions in any other parts of
the code as well.
• Testing: You will create test cases for all of the public and private methods in the Board class and implement
them as junit tests. You can skip methods that are simple accesso
mutator methods. The skeleton junit file is
provided in your A2 repository and the gradle file is already set up to facilitate running of tests.
2
• Javadocs: Create a javadoc comment for each public method of the Board class that includes, as a minimum,
method purpose, parameters and return values. Create a javadoc comment that is placed before the class
definition for each class in your solution. It should include a description of the purpose of the class and an
@author annotation that identifies you as the author of the file.
Evaluation
This portion of the assignment is graded out of 70 marks. Your submission must compile without e
ors or warnings
and must pass checkstyle to be awarded a grade other than zero.
35 of the marks are for demonstrating good object oriented design. Elements examined will include:
• coding conventions and readabilty
• cohesion of classes
• encapsulation
• allocation of responsibility and purpose for classes and methods
• coupling of classes
• use of exceptions and e
or handling
• test cases and testing
35 of the marks are for the functionality. Elements examined will include:
• game play
• win and tie conditions
• clear, informative messages to use
• user interface is predictable and easy to operate
Part 2: Code Review
The code review portion of the assignment must be submitted via the dropbox on moodle as markdown file or as
a pdf file. Provide answers to the following three questions in your code review. Clearly indicate which question
is being answered. The CK metrics jar file may be useful to you in conducting this code review but its use is not
equired. https:
github.com/mauricioaniche/ck
1. Describe the test cases you used to test the Board class. Use the table format that is describe in the e-text to list
the test cases. Include reasons why you feel the test cases you selected are sufficient.
2. Discuss the techniques you have employed to ensure your classes are cohesive and explain why those tech-
niques are effective. Alternatively, you may discuss changes you would make to increase cohesion. You may
use diagrams, charts or metrics to support your argument. Use specific examples from your assignment.
3. Discuss the techniques you have employed to ensure that your Connect Four game is not excessively coupled
and explain why those techniques are effective. Alternatively, you may discuss changes you would make to
educe coupling. You may use diagrams, charts or metrics to support your argument. Use specific examples
from your assignment.
Evaluation
This portion of the assignment is graded out of 30 marks. Each of the code review sections is allocated 10 of the 30
marks. Marks are given for thoroughness, thoughtfulness and for demonstrating a solid understanding of the OO
principles involved. Up to 10 marks will be deducted from the total for poor grammar or spelling.
Personal Interview
Your personal interview will be conducted virtually by a member of the instructional team During the interview you
will be asked questions about your assignment submission. Some of those questions may involve you imagining a
different solution than the one you submitted. Your response to each question will be graded using a 5 point scale
and an interview grade calculated from those responses. The interviewer is not responsible for the final calculation
of the interview grade.
3
Answered 33 days After Oct 11, 2022

Solution

Vikas answered on Nov 14 2022
44 Votes
SOLUTION.PDF

Answer To This Question Is Available To Download

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here