Final Programming Assignment: Guess Who?
Guess Who? is a two player game where players use differential yes or no questions to isolate a hidden character. The first player to guess the other player's hidden character wins.
Each player takes their game board of 24 faces and places one of 24 mystery cards in the empty frame in each game board. This card represents the character your opponent has to guess and the character you have to answer questions about.
The youngest player goes first, beginning by asking the other player a characteristic found on one of their 24 visible characters (both players have the same 24 tiles). Example: “Does your character have brown hair?”
If they say, “yes,” the asking player flips over all of the characters without brown hair. If they say, “no,” the asking player flips over the characters that have brown hair. Through the process of elimination, players will eventually be able to “guess” the name of the opponent's character.
Each player gets one yes or no question per turn and may only guess (to win the game) once per game. If a player successfully guesses their opponent's hidden character then they win; if their guess is wrong then they lose.
In groups of 3, your task is to create a GUI based application that allows player vs. computer game play options using concepts taught in ICS4U. The user will not reveal the character they had chosen for the AI of your program to guess until the end of the program. Your program should not ask the user to enter the character’s name or click to select it. The user will choose one from the 24 at their own will. You will also demonstrate your knowledge and understanding of the project management process to complete the required tasks at each stage of the PM process including a detailed class design (UML Diagram). Once you have determined your group, a document would be shared with you to enter the names of the group members and their key role in the group as well.
The Project Management Process
You must follow the project management process throughout the implementation of this assignment.
1.Initiation Phase: During this phase you must create a Project Charter Document. In your Project Charter you must include a description of the project, scope of the project, requirements, cost benefit analysis, budget, a high level: timeline, task list; and a list of deliverables. Due: Dec. 14
2.Planning Phase: During the planning phase of the project you must include a:
a.Detailed plan and work breakdown structure and schedule in the form of a GANTT Chart. Your plan should include details on: scope, finalized list of deliverables, risk management & include steps that will be followed for Change Management. Due: Dec. 20
b.UML Class Diagram – include a detailed UML class design document Due: Dec. 20
c.Algorithm or pseudocode for the Program Due: Dec. 20
3.Execution Phase: Development of an application and execution of the plan to produce deliverables. Timeline: From start to closure - On-going
Progress Checks: Dec. 14, 21 (beta version), Jan 10
4.Monitoring and Controlling Phase: Provide evidence of regular status meetings/checkpoints to ensure that the tasks are on track and any changes made are tracked through a Change Management process. Change management involves documenting change, options for resolution, actual resolution.
Timeline: From start to closure - On-going
5.Closing: Each student is to meet and discuss their experiences on the project with their group and create a one page reflection paper on their lessons learnt. This is an individual component, so there should be one submission per student. Due: Jan 16, 2023
The Due date for your final program is: January 12 by end of class
Rubric for Project Management: Initiation & Planning Process
Criteria Level 4 Level 3 Level 2 Level 1
Initiation: Project description, scope, requirements, cost, budget, timeline, task list, deliverables
/ 10 C/T(2/2) ◻All sections completed in great detail
◻Excellent document layout, very clear and easy to understand
All sections completed in good detail
◻Very good document layout, clear and easy to understand
Some sections completed in good detail
◻Good document layout, clear and easy to understand
Only a few sections were completed
◻Document lacked organization and was difficult to understand
Planning
/ 10 C/T(1/2)
UML Class Diagram
/10 C/T(1/1)
Algorithm
/10 C/T(2/2) Gantt charts created with a high level of detail and accurate estimated dates
◻Tasks are evenly distributed
Gantt charts created with a sufficient level of detail and accurate dates
◻Tasks are somewhat evenly distributed
Gantt charts are created with a high level tasks breakdown and estimates
◻Tasks are distributed
Gantt charts are created with estimates, however, lacking in detail and accuracy
◻Tasks are distributed, but not evenly
All Classes/Objects defined have clear purpose and well defined attributes, behaviours, and relationships using correct symbols, shapes & cardinality
◻Communicate all s class relationships neatly and accurately. All symbols and relationships are represented correctly
◻All classes/attributes/behaviours are present. All signatures are complete.
Most Classes/Objects have clear purpose & well defined attributes, behaviours & relationships using correct symbols, shapes & cardinality
◻Communicates class relationships neatly and correctly. Most symbols & relationships are represented correctly
◻Most classes, attributes, behaviours & signatures are complete & present
Some Classes/Objects have clear purpose & well defined attributes, behaviours & relationships using correct symbols, shapes & cardinality.
◻Communicates class relationships neatly and reasonably. Some symbols & relationships are represented correctly
◻Some classes, attributes, behaviours & signatures are complete & present.
Few Classes/Objects have clear purpose & well defined attributes, behaviours & relationships using correct symbols, shapes & cardinality.
◻Communicates class relationships neatly and reasonably. Some symbols & relationships are represented correctly
◻Some classes, attributes, behaviours & signatures are complete & present.
provides all steps in great detail
◻Demonstrates insightfulK/U of task
◻Algorithm uses very efficient methods
provides all steps in good detail
◻Demonstrates good K/U of task
◻Algorithm uses efficient methods
provides most steps with some detail
◻Demonstrates adequate K/U of task
◻Algorithm uses fairly efficient methods
Incomplete, few steps that lacked detail
Demonstrates minimal K/U of task
Algorithm uses inefficient methods
Rubric for Project Management: Execution, Monitoring & Controlling & Closing Phase
Executing
/10 A (1) ◻Students are using class time wisely and are on task ensuring project timelines are being met
Students are usually using class time wisely and are mostly on task ensuring project timelines are being met
Students are somewhat using class time wisely and are somewhat on task ensuring project timelines are being met
Students are occasionally using class time wisely and are occasionally on task ensuring project timelines are being
Monitoring and Controlling
/10 A (1) ◻Detailed evidence provided for monitoring project variables and schedule against the project plan
◻Corrective actions clearly documented and taken to address issues10 9 8 ◻Evidence provided for monitoring project variables and schedule against the project plan
◻Corrective actions documented and taken to address issues
Some evidence provided for monitoring project variables and schedule against the project plan
Some corrective actions documented and taken to address issues
Little evidence provided for monitoring project variables and schedule against the project plan
No corrective actions documented and taken to address issues
Closing - Group Dynamics, Interactions, and Communication
(C/T = 1/1) ◻Reflection was transparent and revealing adequate details about challenges and strengths of the dynamics of the group
Reflection was somewhat transparent and revealing adequate details about challenges and strengths of the dynamics of the group
Reflection was vague and provided limited detail about challenges and strengths of the dynamics of the group
Reflection was unclear and did not provide details about dynamics of the group
Rubric for Guess Who? Application
Level 4 Level 3 Level 2 Level 1
Coding Standards
C /5 (1)
Includes name, date, and assignment title.
Excellent use of white space.
Creatively organized work.
Excellent use of; variables, objects/classes, & methods
Fully indented and braces matching
Includes name, date, and assignment title.
Good use of white space.
Organized work
Good use of; variables, objects/classes, & methods
Mostly Indented and braces matching
Includes name, date, and assignment title.
White space for readability
Organized work.
Good use of variables, methods, and classes
Some indented and braces matching
No name, date, or assignment title included
Poor use of white space (indentation, blank lines).
Disorganized and messy
Poor use of variables, methods, and classes (ambiguous naming).
Minimal indentation
Documentation
And Commenting
C /5 (1) Clearly and effectively documented including descriptions of all variables.
Specific purpose is noted for each function, control structure, input requirements, and output results
Clearly documented including descriptions of all variables.
Specific purpose is noted for each function and control structure.
Basic documentation has been completed including descriptions of all variables.
Purpose is noted for each function.
No documentation included
Runtime
A /5 (1) Executes without errors excellent user prompts, good use of symbols, spacing in output.
Thorough and organized documented testing has been completed and output from test cases is included.
Executes without errors.
User prompts are understandable, minimum use of symbols or spacing in output.
Thorough documented testing has been completed
Executes without errors.
User prompts contain little information, poor design.
Some testing has been completed.
Does not execute due to errors.
User prompts are misleading or non-existent.
No testing has been completed.
Guess Who? GUI Interface
A/T / 10
Wt: 2 Extensively applies GUI interface and 2D arrays to create a very user friendly and functional program
Sufficiently applies GUI interface and 2D arrays to create a user friendly and functional program
Applies GUI interface and 2D arrays to provide a somewhat user friendly and functional program
GUI and functionality is limited
Program Functionality
P V C & Extras
A/T / 10 Wt: 4 ◻Level 3 plus…
Includes additional complex functions (e.g., save a result, max number of guesses, timer, etc)
L2 plus: both players take turns
Game works as expected with options to guess, i.e. eliminates characters
Able play game until a winner is determined
Sometimes allows both players to take turns
Game works & options are still limited, i.e. eliminates characters
Inconsistently able to play game until a winner is determined
Does not allow players to take turns
Game sometimes works correctly and options are limited, i.e. eliminates characters
Program contains bugs and game cannot be completed
Artificial Intelligence
Wt: 2 ◻AI uses a complex strategy for choosing an option for eliminating a character
AI uses an effective strategy to choose a character to guess
AI randomly chooses from the available options/questions for eliminating a character
AI uses a strategy to choose a character to guess
AI randomly chooses an option/question for eliminating a character
AI randomly chooses a character to guess
AI is incomplete to not implemented to guess
AI is incomplete to not implemented
OOP Design and Application
T /10 (3) ◻Excellent application of OOP concepts to design two or more objects
Attributes, methods & OOP design makes for efficient program implementation
Very good application of OOP concepts to design two or more objects
Attributes, methods & OOP design makes for very good program implementation
Good application of OOP concepts to design two or more objects
Attributes, methods & OOP design makes for good program implementation
Some application of OOP concepts to design one or more objects
Attributes, methods & OOP design makes for program implementation
Wt: 1Group added more than three extra features not listed in the above two rows and they work effectively
The extra features, enhances the functionality and game playing experience
Students will be required to provide a list of extra features they added to the program:
Circle the features listed on the next column that you have incorporated into your program.
Also please list other features you added that were not a requirement:
Group added at least one extra feature not listed in the above two rows, to make the game playable and more user friendly. We recognize that some additional features are easier to incorporate than some others. Marks would be assigned, taking that into consideration.
Good interface is a requirement for the program (get name, provide instructions, report results, help if needed, …)
1 player versus AI (required)
Following are some examples of extra features:
2 player mode (player versus another player)
Timer
Error checking if user response and AI results do not match
Configuring settings (screen, scores, sound, other features, …)
Other: ____________
(check the features you added to your program)