ColorShapeLinks AI
An AI competition for the IEEE Conference on Games 2021
|
▼NColorShapeLinks | The ColorShapeLinks game, an unbounded version of the Simplexity board game |
▼NCommon | The common code between all ColorShapeLinks implementations |
▼NAI | Common AI-related types between all ColorShapeLinks implementations |
▼NExamples | Example AI thinker implementations |
CBadMoveAIThinker | This thinker always tries to make an invalid or illogical move. Used for testing purposes only |
CMinimaxAIThinker | Sample AI thinker using a basic Minimax algorithm with a naive heuristic which previledges center board positions |
CRandomAIThinker | Implementation of an AI that will play randomly |
CRandomMemoryHoarderThinker | This thinker plays randomly and hoards memory for testing purposes |
CSequentialAIThinker | Implementation of an AI that will always play in sequence, from the first to the last column. It will start by using pieces with its winning shape, and when these are over, it continues by playing pieces with the losing shape |
CAbstractThinker | The actual AI code of specific AIs should be placed in classes which extend this class |
CFutureMove | Represents a move to be performed in the future |
CIThinker | The actual AI code of specific thinkers should be placed in classes which implement this interface |
CIThinkerPrototype | Interface for all thinker prototypes |
CThinkerManager | Singleton class used for finding and keeping a record of existing thinkers |
CThinkerPrototype | Represents a thinker prototype from which to obtain new instances of the given thinker |
CUncooperativeThinkerException | Exception thrown when a thinker refuses to terminate, even after being requested to do so |
▼NSession | Common match and session setup code for ColorShapeLinks games |
CIMatchConfig | Defines a match configuration, such as number of rows, number of columns, etc |
CIMatchDataProvider | Defines a data provider for ColorShapeLinks matches |
CISessionConfig | Defines a session configuration, points per win, per loss, etc |
CISessionDataProvider | Defines a data provider for ColorShapeLinks sessions, which include one or more matches |
CMatch | Represents one match in a tournament |
CMatchConfig | Defines a match configuration, such as number of rows, number of columns, etc. |
CSession | Implements a session of ColorShapeLinks matches, setting up matches and keeping track of the results and classifications |
CBoard | Represents the game board |
CMove | Represents a move already performed |
CPColorExtensions | Extension methods for the PColor enum |
CPiece | Represents a board piece |
CPos | Represents a board position |
CWinnerExtensions | Extension methods for the Winner enum |
▼NTextBased | A console implementation of the ColorShapeLinks board game |
▼NApp | The console application frontend which runs matches and sessions of the ColorShapeLinks board game |
CBaseOptions | Command-line base options, available to all verb commands |
CGameOptions | Command line game options, available to both the "match" and "session" verb commands |
CHumanThinker | A human thinker for testing the console app |
CMarkdownSessionListener | Session event listener which outputs session information to the standard output in Markdown format |
CMatchOptions | Command line match options, available only to the "match" verb command |
CProgram | This class contains the Main() method for the ColorShapeLinks console app |
CSessionOptions | Command line session options, available only to the "session" verb command |
CSimpleRenderingListener | Simple event listener which renders thinker, match and session information on the console |
▼NLib | Library "engine" code for console or third-party implementations of ColorShapeLinks |
CCompSessionListener | Session event listener which outputs complete session information in Markdown format with links text files containing the play outs of each match |
CIMatchListener | Interface to be implemented by classes who wish to listen to match events |
CIMatchSubject | Interface defining the events raised in a match of ColorShapeLinks |
CISessionListener | Interface to be implemented by classes who wish to listen to session events |
CISessionSubject | Interface defining the events raised in a session of ColorShapeLinks |
CIThinkerListener | Interface to be implemented by classes who wish to listen to thinker events |
CMatchController | This class runs a game-engine independent match of ColorShapeLinks |
CRankingSessionListener | Session event listener which outputs session final results into a TSV file |
CSessionController | Controls a session of ColorShapeLinks matches |
CWinnerExtensions | Extension methods for the Winner enum |
▼NUnityApp | A Unity implementation of the ColorShapeLinks board game |
CAIPlayer | Component which represents an AI thinker |
▼CHumanMoveButton | Script that controls a UI button for performing human moves |
CIntEvent | Type of Unity event that accepts an int, used for indicating the column associated with the clicked button |
CHumanPlayer | Represents a human player, for testing purposes |
CHumanThinker | Represents a human thinker, for testing purposes |
CHumanThinkerPrototype | Human thinker prototype |
CIMatchViewConfig | Interface defining configuration options for match views |
CIPlayer | Defines a player for the ColorShapeLinks board game |
CIUnitySessionDataProvider | Defines a data provider for ColorShapeLinks Unity sessions, which include one or more matches |
CMatchController | Script which controls ColorShapeLinks matches |
CMatchView | Script which renders the matches UI |
CSessionController | Script which controls ColorShapeLinks sessions, which can include one or more matches |
CSessionView | Script which renders the session UI |
CThinkerListAttribute | Attribute which provides a custom attribute for script variables containing all the known thinkers at runtime |
CThinkerListDrawer | Custom property drawer for selecting an thinker from all known thinkers at runtime |