AI for Board and Card Games

Project code: BB-GameAI
Type of project: Exploratory Software.
Area of Interest: AI.
Appropriate for degree programme: Any
Appropriate number of credits: Any
Multiple projects can be considered: Yes
Prerequisites: AI, Programming

Traditional board and card games such as chess, checkers, backgammon, go and poker have proved a rich source of problems and inspiration for the development of AI techniques and algorithms. These days a vast number of boardgames are available involving a diverse range of game mechanics and strategies.

A project in this area would require:

  1. the design of software that can implement a game in terms of some representation of possible game states and possible state transitions that accord with the rules of the game.
  2. design and testing of an algorithm (or possibly several algorithms) that can simulate a player by picking reasonable (hopefully good) moves.

Some useful resources for Games AI projects are the following:

A student doing this project would choose a game whose states and rules are not too complex but whose play requires a significant amount of strategic and/or tactical consideration. Some possibilities are the following:

  • Why First? --- a simple but subtle multi-player card-based racing game, where the person who comes second wins. (A previous successful project has addressed the problem of finding strategies for this game using a reinforcement learning approach. But there is plenty of scope for more research into this game.)
  • Jaipur --- a 2 player card game based on the idea of buying and selling commodities. (Can build on work of a previous project.)
  • Cartagena --- a pirate themed game where you have to optimise the movement of your pieces along a track, with possible moves determined by matching cards to symbols on the track.
  • Samurai --- a tile placement game with an ancient Japanese theme. (Can build on work of a previous project.)
  • 7-Wonders --- A fairly complex card game with a theme of developing an ancient civilisation. This game is interesting because points can be scored in a variety of different ways. Although separately each of the scoring possibilites is fairly simple they are each based on different mechanisms and deciding which is best to persue is challenging. (Can build on work of a previous project.)
  • Blokus --- A tile laying game that uses different shaped tiles, where you try to maximise the number of tiles you place while blocking your opponent(s) from placing theirs. (Can build on work of a previous project.)
  • Coup --- A quick and fairly simple game involving hidden information and bluffing.
  • Hive --- a simple but challenging tile laying game, with an insect theme.

Various standard techniques can be applied such as learning weightings for various desirable properties of a game state by repeatedly playing differently weighted program instances against each other.

Previous Project Reports