O'Reilly logo

TypeScript: Modern JavaScript Development by Ivo Gabe de Wolff, Vilic Vane, Remo H. Jansen

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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 ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required