TIC-TAC-TOE React Native App

Written by Fabian Frey

How to start

To start the app, expo-cli must be installed. After that just use following commands in the project folder

yarn install
npx expo start

Architecture

The app demonstrates the separation of React View Components and business logic. The logic of the game tic-tac-toe is written in the GameService.ts class. It contains the current game state, the current game field, and all actions of both players. The interface to the view is the current game state, the current game field, and the playerAction function, which reacts to the user’s input. It reacts to a move and updates all necessary components like the game field.

List of all Game States:

  • ACTION_PLAYER1 (Player1’s turn)
  • ACTION_PLAYER2 (Player2’s turn)
  • WON_PLAYER1 (Player1 won, Game is finished)
  • WON_PLAYER2 (Player2 won, Game is finished)
  • DRAW (Draw, Game is finished)
  • ERROR (not used)
  • INIT (Initalisation of the Game)

The connection between the View ( TTTGameScreen) and the GameServie is the hook useGame.

This architecture allows us to add new functionality very fast and easy. For instance, you can start a new game, just by initiating a new GamerService (as is shown in startNewGame function).

In addition, testing the logic is easier, because we do not need to render a React Component to test any business logic.

The prefix TTT is short for TicTacToe.

Screenshots

GitHub

View Github