Admin/Dev

17
Avril
2020

Programmation : Créer un dé, à lancer sur son Mac

Publié par sky

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.

 
 
Commentaires
Aucun commentaire pour le moment.

 

Poster un commentaire
En postant sur skymac.org, je m'engage à être courtois et à ce que mon message soit pertinent avec le sujet de l'article.
En outre, j'accepte, sans condition, que mon message soit refusé et supprimé si ces règles ne sont pas appliquées.
Captcha indisponible
Pour valider le formulaire, vous devez confirmer que vous êtes bien une personne. Actuellement, la fonctionnalité est indisponible. Vous devez activer le service ReCaptcha dans le gestionnaire des cookies, et donc consentir à l'utilisation de ses cookies.
Ouvrir le panneau de gestion des cookies
Fermer le panneau
Ce site utilise des cookies pour assurer son bon fonctionnement. Il utilise aussi des cookies issues de services tiers permettant de proposer des fonctionnalités avancées. À tout moment, vous pouvez choisir quels services vous souhaitez activer ou refuser, afin de retirer votre consentement quant à l'utilisation des cookies.
 
Personnalisation des services
Vous êtes libre de choisir quels services vous souhaitez activer. En autorisant ces services tiers, vous acceptez le dépôt et la lecture de cookies et l'utilisation de technologies de suivi nécessaires à leur bon fonctionnement. En retirant votre consentement pour certains de ces services, certaines fonctionnalités du site peuvent ne plus fonctionner.
Navigation du site  En savoir plus
Le site écrit un cookie de session permettant son bon fonctionnement et aidant à la navigation. Il ne peut être désactivé.
Utilisation : 1 cookie, enregistre l'identifiant de la session.
Durée de vie : Le cookie est présent pendant toute la session sur le site. Il devient obsolète après 24 minutes d'inactivité.
Obligatoire
Popup Média
Afficher des vidéos depuis Yoube ou Dailymotion.
ReCaptcha  En savoir plus
Permet de valider que les visiteurs sont bien des humains lorsqu'ils valident des formulaires.
 
Tout accepter Tout refuser Gérer