Final project for Game Theory/AI course.
- JDK 14
- Maven (for dependency management)
-
Clone this repository by running:
git clone https://github.com/nickylogan/saboteur.git
-
Run the game by executing:
mvn javafx:run
Create a new package in ai.impl
. The package must contain at least one public class, which is your custom AI. For ease of explanation, I'll refer your custom class as FooAI
. Don't be afraid to name it something else.
FooAI
must extend AI
, and the only method you must override is makeDecision()
, which will be called automatically when the game prompts you to move.
IMPORTANT: The
makeDecision
method timeouts after5
seconds. Make sure your implementation doesn't take too long to finish.
Here's an example short snippet of FooAI
:
public class FooAI extends AI {
public FooAI() { super("Foo"); }
@Override
public Move makeDecision() {
// do something here
return move;
}
}
See ai.impl.example
or ai.impl.random
for more sophisticated implementations.
Action | Control |
---|---|
Select a card | Left-click on any card on the bottom pane |
Place a card | Right-click on the desired position |
Target a player | Left-click on the targeted player |
Rotate a card | Press R |
Discard a selected card | Press D |
Please read the JavaDoc. If you feel lost, you can check out the class diagram
Fork this repository and create a new pull request. Please provide a clear summary of your changes.
Should any issue or bug occur, please open a new issue, or directly PM me.
- Nicky Logan — @nickylogan
- Nadya Felim — @Ao-Re
ai.impl.logan.SaboteurAI
: Nicky Logan @nickylogan and Nadya Felim @Ao-Reai.impl.davis.FishAI
: Barjuan Davis @barjuandavis and Regy Ezanantaai.impl.ricky.AIPakSam
: Ricky Gani @ZyphonGT and Albert Antonio @mailmancyai.impl.tom.AndreTomAI
: Andreas Geraldo @Andreas001 and Thompson DY @thompsonlieai.impl.wilbert.Perceptron
: Wilbert NW @wilbertnw and Joshua Kaven @Nevaksai.impl.ray.HeuristicsAI
: Ray Antonius @rocksus and Joshua Budijantoai.impl.yj.YJ_AI
: Christopher Yefta @ChrisYef and James Adhitthana @jamesadhitthanaai.impl.jasson.Jasson
: Jasson and Peterai.impl.angjoshel.Core
: Angela Ivany @angelaivany, Josephine @josessca, and Shella L @shellalai.impl.cen.botGDCN
: Bong Cen Choi @Bongcen and Gabriel Dejan @gabrieldejan17ai.impl.jerry.AIJR
: Ryan Hiroshi @RyanHiroshi and Jerry