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
makeDecisionmethod timeouts after5seconds. 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