Programmation : Créer un dé, à lancer sur son Mac
En cette période de confinement et de vacances, les jeux vidéos, ainsi que les jeux de société occupent souvent une bonne partie de nos journées.
En proposant un jeu, à faire, à un ami, la seule réponse obtenue fut : "Je n'ai pas de dé".
Voici donc comment un créer un dé, informatiquement, et le lancer.
1/ Version simplifiée
Ma solution ici, est faite avec PHP, mais peut être faite avec n'importe quel language de programmation.
Ouvrez un fichier texte brut vierge, et insérez les balises PHP
<?php
au début, laissez quelques lignes vides, puis
?>
à la fin du fichier.
Au milieu, insérez le code suivant :
echo rand(1,6);
echo "n";
Enregistrez votre fichier à l'endroit ou vous le souhaitez, avec l'extension .php.
Pour ma part, je l'ai appelé simplement de.php dans un dossier Scripts de mon compte utilisateur. Pensez ensuite à remplacer les chemins et noms de fichier pour correspondre aux vôtres.
Puis dans un terminal, écrivez php, suivi d'un espace, suivi du chemin complet vers votre fichier
php Scripts/de.php
validez, avec entrée.
Votre petit script va vous afficher un nombre entre 1 et 6, puis quitter.
Note, avec flêche-haut, vous pouvez récupérer la dernière commande envoyée dans le terminal, pour la relancer.
Vous pouvez désormais lancer vos dés avec votre Mac.
2/ Version évoluée 1 : plusieurs dés à la fois
Si la solution au dessus vous convient, inutile d'aller plus loin. Pour les curieux, qui voudrait par exemple lancer plusieurs dés à la fois, voici une version plus évoluée, à mettre dans votre fichier, en remplaçant le contenu situé entre les balises
/* On teste les arguments */
if (count($argv) == 1) {
echo "Indiquez le nombre de dé à lancer.n";
exit;
}
$cnt = (int)$argv[1];
if ($cnt == 0) {
echo "Indiquez un nombre valide de dé à lancer.n";
exit;
}
/* On calcule tous les dés */
$rolls = array();
for($i=0; $i<$cnt; $i++) {
$rolls[] = rand(1,6);
}
/* On affiche les résultats */
echo implode(' - ', $rolls)."n";
Désormais, pour lancer votre script, il faudra penser à ajouter le nombre de dés que vous souhaitez, par exemple 5
php Scripts/de.php 5
le résultat sera quelque chose comme
5 - 3 - 1 - 6 - 6
3/ Version évoluée 2 : lancer un dé disposant d'un nombre de facettes variable
Amis joueur de jeux de rôle, je ne vous oublie pas. Vous avez oublié votre dé 12 chez un ami, ou votre dé 20 est en panne, pas de soucis. Voici une solution adaptée.
/* On teste les arguments */
if (count($argv) == 1) {
echo "Indiquez le nombre de facettes de votre dé.n";
exit;
}
$cnt = (int)$argv[1];
if ($cnt == 0) {
echo "Indiquez un nombre valide de facettes pour votre dé.n";
exit;
}
/* On affiche le résultat */
echo rand(1,$cnt)."n";
Désormais au lieu d'indiquer le nombre de dés à lancer, vous indiquez en paramètre le nombre de facette de votre dé.
php Scripts/de.php 20
avec un résultat qui ira de 1 à 20.
4/ Version évoluée 3 : lancer plusieurs dés avec un nombre de facettes variable
Toujours pas rassasiés ? Bien, voici une autre version, qui vous permettra de lancer plusieurs dés, ayant un nombre de facettes différent.
if (count($argv) == 1) {
echo "Indiquez les dés que vous souhaitez lancer.n";
exit;
}
for ($i=1; $i<count($argv); $i++) {
$max = (int)$argv[$i];
echo 'Dé '.$i;
if ($max == 0) {
echo ' : erreur';
} else {
echo ' ('.$max.') : ';
echo rand(1,$max);
}
echo "n";
}
Désormais, je peux lancer autant de dés que je souhaite, je dois juste indiquer le nombre de facettes pour chaque dé. Ainsi pour lancer un dé 12, suivi d'un dé 20, suivi d'un dé 8, suivi de 3 dés 6, je tape
php Scripts/de.php 12 20 8 6 6 6
avec le résultat, pour exemple
Dé 1 (12) : 7
Dé 2 (20) : 14
Dé 3 (8) : 1
Dé 4 (6) : 2
Dé 5 (6) : 6
Dé 6 (6) : 3
A vous de choisir quel application vous préférez, et vous pouvez aussi partager vos évolutions dans les commentaires.