machine à sous

Creations

FAFAbuino69

5 years ago

mon premier programme.

Je voudrais faire une machine à sous.

Mon souci est l’incrémentation de la variable argent si 2 ou 3 chiffres sont égaux.

Je suis coincé.

Je dois m'y prendre mal. C'est certain.

Une idée ?

View full creation

Mokona

NEW 5 years ago

Hello,


en reprenant l'existant de ton programme, cela peut se passer comme ça :

if (x == y && y == z) { argent += GROS_GAIN }

else if (x == y || x == z || y == z) { argent += PETIT_GAIN }


Ce n'est probablement pas le plus élégant, mais pour trois variables, il y a peu de combinaisons, et donc c'est probablement suffisant.


Autres remarques : a, b, c, x, y, z ne sont pas des noms de variables terriblement descriptives. Si ton programme grandi, tu vas rapidement t'y perdre. Ces variables étant liées sémantiquement, tu peux aussi passer par un tableau int ancien_nombres[3] et int nouveau_nombres[3].

Je ne comprends pas bien la logique du tirage aléatoire. x est tiré entre 0 et 8 (inclue) (il manque peut-être un +1). Mais y est tiré entre 0 et le résultat de x exclu. Puis z entre le résultat 0 et le résultat de y exclu.

Autrement dit, aucun nombre ne pourra être égal avec un autre.


FAFAbuino69

5 years ago

Super, merci pour votre aide. cela fonctionne à présent.

Je vais améliorer la présentation maintenant.

Avec sons et lumières.

Merci !!!

jicehel

NEW 5 years ago

En principe pour une machine à sous, le principe de base c'est de tirer un nombre entre 0 et le nombre de symbole -1 ou de 1 au nombre de symboles donc s'il y en a 9 ça donne pour un nombre de 0 à 8:

x=random(9);

mais tu mets la même pour y et Z (y=random(9) et z=random(9))

sinon si tu veux entre 1 et 9 tu mets x=random(8) + 1 ;

Après tu devrais faire plus de procédure par exemple pour un tirage

void tirage(num) {

      x=random(num);
     y=random(num);
     z=random(num);
     gb.display.print(x);
     gb.display.print(y);
     gb.display.println(z);

}


du coup tu peux l'appeler dès le setup avec tirage(9);

et après tu le mets dans le loop

Tu peux aussi faire une autre procédure pour actualiser l'affichage des autres données (argent, etc ...)


FAFAbuino69

5 years ago

je ne savais pas que l'on pouvais créer plusieurs procédures...

A quel endroit se place t'elle ?

FAFAbuino69

NEW 5 years ago

Mokona Mokona

Super, merci pour votre aide. cela fonctionne à présent.

Je vais améliorer la présentation maintenant.

Avec sons et lumières.

Merci !!!

jicehel

NEW 5 years ago

Au fait si tu veux utiliser des graphiques plus tard, tu peux utiliser ceux là si tu veux:


Il y a un sprite pour l’arrêt et un sprite pour la roue qui tourne





FAFAbuino69

5 years ago

Merci.

Il faut juste maintenant que je comprenne comment remplacer les chiffres par des sprites.


FAFAbuino69

NEW 5 years ago

jicehel jicehel

Merci.

Il faut juste maintenant que je comprenne comment remplacer les chiffres par des sprites.


jicehel

NEW 5 years ago

Bon courage  ;) et bon apprentissage

FAFAbuino69

NEW 5 years ago

jicehel jicehel

je ne savais pas que l'on pouvais créer plusieurs procédures...

A quel endroit se place t'elle ?

jicehel

NEW 5 years ago

Tu peux les mettre ou tu veux. Tu peux même diviser ton source en plusieurs fichiers mais je te conseil pour commencer de n'en faire qu'un (c'est plus simple) après tu pourras regarder le tuto 1942shooter qui montre un peu comment organiser un programme en plusieurs parties "par thème".

Bon donc sinon pour le moment, le plus simple c'est de mettre tes procédures dans ton source, tu peux les mettre ou tu veux. Par exemple avant la procédure setup. Tu a intérêt a bien découper ton programme en procédures ayant une fonction bien définie avec ou sans paramètre selon le besoin.

FAFAbuino69

NEW 5 years ago

Ce que j'aimerais c'est que le rouleau démarre ou s’arrête par pression du bouton UP.

Je dois avoir un souci d'organisation de mon programme.

Je vais a repartir à zéro.

J'ai surtout du mal a comprendre comment organiser et structurer un programme.

Comment faire pour que le rouleau obéisse à la pression d'une touche ?