Proposal Report
Proposal Report
On
Submitted By
Subah Tasnim Proba
Roll: 2209055
13 January, 2025
The main objective of this project is to design and implement a simple interactive "Rock, Paper,
Scissors" game allowing a user to play against the computer. The game will feature tracking of
wins, losses and ties for both the user and the computer along with maintaining a history of the
game results. The project will help in understanding concepts like random number generation,
user input handling, decision-making algorithms and the use of basic object-oriented
programming (OOP) structures.
2. Project Overview:
This project implements a text-based "Rock, Paper, Scissors" game in C++ where the user
competes against the computer. The user inputs their choice (either rock, paper or scissors) and
the computer randomly generates its choice. The winner is determined based on the traditional
rules of the game. The program tracks the number of wins, losses and ties for both the user and
the computer providing a cumulative score. After each round, the user is prompted whether they
wish to play again and a history of game outcomes is displayed upon exiting the game.
3. Features:
Ⅰ. User Input: The user is prompted to input their choice (rock, paper or scissors) at the beginning
of each round.
Ⅱ. Computer's Random Choice: The computer randomly selects one of the three choices (rock,
paper or scissors).The choice is generated using the rand() function ensuring an unpredictable
outcome each time.
Ⅲ. Winner Determination: The game compares the choices made by the user and the computer.
The winner is determined based on the following rules: Rock beats Scissors, Scissors beats
Paper, Paper beats Rock. If both the user and the computer select the same option, it results in a
tie.
Ⅳ. Score Tracking: The number of wins, losses and ties for both the user and the computer is
tracked and displayed.
Ⅴ. Game History: The program records the outcome of each round (win, loss or tie). A history of
previous games is displayed after the user decides to exit the game.
Ⅵ. Replay Functionality: After each round, the user is asked if they would like to play again.
The game continues if the answer is "y" or "Y" and ends otherwise.
Ⅶ. Final Scores and Game Summary: At the end of the game, the final scores for both the user
and the computer are displayed along with the game history.
4. Expected Outcomes:
Interactive Gameplay: Users will be able to play a functioning Rock, Paper, Scissors game
against the computer with dynamic gameplay.
Score Tracking and History: The program will maintain a record of each game round and the
cumulative results for both the user and the computer, allowing for easy tracking of performance
over time.
User Engagement: The simple yet engaging nature of the game along with the replay ability
feature will ensure continuous interaction.
Learning Experience: This project will help users understand basic programming constructs like
loops, conditionals, random number generation and object-oriented principles such as classes and
object management.
5. Conclusion
This C++ program effectively implements a "Rock, Paper, Scissors" game, allowing users to
compete against the computer while tracking the outcomes of each round. The functions for user
input, computer choice generation, result determination and game history display enhances code
readability. The ability to replay the game and view a history of results adds an enjoyable aspect
to the user experience. Overall, this implementation serves as a solid foundation for
understanding basic programming concepts of conditionals, loops and string manipulation in
C++.