ColorShapeLinks AI
An AI competition for the IEEE Conference on Games 2021
Namespace List
Here is a list of all documented namespaces with brief descriptions:
[detail level 12345]
 NColorShapeLinksThe ColorShapeLinks game, an unbounded version of the Simplexity board game
 NCommonThe common code between all ColorShapeLinks implementations
 NAICommon AI-related types between all ColorShapeLinks implementations
 NExamplesExample AI thinker implementations
 CBadMoveAIThinkerThis thinker always tries to make an invalid or illogical move. Used for testing purposes only
 CMinimaxAIThinkerSample AI thinker using a basic Minimax algorithm with a naive heuristic which previledges center board positions
 CRandomAIThinkerImplementation of an AI that will play randomly
 CRandomMemoryHoarderThinkerThis thinker plays randomly and hoards memory for testing purposes
 CSequentialAIThinkerImplementation 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
 CAbstractThinkerThe actual AI code of specific AIs should be placed in classes which extend this class
 CFutureMoveRepresents a move to be performed in the future
 CIThinkerThe actual AI code of specific thinkers should be placed in classes which implement this interface
 CIThinkerPrototypeInterface for all thinker prototypes
 CThinkerManagerSingleton class used for finding and keeping a record of existing thinkers
 CThinkerPrototypeRepresents a thinker prototype from which to obtain new instances of the given thinker
 CUncooperativeThinkerExceptionException thrown when a thinker refuses to terminate, even after being requested to do so
 NSessionCommon match and session setup code for ColorShapeLinks games
 CIMatchConfigDefines a match configuration, such as number of rows, number of columns, etc
 CIMatchDataProviderDefines a data provider for ColorShapeLinks matches
 CISessionConfigDefines a session configuration, points per win, per loss, etc
 CISessionDataProviderDefines a data provider for ColorShapeLinks sessions, which include one or more matches
 CMatchRepresents one match in a tournament
 CMatchConfigDefines a match configuration, such as number of rows, number of columns, etc.
 CSessionImplements a session of ColorShapeLinks matches, setting up matches and keeping track of the results and classifications
 CBoardRepresents the game board
 CMoveRepresents a move already performed
 CPColorExtensionsExtension methods for the PColor enum
 CPieceRepresents a board piece
 CPosRepresents a board position
 CWinnerExtensionsExtension methods for the Winner enum
 NTextBasedA console implementation of the ColorShapeLinks board game
 NAppThe console application frontend which runs matches and sessions of the ColorShapeLinks board game
 CBaseOptionsCommand-line base options, available to all verb commands
 CGameOptionsCommand line game options, available to both the "match" and "session" verb commands
 CHumanThinkerA human thinker for testing the console app
 CMarkdownSessionListenerSession event listener which outputs session information to the standard output in Markdown format
 CMatchOptionsCommand line match options, available only to the "match" verb command
 CProgramThis class contains the Main() method for the ColorShapeLinks console app
 CSessionOptionsCommand line session options, available only to the "session" verb command
 CSimpleRenderingListenerSimple event listener which renders thinker, match and session information on the console
 NLibLibrary "engine" code for console or third-party implementations of ColorShapeLinks
 CCompSessionListenerSession event listener which outputs complete session information in Markdown format with links text files containing the play outs of each match
 CIMatchListenerInterface to be implemented by classes who wish to listen to match events
 CIMatchSubjectInterface defining the events raised in a match of ColorShapeLinks
 CISessionListenerInterface to be implemented by classes who wish to listen to session events
 CISessionSubjectInterface defining the events raised in a session of ColorShapeLinks
 CIThinkerListenerInterface to be implemented by classes who wish to listen to thinker events
 CMatchControllerThis class runs a game-engine independent match of ColorShapeLinks
 CRankingSessionListenerSession event listener which outputs session final results into a TSV file
 CSessionControllerControls a session of ColorShapeLinks matches
 CWinnerExtensionsExtension methods for the Winner enum
 NUnityAppA Unity implementation of the ColorShapeLinks board game
 CAIPlayerComponent which represents an AI thinker
 CHumanMoveButtonScript that controls a UI button for performing human moves
 CIntEventType of Unity event that accepts an int, used for indicating the column associated with the clicked button
 CHumanPlayerRepresents a human player, for testing purposes
 CHumanThinkerRepresents a human thinker, for testing purposes
 CHumanThinkerPrototypeHuman thinker prototype
 CIMatchViewConfigInterface defining configuration options for match views
 CIPlayerDefines a player for the ColorShapeLinks board game
 CIUnitySessionDataProviderDefines a data provider for ColorShapeLinks Unity sessions, which include one or more matches
 CMatchControllerScript which controls ColorShapeLinks matches
 CMatchViewScript which renders the matches UI
 CSessionControllerScript which controls ColorShapeLinks sessions, which can include one or more matches
 CSessionViewScript which renders the session UI
 CThinkerListAttributeAttribute which provides a custom attribute for script variables containing all the known thinkers at runtime
 CThinkerListDrawerCustom property drawer for selecting an thinker from all known thinkers at runtime