Skip to content

Artificial Intelligence Agent that uses adversarial search techniques to play knights Isolation

Notifications You must be signed in to change notification settings

aa2051995/Adversarial-Game-Playing-Agent

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build an Adversarial Game Playing Agent

Example game of isolation on a square board

Synopsis

In this project, we will experiment with adversarial search techniques by building an agent to play knights Isolation.

Isolation

In the game Isolation, two players each control their own single token and alternate taking turns moving the token from one cell to another on a rectangular grid. Whenever a token occupies a cell, that cell becomes blocked for the remainder of the game. An open cell available for a token to move into is called a "liberty". The first player with no remaining liberties for their token loses the game, and their opponent is declared the winner.

In knights Isolation, tokens can move to any open cell that is 2-rows and 1-column or 2-columns and 1-row away from their current position on the board. On a blank board, this means that tokens have at most eight liberties surrounding their current location. Token movement is blocked at the edges of the board (the board does not wrap around the edges), however, tokens can "jump" blocked or occupied spaces (just like a knight in chess).

Finally, agents have a fixed time limit (150 milliseconds by default) to search for the best move and respond. The search will be automatically cut off after the time limit expires, and the active agent will forfeit the game if it has not chosen a move.

You can find more information (including implementation details) about the in the Isolation library readme here.

About

Artificial Intelligence Agent that uses adversarial search techniques to play knights Isolation

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages