UnoInsightsHub
is a computational simulation project made in Python that consists in a model of the famous worldwide game, UNO, applied to some statistical studies. Therefore, it enabled the extraction of important information and insights out of the endless possibilities of playing and winning the game.
For this reason, in this project it was developed an IA that plays UNO and the game's machine itself.
Why did I start this project?
Furthermore, the project's idea was born with the intention of being a final project of a subject of my grad, the subject is called "Modelling and Computational Simulation" (IMD/UFRN). Then, I used Python and Jupyter Notebook as main technologies because it is what we were using in class, and also, because python is very recommended for data science.
Challenges and the beggining...
I've faced some challenges during the build of the model due to its refactoring. I've begun the project in google colab, and as soon as it got bigger, I'd to change it for VSCode and start working on the refactoring, trying to apply as many good practices as I knew in the project.
This repository is organized in 3 branches. They are: main
,model
and playerstrategyone
.
main
is the core branch of this project. It is were all the data analysis and model are.model
is the branch that contains the latest version of the model, without the configuration with@dataclasses
to extract an output for the notebooks.playerstrategyone
is the branch were the player strategy is being developed.
To be able to run the project, make sure that you have the following prerequisites installed:
- Python
- Jupyter Notebook
- Pandas
- Numpy
- matplotlib
- Git
For run this project, you should choose whether you want to run it on a local or a remote environment. Some advices:
- If you are aiming to test only the
UNO MODEL
I suggest you taking the local environment. But of course, only if you feel comfortable. - If your goal is to run and see data analysis of the model. I suggest you trying an remote environment, like
Google Colab. Due to the high complexity of the algorithm, you computer may not be the best resource to use :(
- This is a specific advice to run the following notebook: UNOInsightsHub-Data. You can find more information about that on
data_analysis
folder.
- This is a specific advice to run the following notebook: UNOInsightsHub-Data. You can find more information about that on
Setting a local development environment
Before you get to try and test the model, you should follow some steps to have everything you need in hand.
🦄 Firstly, make sure you have
Git
installed. Everything is right? Okay! Now here's a recommended step-by-step to install the dependencies: -
Clone the repository
git clone https://github.com/julianasantiago100/uno_simulation.git
-
Install python3, pandas, jupyter notebook, numpy and matplotlib
- Depending on your Operational System,the command line will be different.
📌Running the model
If you want to run only the model, you should try this notebook:
runmodel.py
There is some changeable inputs entries for the model, and it'll return an output that can be interpreted and used for further studies.
📌Running the statistics and data analysis notebooks
If you want to try or test yourself this notebooks, I strongly recommend you taking Google Colab. Next, you will have to use the complete version of this project connected with the analysis part as well. So, download UNOInsightsHub-Data and have fun!
🚔Warning: Remember the high complexity!!
- documents for documentation.
- src for sorce code.
- data_analysis for notebooks and python code.
- tests for python code of sample inputs
- images for readme images.
I would like to thank some people who helped with the project in some of the following fields: code review, code standards and pixel art.
The project results will be added inside of the documentation.