"Ciseaux", "Ciseaux" => "Papier", "Papier" => "Pierre" ]; // Conversion du choix du joueur humain en une valeur sous forme de chaîne de caractère const VAL_CHOIX = [ "1" => "Pierre", "2" => "Ciseaux", "3" => "Papier" ]; // endregion DefConst // region DefVars : définition des variables // Le tableau $Joueurs stocke les informations sur les 2 joueurs ( array ) $Joueurs = [ ]; // Le tableau $InfosJoueur stocke les données d'un seul joueur et est utilisé pour remplir $Joueurs ( array ) $InfosJoueur = [ "Nom" => "", "Points" => 0 ]; // endregion DefVars // Saisie du nom du joueur tant que la réponse est vide while (!$InfosJoueur["Nom"]): // Pour PHP, la chaîne vide "" est équivalente à FALSE // Prompt print('Nom du joueur ? '); // Récupération de la réponse. Notez que la fonction PHP readline() ne fonctionne pas sous Windows. $InfosJoueur["Nom"] = trim(fgets(STDIN)); endwhile; // Valider la saisie de la réponse en l'affichant dans un message de bienvenue. printf('Bonjour, %s.' . PHP_EOL, $InfosJoueur["Nom"]); // Ajout des infos sur le joueur : son nom et son score de départ $Joueurs[] = $InfosJoueur; // Le 2ème joueur est joué par l'ordinateur et s'appelle "Ordinateur" $InfosJoueur["Nom"] = "Ordinateur"; $Joueurs[] = $InfosJoueur; // Début de la partie en 3 manches gagnantes while ($Joueurs[0]["Points"] < 3 && $Joueurs[1]["Points"] < 3) : // Annonce de la nouvelle manche print('Nouvelle manche !' . PHP_EOL); // echo PHP_EOL; // Rappel des scores de chaque joueur printf( 'Rappel des scores : %s %d point(s). Ordinateur %d point(s).' . PHP_EOL, $Joueurs[0]["Nom"], $Joueurs[0]["Points"], $Joueurs[1]["Points"] ); // Initialisation du choix du joueur à une valeur hors limite ( int ) $ChoixJoueur = 0; // Saisie du choix du Joueur humain while ($ChoixJoueur < 1 || $ChoixJoueur > 3): // Prompt print('Que jouez-vous [Répondre 1, 2 ou 3] ? (1 = ' . VAL_CHOIX["1"] . ', 2 = ' . VAL_CHOIX["2"] . ', 3 = ' . VAL_CHOIX["3"] . ') '); // Récupération de la réponse. Notez que la fonction PHP readline() ne fonctionne pas sous Windows. $ChoixJoueur = intval(trim(fgets(STDIN))); endwhile; // Confirmation du choix du joueur en l'affichant en toute lettre printf('Vous avez choisi : %s', VAL_CHOIX[strval($ChoixJoueur)] . PHP_EOL); // Tirage aléatoire du choix du Joueur "Ordinateur" ( string ) $ChoixOrdinateur = VAL_CHOIX[array_rand(VAL_CHOIX)]; // Confirmation du choix de l'ordinateur en l'affichant en toute lettre printf('L\'ordinateur a choisi : %s' . PHP_EOL, $ChoixOrdinateur); // Résolution de la manche if (VAL_CHOIX[strval($ChoixJoueur)] != $ChoixOrdinateur): if (CHI_FOU_MI[VAL_CHOIX[strval($ChoixJoueur)]] == $ChoixOrdinateur): // Le joueur huemain gagne la manche printf('%s gagne la manche !' . PHP_EOL, $Joueurs[0]["Nom"]); $Joueurs[0]["Points"]++; else: // L'ordinateur gagne la manche printf('L\'ordinateur gagne la manche !' . PHP_EOL); $Joueurs[1]["Points"]++; endif; else : printf('Match nul !' . PHP_EOL); endif; endwhile; // Afficher le résultat de la partie if (3 == $Joueurs[0]["Points"]): printf('%s gagne la partie !' . PHP_EOL, $Joueurs[0]["Nom"]); else: printf('L\'ordinateur gagne la partie !' . PHP_EOL); endif;