Skip to content

Detective and Phantom AIs agents for the board game Phantom of the Opera

License

Notifications You must be signed in to change notification settings

Oxydros/Phantom-of-the-Opera

Repository files navigation

AI: Phantom of The Opera

Introduction

This is a school project for the Artificial Intelligence course.
The aim is to create two AIs that will play the Detective and the Phantom for the board game Phantom of the Opera.
In the end, all the AI of course's student will compete against each others to determine which one is the best.

We HAD to comply to the server located in this repository: https://github.com/groznyniko/ia_fopera.

We are french developers, and we mostly called the Phantom as Ghost inside our code. Sorry :)

Algorithms

We had two main goals doing this project: learn about AI, and win the tournament.
We did two algorithms:

Installation

Libraries

You need to have Python 3.7 and PyTorch v0.4.1 or superior installed.
You may have a warning, look here https://discuss.pytorch.org/t/about-pytorch-update/476

Launch it

You can find 4 dummy.py files:

  • Dummy0 and Dummy1 are the Detective and Phantom agents using the DQN
  • Dummy2 and Dummy3 are the Detective and Phantom agents using the Alpha Beta

Communication code between the clients and the server is inside the runner.py or runnerSocket.py.
By default, all the dummies use the runner.py.

There is two different servers:

  • fantome_opera_serveur.py uses files to communicate with the clients. Use runner.py(default) in your dummies.
  • fantome_opera_serveur_socket.py uses sockets to communicate with the clients. It's by far the best way to test this project. To do so, you need to use the runnerSocket inside the dummies, instead of the basic runner.

Default is file communication, because the professor wanted it that way.

Contact

  • Oïhan CAILLAUD (@ourdin)
  • Louis VENTRE (@oxydros)

About

Detective and Phantom AIs agents for the board game Phantom of the Opera

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages