Le Contexte
Réalisé dans le cadre de ma formation l'année dernière, ce projet avait pour but de maîtriser les fondamentaux de PHP Vanilla en dehors d'un contexte web classique (HTML/CSS).
L'objectif était de créer un jeu de "Pierre-Feuille-Ciseaux" entièrement fonctionnel dans le terminal, capable de sauvegarder la progression du joueur sans utiliser de base de données SQL. C'était un excellent exercice pour comprendre la manipulation de fichiers et la logique algorithmique pure.
Fonctionnalités Développées
- Interface CLI : Interaction avec l'utilisateur via la console (entrées/sorties standard).
- Persistance des Données : Sauvegarde automatique des scores et de l'historique dans des fichiers Data.json.
- Statistiques Avancées : Calcul du taux de victoire, de la main la plus jouée et du temps de jeu total.
- Logique de Jeu : Algorithme aléatoire pour l'ordinateur et gestion des conditions de victoire.
Stack Technique
-
PHP 8 : Scripting & Logique
-
JSON : Stockage de données
-
CLI : Interface Homme-Machine
-
Git : Versionning
Les Défis Techniques
Manipulation de Fichiers : Le plus gros défi a été
de créer un système de "base de données" léger en utilisant
uniquement des fichiers JSON. Il a fallu gérer la lecture
(file_get_contents), le décodage, la modification des
tableaux PHP, puis la ré-écriture (file_put_contents) à
chaque tour de jeu.
Gestion du Temps : J'ai implémenté un système de
chronomètre avec microtime(true) pour calculer le temps
exact passé en jeu et l'ajouter aux statistiques globales.
Robustesse : Le script doit gérer les erreurs, comme la création des fichiers JSON s'ils n'existent pas au premier lancement, ou la gestion des entrées utilisateur invalides dans la console.
Aperçu du Terminal
>> Menu Principal :
1. Commencer une nouvelle partie
2. Consulter l'historique
3. Consulter les statistiques
Votre choix : 1
... pierre, papier ou ciseaux ?
Simulation de l'interface en ligne de commande.