Creating the models

In lib/model.ts, we will create the model for our game. The model should contain the game state.

We start with the player. The game is played by two players. Each field of the grid contains the symbol of a player or no symbol. We will model the grid as a two dimensional array, where each field can contain a player:

export type Grid = Player[][]; 

A player is either Player1, Player2, or no player:

export enum Player { 
  Player1 = 1, 
  Player2 = -1, 
  None = 0 
} 

We have given these members values so we can easily get the opponent of a player:

export function getOpponent(player: Player): Player { 
  return -player; 
} 

We create a type to represent an index of the grid. Since the grid is two dimensional, such an index requires two values:

export ...

Get TypeScript: Modern JavaScript Development now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.