Giter Site home page Giter Site logo

paperfootball's Introduction

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.

paperfootball's People

Contributors

matmozaur avatar idabrows avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.