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
Hangman Game

Hangman Game Este juego fue creado a partir de los conocimientos adquiridos en el Curso de Python: Comprehensions, Lambdas y Manejo de Errores que exi

Carlos Valencia 2 Nov 14, 2022
Solution for automation games play-to-earn

Pillow automation used processing images

Luis Eduardo Camilo 1 Jan 19, 2022
Découvrez CubeCraft Launcher, une application uniquement codé en Python et en Batch

Découvrez CubeCraft Launcher, une application uniquement codé en Python et en Batch. Grâce à son interface graphique facile et intuitive, vous pouvez vous retrouver facilement.

1 May 21, 2022
A simple yet powerful Snake Game made with myPygameWorkflow

snakeGame A simple yet powerful Snake Game made with myPygameWorkflow. Requirments python3 Python.org myPygameWorkflow Github Ripo Usage $ cd main $ p

DuskyElf 1 Dec 26, 2021
Dueling Platform for Competitive Programming. Learn through Games.

CP-Dueling Dueling Platform for Competitive Programming. Learn through Games. Setting Up Minimum Python version needed = 3.9.9 Install Virtualenv and

Bhavesh 3 Feb 07, 2022
An open source Python library for the Snake retro game.

An open source Python library for the Snake retro game.

3 Jul 13, 2021
Online battleships game on python and JS

Battleships Online battleships game Using websockets to connect to the client. SQLite database for storing account data and game logs (for players top

5 Nov 11, 2021
Wordle-prophecy - The comprehensive list of all Wordle answers, past and future

About This repo contains the comprehensive list of all Wordle answers, past and

Hayden Moritz 2 Dec 15, 2022
Simple Covid-19 shooter game in python.

Covid_game 🍹 Simple Single Player Covid Game Using Python. 🍹 Has amazing background music theme. 😄 Game Instructions: Initial Health is 5, try to s

Tanya Yadav 2 Aug 05, 2022
Super Mario Kart November 1991 Prototype Repair by MrL314

Super Mario Kart November 1991 Prototype Repair by MrL314

MrL314 51 Dec 26, 2022
Wordle-helper: python script to help solving wordle game

wordle-helper This is a python script to help solving wordle game 5-letter-word-

MD Nur Ahmed 2 Feb 08, 2022
This is an interactive MiniMap made with Python, PyQT5 & Pytesseract for the game

NWMM-New-World-MiniMap Features: Automatically grabs position from "New World" Instance Live visualisation of player position on MiniMap Circular & re

Nezzquikk 18 Sep 21, 2022
シューティングゲームぽい?未完成ですけど

シューティングゲームぽい?未完成ですけど

kawamineka 64 Jun 25, 2022
SuperChess is a GUI application for playing chess.

About SuperChess is a GUI application for playing chess. It is written in Python 3.10 programming language, uses PySide6 GUI library, python-chess lib

Boštjan Mejak 1 Oct 16, 2022
This is a python implementation of wordle, which uses the same set of available words as the hit game, Wordle

Wordle Game This is a python implementation of wordle, which uses the same set of available words as the hit game, Wordle. Play the game manually pyth

Pierre Theo Klein 11 Mar 04, 2022
Python codes for the classic Hang Man game

Python codes for the classic Hang Man game. The user will be assigned a random word to guess, one character at a time. If the user gets everything right, the program says Well Done!, but if the user

p.katekomol 1 Jan 25, 2022
Chess Game using Python

Chess Game is a single-player game where the objective is same as the original chess game. You just need to place your chess piece in a correct position. The purpose of the system is to provide some

Yogesh Selvarajan 1 Aug 15, 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
Creates a landscape with more accurate river generation in Minecraft version 1.12 using python.

MinecraftLandRiverGen View the following youtube video to set up a world that can interact with the python programs

23 Dec 25, 2022
Quantum version of the game Tic Tac Toe.

QTicTacToe Quantum version of the game Tic Tac Toe. This game was inspired by the game at this site. Installation The game requires the qiskit python

1 Jan 05, 2022