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, designs, etc. An assignment has been created in GitHub classroom. Form your groups and use it for all sharing!
- 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 via the GitHub project.
- Then each member will expand the diagram for their own game.
- Each member will create a testing plan for someone else's game. You may only use the UML diagram for the super classes and the subclasses to develop the testing plan. Everyone must also include a unit test for one component of either the superclasses or the Tic Tac Toe game
- 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.
- Add one more additional game as a group.