Giter Club home page Giter Club logo

ricochetrobots's Introduction

02180 Intro2AI - Group 39: Board Game Assignment

Game of choice: Ricochet Robots

This repository contains a fully functional GUI for Ricochet Robots.
Several search algorithms have been implemented

  • Breadth-first search (single robot)
  • Breadth-first search (all robots)
  • A* search (all robots)
  • Greedy search (all robots)

The game will generate a new goal for the algorithm everytime it finds a path,
until a path is not found for a given goal within 1 minute.

Clone this repo into your directory of choice:

Download all required packages:

  • pip install -r requirements.txt

Test game with the different algorithms:

python main_AI.py

For a human game run

python main.py

ricochetrobots's People

Contributors

cm134 avatar rohboz avatar mhh469 avatar

Watchers

 avatar

ricochetrobots's Issues

Make a readme

expalin how to use the game, so the TAs understand

[https://github.com/CM134/RicochetRobots/blob/master/README.md]

Make benchmark of Algorithms

Pick maybe 1 or 2 game seeds, play the game until the end with each AI and compare specific things.
Maybe make the AIs only search for a max time, e.g. 10 min in total. Or max 1,5 min for each goal.
Consider that the BFS single might not find a path

Make a table in overleaf.

Things to compare:
Total run time
total path length

main solver as object

in main_ai.py when we need to choose the right solver. For now it is only the first run with the selected solver and all the other goal runs with a hardcoded solver. You have to manually change the solver in the script at the moment.

Extend main

  • integrate a human player into the game in some way.
    • consider multithreading
    • consider to make the solver stop then update the frame and the resume the solver
  • player should be able to make a bid of the moves he found. Then a timer of 1 minute starts.
  • after AI found a path, player should have the opportunity to search for 1 minute to find a shorter path. (Maybe AI like Greedy should also continue searching). Player should be able to stop the 1 minute any time and say 'he gives up', so we do not always have to wait a minute when playing.

Find a good random seed

play around with different seed and find one where all the agents work well.

Maybe find another one where the agents do not work well. e.g. long path making A* and BFS search long, but dijkstra finding solution quite fast.

Then we could also add this option to the selection menu in the beginning. where you choose the agent. Maybe after the agent is chosen we can make them to choose between 2 seeds.

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.