Inheritance Lab: Adding Additional Games: Spring 2024
Learning Objective(s)
Learn to use inheritance.
Learn more about programming in groups
Overview of the Program
Expand your TicTacToe game to include at least two more (one for each person in the group) two person games that use a square board.
Specifics
You must work in groups of two or more.
For each person in the group, another game is to be added (which means Tic Tac Toe should also work.)
Each person is solely responsible for the specifics of their own game
The group is responsible for the super classes and these must be shared.
Use GitHub to share your code.
The grade will be a combination of the shared work and the individual work
Two recommended games are (because they are at a good level of complexity:
Reversi (also know as Othello)
Connect 4
If an individual wants to choose a different game, be sure to get it approved during the first lab!
The main method should be found in a program called GameDriver
You may use your code from the previous labs or the posted solutions
Your program can be textually or graphically. I highly recommend you get it going textually first since a graphical interface will not contribute to the grade
Phase 1
First step is to work as a group and decide what code can go in the super classes and what code is specific to the individual games. The goal is to share as much as practical/possible
Create a UML diagram for the super classes and for the subclasses for the TicTacToe game and share it with each member
Then each member will expand the diagram for their own game.
Each member will create a testing plan for their own game. It is recommended that each game allow for different size boards if appropriate
The group can collaborate on any part of the software design reports except the parts that are specific to individual games. But each person must turn in their own report
In outside resources, include a discussion of who is in the group and what each contributed to the design report
Each member should submit their own Software Design Report as a single pdf
Phase 2
Using your graded software design report
create the super classes and the tic tac toe game as a group. Make sure they work. The driver will need to be expanded to allow the user to pick the game.
post that code to a GitHub repository and make sure everyone in the group has access
individually add your own game.
create a Software Development Report incorporating any necessary changes from the software design report. Be sure to include detailed instructions on how to run your program, including any instructions for extra credit.
In Lessons Learned, include sections that talks about:
one or two things you learned by looking at the solution to the previous labs.
your reaction to working in groups
how using inheritance help (or hindered) the project
In Outside Resources Used discuss who did what (esp. in the shared portions of the lab)
create a zip folder containing only the following
Each member's file (pdf) with their own completed software development report
all the .java files needed to run all the games
any input files you might want to have the grader use when running the program
Submission
only one zip folder needs to be submit by one person in the group
Optional improvements
Optional improvements should ONLY be worked on once the program is completing working. In addition, the work is to be done on your own with little if any help for lab assistants or the instructor.