STONE PAPER SIZER
A Mini Project Report
Project Title: Stone Paper Sizer
Course / Department: ____________
College: ____________
Team Members:
- Sujit Chaurasiya (Leader)
- Ujjwal Singh
- Ravi Verma
- Shweta
- Nitin Maurya
Guide / Supervisor: ____________
Date: 09 November 2025
Certificate
This is to certify that the project entitled 'STONE PAPER SIZER' has been carried out by the
candidates named below under my supervision and to the best of my knowledge the work is
original and not submitted earlier for any other degree/diploma.
Submitted by:
Name: __________________ Signature: ____________
Guide: __________________ Signature: ____________
Date: __________________
Acknowledgement
I express my sincere gratitude to our guide, faculty members and friends who supported
and guided us throughout the project. Their valuable suggestions and encouragement
helped in successful completion of this project.
Abstract
The 'Stone Paper Sizer' is a Python-based implementation of the classic Stone-Paper-
Scissors game. This mini-project aims to demonstrate the use of fundamental programming
constructs such as control structures, randomization, functions, and basic input/output. The
application allows a user to play multiple rounds against the computer, keeps score, and
displays the result and statistics at the end.
Introduction
Stone-Paper-Sizer is a simple two-player game where a user competes against the
computer. Each player chooses one of three options: Stone, Paper, or Sizer (Scissors). The
rules are:
- Stone beats Sizer (Stone crushes Scissors).
- Sizer beats Paper (Scissors cut Paper).
- Paper beats Stone (Paper covers Stone).
This project implements the game logic in Python and provides a user-friendly command-
line interface. It is suitable as a beginner-level project for learning Python basics.
Objectives
1. Implement the Stone-Paper-Sizer game logic using Python.
2. Use functions to structure the code and maintain readability.
3. Use randomization for the computer's moves.
4. Maintain score across multiple rounds and display final statistics.
5. (Optional) Extend the project with GUI or web interface in future scope.
Tools and Technologies
Programming Language: Python 3.x
IDE / Editor: Any (e.g., VS Code, PyCharm, IDLE)
Libraries: random (standard library)
Database: Not required
Platform: Cross-platform (Windows/Linux/Mac)
System Requirements
Minimum:
- Processor: 1 GHz or higher
- RAM: 1 GB
- Python 3.x installed
Recommended:
- Processor: 2 GHz
- RAM: 2 GB or more
- Latest Python 3.x
Modules / Features
1. User Input Module: Accepts user's choice and validates input.
2. Computer Move Module: Generates the computer's move using random.
3. Game Logic Module: Determines the winner of each round.
4. Scoring Module: Keeps track of wins, losses, and draws.
5. Result Module: Displays round result and final statistics.
Algorithm
1. Start the game.
2. Initialize scores (user_win=0, comp_win=0, draw=0).
3. Repeat until user chooses to exit:
a. Ask user for choice (stone/paper/sizer) and validate.
b. Generate computer choice randomly.
c. Compare choices and determine round outcome.
d. Update scores accordingly.
e. Display round result.
4. After exit, display final scores and statistics.
5. End.
Flowchart (textual)
Start -> Initialize Scores -> Get User Choice -> Generate Computer Choice -> Determine
Winner -> Update Scores -> Display Result -> Play Again? -> (Yes: loop) (No: Display Final
Stats -> End)
Note: You can include a diagram (e.g., [Link] / MS Paint) in the final document if required
by your guide.
Source Code (Python)
import random
def get_computer_choice():
return [Link](['stone', 'paper', 'sizer'])
def decide_winner(user, comp):
if user == comp:
return 'draw'
wins = {
('stone', 'sizer'),
('sizer', 'paper'),
('paper', 'stone')
if (user, comp) in wins:
return 'user'
else:
return 'computer'
def main():
user_wins = comp_wins = draws = 0
rounds = 0
print('Welcome to Stone Paper Sizer! (type exit to quit)')
while True:
user = input('Enter your choice (stone/paper/sizer):
').strip().lower()
if user == 'exit':
break
if user not in ('stone', 'paper', 'sizer'):
print('Invalid input. Try again.')
continue
comp = get_computer_choice()
result = decide_winner(user, comp)
rounds += 1
if result == 'user':
user_wins += 1
print(f'You chose {user}, computer chose {comp}. You win
this round!')
elif result == 'computer':
comp_wins += 1
print(f'You chose {user}, computer chose {comp}. Computer
wins this round.')
else:
draws += 1
print(f'You both chose {user}. It\'s a draw.')
print(f'Score -> You: {user_wins} | Computer: {comp_wins} |
Draws: {draws}\n')
print('\nFinal Results:')
print(f'Total rounds: {rounds}')
print(f'You won: {user_wins} times')
print(f'Computer won: {comp_wins} times')
print(f'Draws: {draws}')
print('Thanks for playing!')
if __name__ == "__main__":
main()
Sample Output / Results
Example interaction:
Welcome to Stone Paper Sizer! (type exit to quit)
Enter your choice (stone/paper/sizer): stone
You chose stone, computer chose sizer. You win this round!
Score -> You: 1 | Computer: 0 | Draws: 0
Enter your choice (stone/paper/sizer): exit
Final Results:
Total rounds: 1
You won: 1 times
Computer won: 0 times
Draws: 0
Conclusion
The Stone Paper Sizer project demonstrates the basics of Python programming including
input handling, control flow, use of functions, and simple game logic. It is suitable as a mini
project in introductory programming courses.
Future Scope
- Add GUI using Tkinter or PyQt to make the game more interactive.
- Implement online multiplayer using sockets or a web-based interface using Flask/Django.
- Add move animations and sound effects for better UX.
- Store game statistics in a file or database for long-term tracking.
References
1. Python Official Documentation - [Link]
2. Random module documentation - [Link]
3. Project guides and sample implementations found in programming textbooks.