Cette application va vous permettre­ de­ réaliser­ un ­jeu­ de­ Pierre - Feuille - Ciseau.­ Dans ­ce ­jeu de­ hasard,­ vous­ serez­ amené­ affronter la carte Arduino en choisissant une ­figure­ parmi­ 3­ au choix­ (Pierre­-­Feuille­-­Ciseau)­ à ­l’aide ­de ­3­ boutons-poussoirs. Ces figures s'afficheront sur une matrice à Leds MIKROE-1993 7x10­R­Click.­ 


Application Pierre - Feuille - Ciseau


Les modules ClickBoard™ sont de petits modules additionnels développés par la société MikroElektronika. Ils sont conçus pour s’enficher facilement sur une multitude de cartes de développement via l’interface mikroBUS™, un standard matériel et logiciel pensé pour simplifier le prototypage. Elles permettent d’ajouter rapidement une fonctionnalité sans câblage complexe. Leur format DIL vous permettra également des les utiliser sur des plaques breadboard (boite de connexions sans soudure).

La présentation du module MIKROE-1993 utilisé dans l'application qui va suivre a déjà fait l'objet d'une description complète dans notre Blog Pilotage d'une matrice 70 leds avec un Arduino. Le raccordement entre l'Arduino et le module Click Board MIKROE-1993 7x10­R­Click reste identique à celui décrit dans le blog cité ci-avant.   
 

Description du fonctionnement du jeu "Pierre - Feuille - Ciseau"

Ce jeu jeu se gagne sur une manche en 5 points. Au début de la partie, les 2 joueurs (vous et la carte Arduino) disposent d'un score nul et la matrice à led "7x10 R Click" affiche 0 - 0. Ensuite la carte Arduino vous invitera (via le message GO ! qui s'affiche sur la matrice à led "7x10 R Click") à choisir une figure (à l'aide des 3 boutons poussoirs).

Au moment où vous solliciterez le bouton-poussoir correspondant à la figure de votre choix, la carte Arduino choisira également une de ces 3 figures (de façon aléatoire). Les 2 figures (la vôtre et celle de la carte Arduino seront alors affichées côte à côte sur la matrice à leds (exploitée pour l'occasion horizontalement).
 

Pictogramme Pierre Feuille Ciseau


Votre figure s'affichera sur la partie droite de la matrice et la figure de la carte Arduino s'affichera sur la partie gauche de la matrice. A ce moment les 2 figures s affronteront selon les règles suivantes:

- La pierre bat le ciseau (en le cassant ou en l'émoussant)
- La feuille bat la pierre (en l'enveloppant)
- Le ciseau bat la feuille (en la coupant)

La figure gagnante fera remporter 1 point à son propriétaire avec en prime une petite animation matérialisée par une ligne de leds qui balaie la matrice de haut en bas en effaçant le côté de la matrice dans lequel se trouve la figure qui a perdue (en laissant ainsi seulement sur la matrice la figure gagnante).


Modules ClickBoard MIKROE-1993 - Jeu Pierre Feuille Ciseau


A ce stade, la carte Auduino indiquera l'état du score pendant quelques instants avant d'afficher le message GO ! pour vous inviter à choisir à nouveau une figure.

A noter que si vous avez choisi la même figure que celle de la carte Arduino, ces figures s'annulent (aucun point n'est gagné) et les 2 figures seront effacées via l'animation décrite ci-dessus.
        

Schémas du jeu "Pierre- Feuille - Ciseau"

Selon que vous utiliserez le module ClickBoard MIKROE-1993 seul et directement raccordé à votre carte Arduino ou que vous utiliserez une carte d'interface MIKROE-1581, réalisez un des 2 schémas ci-dessous.
 

Utilisation directe du module MIKROE-1993 avec votre carte Arduino


Schéma de câblage Pierre - Feuille - Ciseau sans carte MIKROE-1581



Utilisation du module MIKROE-1993 en association avec la carte d'interface MIKROE-1581 et votre carte Arduino
 

Schéma de câblage Pierre - Feuille - Ciseau avec carte MIKROE-1581
 

Dans tous les cas, il vous faudra avoir recours 3 boutons poussoirs et à 3 résistances (utilisées en tant que résistances de tirage au +).  

Description du programme du jeu "Pierre - Feuille - Ciseau"

Comme indiqué ci-avant le programme reprend une grande partie des initialisations et fonctions utilisées dans les applications du sablier animé et du jeu de tennis 2 joueurs. Celles-ci concernent la déclaration des broches attribuées à la gestion de la matrice ainsi qu'aux 3 broches sur lesquelles sont raccordés les boutons poussoirs.

Une variable de type tableau à 2 dimensions MScore[11][7] est utilisée pour définir la représentation des chiffres 0 à 5 (lesquels serviront à indiquer les scores) ainsi que les lettres GO ! et les 3 figures Pierre / Feuille / Ciseau.

Une autre variable de type tableau à 2 dimensions Matrice[2][7] est utilisée pour le stockage des leds à afficher sur la matrice, tandis que les variables ScoreJ1, ScoreJ2 et MainJ1, MainJ2 permettront de mémoriser votre score et celui de la carte Arduino ainsi que la sélection du signe que vous (et la carte Arduino) aurez choisi.
 
Après l'initialisation du fonctionnement des différents ports, le programme commence par afficher le score de début de partie. Pour ce faire, nous avons créé une fonction: AffScore(ScoreJ1,ScoreJ2); Comme vous pouvez le constater, les variables ScoreJ1 et ScoreJ2 sont présentes à l'intérieur des parenthèses lorsqu'on appelle la fonction.
 
Si nous examinons la structure de la fonction en question: void AffScore(byte MatriceD, byte MatriceG) vous pouvez également constater la présence de 2 autres variables MatriceD et MatriceG. Ces dernières vont automatiquement recevoir la valeur des variables ScoreJ1 et ScoreJ2 lorsque vous appelerez la fonction afin d'afficher le score sur la matrice.

Le programme continue ensuite en affichant le mot GO ! sur la matrice et en attendant qu'une des 3 touches soit sollicitée. Si tel est le cas, la variable MainJ2 sera initialisée avec la valeur 6, 7 ou 8 en fonction du signe choisi. Puis la variable MainJ1 recevra un nombre aléatoire également compris entre 6 et 8. Ces valeurs ont été choisies car elles correspondent aux emplacements des signes dans la variable Matrice[2][7].

A ce stade, le programme appelle à nouveau la fonction AffScore(MainJ1,MainJ2); mais en passant cette fois ci en paramètre d'entrée les variables MainJ1 et bafin d'afficher non plus le score... mais les signes que vous et la carte Arduino avez choisi.
 
Maintenant le programme va tester si vous et la carte Arduino avez choisi le même signe ou (si tel n'est pas le cas), quel est le signe qui prend le dessus sur l'autre (selon les règles indiquées ci-avant). En fonction du résultat, on appelle une nouvelle fonction EffMatrice(MainJ1, MainJ2,1,1); avec un passage de paramètres permettant de sélectionner les signes à afficher ainsi que les signes à effacer (celui de gauche ou de droite... ou les deux... via l'animation décrite ci-avant).

Suivant les cas, votre score ou celui de la carte Arduino sera incrémenté et affiché. Le programme entre dans une boucle sans fin faisant clignoter le score des que vous (ou la carte Arduino) arrive à 5 points.
   
   
Vous pouvez retrouver le code source de ce programme en cliquant ici : code source Arduino & modules Click Board

Produit ajouté à ma liste