This is a repository created to run a workshop on Game Theory using the programming language Python and more specifically an open-source software called the Axelrod Python library

Overview

Game-Theory-and-Python

https://img.shields.io/github/workflow/status/Nikoleta-v3/Game-Theory-and-Python/ci

This is a repository created to run a workshop on Game Theory using the programming language Python and more specifically an open-source software called the Axelrod Python library.

The topics being covered in this workshop are the following:

  1. An introduction to game theory and the Iterated Prisoner's Dilemma
  2. Creating matches and tournaments using Axelrod-Python
  3. Writing strategies and contributing to Axelrod-Python
  4. Playing against strategies of the Iterated Prisoner's Dilemma

Installing Python

There are various distributions of Python. I recommend using Anaconda which comes packaged with a variety of tools, such as Jupyter Notebooks.

This tutorial is written in Jupyter Notebooks.

Virtual Environment

This repository comes with an environment.yml file. The environment.yml file will allow you to create an Anaconda environment. To do that use the terminal or an anaconda prompt and after you have navigated to the repository just type:

$ conda env create -f environment.yml

The environment can be activated by typing:

$ conda activate game-python

and notebooks can also run in it. To do that you will have to select (from within a running notebook) Kernel and under Change Kernel select the environment game-python.

Usage

The tutorial Game Theory and Python can be used in a workshop environment or through independent learning.

Workshop: The material have been designed for a 2 hours workshop.

Suggested timetable:

In a workshop environment we suggest that the instructor has familiarized themselves with the written parts of the tutorial beforehand. For each notebook it is advised that the instructor gives a mini presentation to the topic followed by them typing out/running the material while the participants follow in their own machines. The instructor should encourage the participants to try the exercises of each notebook alone or with other participants. Before moving to the next notebook the instructor should encourage a discussion amongst everyone regarding the results of the exercises each had and their interpretation.

Independent Learning: An independent learner should aim to spend 2 hour on the material.

Suggested timetable:

If the tutorial is being followed by an individual learner, we suggest that the learner reads the written parts of each notebook followed by running the tutorial and completing the exercises. The individual should take some time to reflect on the results of each notebook and their interpretation.

Contributions

All contributions are welcome! This may include communicating ideas for new sections, letting us know about bugs, and code contributions.

Events

This tutorial has been used in the following events:

Have you used this tutorial in an event you hosted or participated? Please do let me know by either contacting me or feel free to open a pr adding your event to this list.

License

The code in this repository, including all code samples in the notebooks listed above, is released under the MIT license.

Comments
  • JOSE Paper: tell the

    JOSE Paper: tell the "story"

    Does the paper tell the "story" of how the authors came to develop it, or what their expertise is?

    The paper does not clearly tell the narrate the story.

    opened by sconde 1
  • Notebook 2: add precision that payoff matrix is identical to notebook 1

    Notebook 2: add precision that payoff matrix is identical to notebook 1

    I was reading the 2nd notebook on matches and tournaments and found myself re-scrolling to be sure I didn't miss the rules of individual games (the payoff matrix), I had to look up the linked doc which indicates that the payoff matrix is indeed the same as in the prisoner's dilemma. Maybe add a precision at the beginning of the notebook that the payoff matrix is identical?

    Issue created within the JOSE review https://github.com/openjournals/jose-reviews/issues/78

    opened by matbesancon 0
  • JOSE: matches and tournaments

    JOSE: matches and tournaments

    For independent learner, it would be very helpful to annotate the notebooks with verbose comments and/or explanations for the output of the commands.

    Without some comments, the modules may not be self contained for self learner. For example, a small explanation for the result of the match Cooperator vs Random

    [(C, D), (C, D), (C, C), (C, C), (C, D)]
    
    opened by sconde 0
  • Usage: mini presentation

    Usage: mini presentation

    "For each notebook it is advised that the instructor gives a mini presentation to the topic followed by them typing out/running the material while the participants follow in their own machines."

    Have you presented this material at a workshop before? If so, it would be beneficial to provide a link to the mini presentation for other instructors to adapt.

    opened by sconde 0
  • hard coded prefix

    hard coded prefix

    https://github.com/Nikoleta-v3/Game-Theory-and-Python/blob/a62241001902f2bb39765750dbcc89596167a983/environment.yml#L13

    This is very specific to your machine. Please update for easy installation for other users. Or note properly in README to be updated.

    opened by sconde 0
  • Statement of Need

    Statement of Need

    "The authors should clearly state what problems the software is designed to solve and who the target audience is."

    In the Introduction, you do a great job describing the problem. However, It is not clear who the intended target audience is from text.

    opened by sconde 0
  • update travils yml

    update travils yml

    Travis CI released an update to their Xenial build environment, which introduced a new way to start up XVFB for front-end builds.

    This fixes the travis failure.

    opened by Nikoleta-v3 0
  • Make some minor suggestions

    Make some minor suggestions

    You should also include a couple of references. Take a look at https://vknight.org/tch-phi/ and https://vkcfm.readthedocs.io/en/latest/pedagogic-setting/index.html for some suggestions (but we can chat too :+1:).

    opened by drvinceknight 0
  • Bump ipython from 6.4.0 to 7.16.3

    Bump ipython from 6.4.0 to 7.16.3

    Bumps ipython from 6.4.0 to 7.16.3.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Add material to the tutorial

    Add material to the tutorial

    The iterated prisoner's dilemma studies also include tournaments with spatial topologies and evolutionary dynamics (Moran processes). Both are implemented withing Axelrod Python and both topics could potentially have their own sections in the tutorial.

    enhancement possibly 
    opened by Nikoleta-v3 0
Releases(v1.0.0)
Owner
Nikoleta Glynatsi
Postdoc @MPI_EvolBio 🎓 Social Dilemmas ⛓️ Applied Mathematics 💻📊 Software Development 🐍 @AxelrodPython
Nikoleta Glynatsi
Magic: The Gathering Arena draft tool that utilizes 17Lands data

MTGA_Draft_17Lands Magic: The Gathering Arena draft tool that utilizes 17Lands data. Steps for Windows Step 1: Download and unzip the MTGA_Draft_17Lan

41 Dec 31, 2022
A game made similar as space inveders with pygame

space-inveders-pygame a game made similar as space inveders with pygame . . . if you are using it make sure to change audio and imgs file i do no own

Volt_L18 2 Dec 26, 2021
:tada: 2048 in your terminal

term2048 term2048 is a terminal-based version of 2048. Install pip install term2048 To upgrade a previous installation, use: pip install -U term2048

Baptiste Fontaine 798 Nov 21, 2022
Open source translation for the Tsukihime Remake game

Tsukihime-Translation Open source translation for the Tsukihime Remake game prepared by Clovermoon and Tsukihimates. Copyright Disclaimer under Sectio

118 Jan 01, 2023
Solution for automation games play-to-earn

Pillow automation used processing images

Luis Eduardo Camilo 1 Jan 19, 2022
Gamelib is a pure-Python single-file library/framework for writing simple games.

Gamelib is a pure-Python single-file library/framework for writing simple games. It is intended for educational purposes (e.g. to be used in b

Diego Essaya 15 Dec 22, 2022
Ultimaze est un jeu en 2.5D, réalisé dans le cadre d'un projet de NSI.

Ultimaze Ultimaze est un jeu en 2.5D, réalisé dans le cadre d'un projet de NSI. La consigne était d'utiliser la librairie pygame pour créer un jeu en

parlabarbedeMerlin 3 Sep 17, 2022
Mastermind-Game - A game to test programming and logical skills

Bem vindo ao jogo Mastermind! O jogo consiste em adivinhar uma senha que será ge

Marcelo Daros 0 Jan 27, 2022
Adventure-Game - Adventure Game which is created using Python

Adventure Game 🌇 This is a Adventure Game which is created using Python. Featur

ArinjoyTheDev 1 Mar 19, 2022
Deep Running

Deep Running 1. Install $ pip install --user deep_running 2. Lap N Lap. Name Remarks Citation Meta 1 Mario Deeeeeep Running I was born to run. dannyso

karaage 69 Jan 31, 2022
View your VALORANT performance in different areas of every map in the game!

Valorant-Zone-Stats Inspired by Leetify's awesome Map Zones Tool for CS:GO A simple desktop program to view your VALORANT performance in different are

Louis 76 Jan 01, 2023
Pendulum Simulation using Pygame

Pendulum project, built using pygame and math modules.

3 Nov 09, 2021
Chess game for 2 players with UI

2-D Chess for 2 players Overview This is a simple 2D Chess game for 2 players using pygame library. Requirements To be able to run this game, you must

7 Apr 06, 2022
A game that depicts a real astronaut's struggles

Interstel-quickscooping-game Right from the beginning of our (i.e, me and me alone) journey in the creation of this game, our goal was to give a game

Sharath V 3 Jul 12, 2021
Are you obsessed with playing the increasingly-popular word game Wordle?

WORDLE-VISION Up your Wordle game! Are you obsessed with playing the increasingly-popular word game Wordle? Ever wondered what the optimal first word

Ravi Gupta 5 May 10, 2022
Flappy Bird hack using Deep Reinforcement Learning (Deep Q-learning).

Using Deep Q-Network to Learn How To Play Flappy Bird 7 mins version: DQN for flappy bird Overview This project follows the description of the Deep Q

Yen-Chen Lin 6.4k Dec 30, 2022
A python script to solve Wordle puzzles

Wordle solver A python script to solve Wordle puzzles.

Felix Weinberger 1 Feb 12, 2022
Python Knots and Crosses game, with customizable markers and more!

Knot-and-Crosses Python Knots and Crosses game, with customizable markers and more! Features: Ability to change your marker Ability to change how many

4 Nov 07, 2021
A zombie game using Kinetic. You can control players using fingers

This is Eden Park's portpolio: Works, projects and practices This repository can be used to show the potential employers to check my works, code and p

Eden Park 4 May 16, 2022
Flappy bird using Pygames

flappy-bird Esse é um jogo que eu fiz utilizando a biblioteca de jogos do Python

Leandro Henrique 2 Jan 05, 2022