Skip to content

Matmozaur/PaperFootball

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Project name: Paper football Authors: Maciej Dobrzański, Izabela Dąbrowska

Overview

The result of our project is a program to play the game called paper football with choosen computer opponent or to simulate a match between two choosen bots. The rules are described here: https://en.wikipedia.org/wiki/Paper_soccer. Additionally we included framework allowing us to create and train our own bots based i.a on methods of artificial intelligence. The result are also a few bots which we have already trained.

Project structure

We divided our project into model, view and controller packages. Below, there is a more detailed description of files included in the project.

File path Description

view* Folder with files for GUI model\game.py Interface for files: model\gameState.py and model\gameStateUtils; Includes functions to get allowable moves (on 3 modes: simple, deepcheck and random), to make moves etc. model\ml-module\agent.py Class standing for computer player. There are 3 modes of getting a move and2 modesof choosing one (described below). model\ml_module* Implementation of predictors, MCTS, memory, deterministic models controller\playing.py Set of functions for playing training matches (with saving to memory and retraining) and validation ones controller\main_training.py File with training loop for models controller\main_play.py Start of a game controller\config Includes configuration options for the first game (depth of search, max times, learning parameters

There are 3 modes of getting allowable moves avaliable for user and 2 modes of choosing one of them. Getting allowable moves ‘simple’ - all allowable moves that are not losing. If there is the winning move, it should be returned as the only one. ‘deepcheck’ - all allowable moves that are not losing and the moves and the moves after which the opponent has not winning move. ‘random’

Choosing a move

‘model’ - we choose move with the best result returned by the model (‘probability of win’) ‘mcts.simple’ - simple MCTS ‘mcts.boosted’ - MCTS, where the initial weights are initialized from the model

Models

We trained two model, one dedicated for simple model evaluation mode of the agent, and secound for mcts boosted approach.

About

The implementation of a paper game.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 69.1%
  • Python 30.9%