Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nguyenj-c/tictactoe
Backend TicTacToe
https://github.com/nguyenj-c/tictactoe
backend-tictactoe docker php phpunit
Last synced: 14 days ago
JSON representation
Backend TicTacToe
- Host: GitHub
- URL: https://github.com/nguyenj-c/tictactoe
- Owner: nguyenj-c
- Created: 2021-12-17T08:12:07.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2022-06-01T14:18:39.000Z (over 2 years ago)
- Last Synced: 2024-11-11T03:27:56.466Z (2 months ago)
- Topics: backend-tictactoe, docker, php, phpunit
- Language: PHP
- Homepage:
- Size: 55.7 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Installation
Faire :```composer install```
Pour télécharger le dossier vendor avec PHPUnit
Puis faire cette commande pour lancer build le docker
```docker-compose build```
Et enfin pour run le docker
```docker-compose up```
# TicTacToe
Le TicTacToe a été fait pour reconnaître les diagonales, les lignes et aussi les colonnes gagnantes.
Avant tous, pour comprendre le code le 1er élément de board[Ligne][colonne] est la ligne et la 2eme est la colonne.
nbElément = nbLigne -1Pour checkDiagonalWinner, je fais une 1ere boucle qui compare si $board[$i][$i] $i était la variable de la boucle et le dernier élément du board $board[$nbElement][$nbElement] si ils ne sont pas égales on sort de la boucle. Sinon on continue jusqu'à $i == nbElement.
Pour la 2eme boucle, je compare si la 1ere position de l'anti diagonale qui ne change pas peut importe la taille du board donc je met board[0][nbElement] et board[$i][nbElement - $i] si ils ne sont pas égales on sort de la boucle. Sinon on continue jusqu'à $i == nbElement.
Pour checkLineWinner, je fais 2 boucle avec comme variables $i et $k et je compare du coup board[$i][$k] et board[$i][$nbElement] si différent on sort de la boucle. Sinon on continue jusqu'à $k == nbElement.
Pour checkColumnWinner, je fais la même chose que checkLineWinner sauf que j'intervertis ligne et colonne avec les variables $i et $k ce qui donne $board[$k][$i] et $board[$nbElement][$i].
Pour ces fonctions si la boucle continue jusqu'a la variables égales au nombre de ligne - 1, je mets le résultat dans une variable que je retourne à la fin.
# Test
Pour les test unitaire, PHPUnit a été utilisé.
Pour voir les tests effectués pour ce TicTacToe.Faites cette commande sur un terminal à la racine du projet ( normalement là ou se trouve le Readme.md )
```./vendor/phpunit/phpunit/phpunit ./project```