Skip to content

An analysis on the famous game: UNO. Using modelling and computational simulation to extract information out of endless possibilities of UNO rounds.

License

Notifications You must be signed in to change notification settings

julianapequeno/UnoInsightsHub

Repository files navigation

UnoInsightsHub

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.

Repository Organization

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.

Development

📌 Pre-requisites

To be able to run the project, make sure that you have the following prerequisites installed:

  • Python
  • Jupyter Notebook
  • Pandas
  • Numpy
  • matplotlib
  • Git

Choosing your development environment

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.
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:

  1. Clone the repository

    git clone https://github.com/julianasantiago100/uno_simulation.git

  2. Install python3, pandas, jupyter notebook, numpy and matplotlib

    • Depending on your Operational System,the command line will be different.

How to Use

📌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.
runcode.py screenshot
📌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!!

Resouces

Contributors

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.

Results

The project results will be added inside of the documentation.

Visual Studio Code Python Jupyter Notebook NumPy Matplotlib Pandas Git GitHub

About

An analysis on the famous game: UNO. Using modelling and computational simulation to extract information out of endless possibilities of UNO rounds.

Topics

Resources

License

Stars

Watchers

Forks