Jan-13-2025, 05:39 PM
Hi everyone, this is my first post to python-forum.io,
I’ve been working on a project that I’d love to get your feedback on! It’s a collection of four Python implementations of the classic "Rock-Paper-Scissors" game, ranging from a minimal (~20 lines) version to a modular framework designed for extensibility (~350 lines of code plus unit tests).
The project started as a personal exercise to explore different programming approaches and improve my Python skills. Along the way, I’ve focused on:
About the Collection
Each implementation showcases a distinct design philosophy:
Feedback Areas
I’m looking for feedback on any aspect of the project, but here are some specific areas:
You can find the project on GitHub: Rock-Paper-Scissors Collection
Final Notes
This project was part of my ongoing Python journey, and I’d love to hear your thoughts - whether it’s constructive criticism, areas for improvement, or things you think I did well.
Thanks in advance for taking the time to check it out!
Best,
James
I’ve been working on a project that I’d love to get your feedback on! It’s a collection of four Python implementations of the classic "Rock-Paper-Scissors" game, ranging from a minimal (~20 lines) version to a modular framework designed for extensibility (~350 lines of code plus unit tests).
The project started as a personal exercise to explore different programming approaches and improve my Python skills. Along the way, I’ve focused on:
- Writing clean and readable code (using docstrings, type annotations, and following the PEPs).
- Creating unit tests (the "framework" version only), and using linters (Pytest, pylint, flake8, MyPy).
- Managing the project with modern tools (PyCharm, Poetry, git, GitHub, PyPi, and submodules).
About the Collection
Each implementation showcases a distinct design philosophy:
- Rock-Scissors-Paper Tiny: A minimalist version (~20 lines) that focuses on simplicity and readability.
- Rock-Scissors-Paper Minimal: A small, OOP-based game introducing player identity and better structure.
- Rock-Scissors-Paper YAGNI: A lightweight, modular design that avoids unnecessary complexity while maintaining functionality.
- Rock-Scissors-Paper Framework: A highly modular framework designed for extensibility, supporting dynamic rule generation and even custom variants like Rock-Paper-Scissors-Lizard-Batman.
Feedback Areas
I’m looking for feedback on any aspect of the project, but here are some specific areas:
- Code structure and readability: Are there improvements I could make?
- Use of Python best practices: Am I applying them effectively?
- Overall design: What do you think about the different approaches to the same problem?
You can find the project on GitHub: Rock-Paper-Scissors Collection
Final Notes
This project was part of my ongoing Python journey, and I’d love to hear your thoughts - whether it’s constructive criticism, areas for improvement, or things you think I did well.
Thanks in advance for taking the time to check it out!
Best,
James