tictactotem-engine v1.3.0
= TicTacTotem Engine (Library)
== Overview
As described in the parent link:../../readme.adocREADME, TicTacTotem (T4m) is a quantized, cylindrical Tic-Tac-Toe variant.
This package is the TicTacTotem-Typescript (T5S) game engine, which encapsulates the core game mechanics in a universally deliverable library.
=== Technology? Choices
Typescript:: Used to offer the portability of Javascript with good language facilities for structure, link:../../docs/adr/0002-use-typescript-as-primary-game-engine-language.mdADR0002.
== Implementation Guide
CAUTION: This section describes a pre-release interface, which is neither yet focussed nor stable.
...
== Game Mechanics
=== Game Space Parameters
==== Game Board Dimensions and Representation
The T4M game "board" is defined using a quantised set of integer cylindrical coordinates, using the following dimensions:
|=== | Dimension | Type | | Radius | Linear | | Segment | Radial | | Depth | Linear | |===
As such, the game space can be modelled as map of cylindrical coordinate keys (hashed) to player values.
==== Turn Progression and Game-End Conditions
Players progress the game by committing turns in a U-Go-I-Go fashion.
The winning player is the one who first satisfies one of the algorithmically-defined win condtions:
Circle:: stem:[ in(0 -> S)^n r = r_0 , s = n, d = d_0 ] Drop Line:: stem:[ in(0 -> D)^n r = r_0 , s = s_0, d = n ] Thru Line:: stem:[ in(-R -> R)^n r = |n| , s = s_0 + ((Sn)/(2|n|))%S, d = d_0 ] Diagonal:: stem:[ in(-R -> R)^n r = |n| , s = s_0 + ((Sn)/(2|n|))%S, d = d_0+n+R ] Clockwise Spiral:: stem:[ in(0 -> D)^n r = r_0, s = (s_0 + n)%S, d = n ] Anti-clockwise Spiral:: stem:[ in(0 -> D)^n r = r_0, s = |(s_0 - n)%S|, d = n ]
This is checked internally by the library, and the move given by the WinResult response.
TIP: Although these conditions are capable of stem:lim_(N->ZZ), they were originally made with a board size of stem:2xx4xx4 stem:[R xx S xx D]. As such, this can be considered a subset of
=== AI
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago