Microsoft 365 créer des séquences aléatoires avec possibilités de choix, perdu et nouveau dans excel

ricky1977

XLDnaute Occasionnel
Bonsoir,

Afin de travailler mon jeu au texas holdem poker, plus particulièrement mon jeu PREFLOP ( avant que les cartes communes ne soient distribuées ) de créer des séquences aléatoires afin que ce soit plus efficace .

je souhaite travailler par exemple mon jeu en position MP vs UTG vs3x ( middle position versus un open de UTG de x3 )
pour cela j'ai 5 choix
call
3bet or call
3bet or fold
3bet
fold

j'ai des mains établi précise que je souhaite donc apprendre qui sont les suivantes

call : 77, 88, 99, TT, 98s, T9s, JTs
3bet or call : JJ, ATs, AJs, AQs, AKs ce
3bet or fold : A2s, A3s, A4s, A5s
3bet : AQo, AKo, QQ, KK, AA
fold : toutes les autres combinaisons de 2 cartes restantes


ce que j'aimerai est ceci
pouvoir distribuer 2 cartes aléatoirement qui constitue les 52 cartes du jeu
par exemple : A8o avec possibilités de 5 choix
le but du jeu est de deviner dans quelle catégorie A8 se trouve , si je click sur le bon , une nouvelle combinaison de 2 cartes est distribuée, si je me trompe, j'ai encore 4 choix.

je n'ai pas besoin que cela soit super design non plus, même pas besoin d'avoir de vraies cartes, seulement leurs valeurs suffisent

pour matérialiser encore plus

1- distribution d'une combinaison de 2 cartes aléatoires ( 169 combinaisons )
2- possibilité de choix jusqu’à 5
3- bon choix ou mauvais - nouvelle distribution aléatoire avec jusqu’à 5 nouveaux choix


je n'ai pas beaucoup, voir pratiquement pas de connaissance excel, c'est le bon moyen de m'y mettre, j'aurai besoin d'un coup de pouce afin de savoir comment je pourrais faire pour établir ce petit programme, vers quel types de matériel me tourner afin de gagner du temps .
C'est mon premier poste ici, et je vous remercie d'avance de votre aide

amicalement
Richard
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Voici une macro qui sort 54 mains différentes au hasard extraites du tableau carré en Feuil2!B4:N16
VB:
Option Explicit

Sub ListeSansDoublon()
   Dim TMains(), TAl() As Long, TTir(1 To 54, 1 To 1), L As Long, A As Long
   TMains = Feuil2.[B4].Resize(13, 13).Value
   InitListeAl TAl, 169
   For L = 1 To 54
      A = TAl(L)
      TTir(L, 1) = TMains((A - 1) \ 13 + 1, (A - 1) Mod 13 + 1)
      Next L
   Feuil1.[B7].Resize(54).Value = TTir
   End Sub

Sub InitListeAl(TAl() As Long, Optional ByVal NMax As Long, Optional ByVal Graine As Double)
Rem. ——— Garnit un tableau à une dimension base 1 de numéros sans doublon ou change aléatoirement l'ordre
'        des numéros y étant déjà portés.
'  Arguments :
'     TAl :   Le tableau à traiter.
'     NMax:   Numéro maxi. Si spécifié, le tableau est redimensionné TAl(1 To NMax), puis garni de numéros de 1 à NMax.
'     Graine: Base de départ de la série. Si omis la série sera différente à chaque exécution.
   Dim P As Long, R As Long, X As Long
   If NMax >= 0 Then
      ReDim TAl(1 To NMax): For P = 1 To NMax: TAl(P) = P: Next P
   Else: NMax = UBound(TAl): End If
   If Graine <= 0 Then Randomize Else Rnd -1: Randomize Graine
   For P = NMax To 2 Step -1 ' echange
      R = Int(Rnd * P) + 1: X = TAl(R): TAl(R) = TAl(P): TAl(P) = X
      Next P
   End Sub
Copiez tout le code dans un nouveau module.
La Sub InitListeAl à été repompée du module MFctListeAl du ListeAléat.xlsm
 
Dernière édition:

ricky1977

XLDnaute Occasionnel
A= Ace (As)
K= King (Roi)
s = suited ( un As et un Roi de même couleur ex : As de pique et Roi de pique )
o=off suit ( un As et un Roi de couleur différente ex : As de pique et Roi de trèfle )

Je vous remercie pour la formule, j'ai copié, mais rien ne se passe
 

ricky1977

XLDnaute Occasionnel
cela fonctionne, il y a bien une liste tiré aléatoirement

mais du coup, les réponses ne correspondent plus, car une réponse correspond a une main

je m'explique, je dois apprendre par exemple les mains que je dois relancer en premier de parole UTG ( under the gun )

et ces mains sont précises A2s-A5s, ATs-AKs, ATo,KQo, KTs,J9s, 55+ ( le plus signifie de 55 a AA dans la liste des paires) , toutes ses mains vont dans la catégorie RAISE, toutes les autres FOLD

comment je peux faire pour faire correspondre les réponses qui correspondent aux mains ?
 

ricky1977

XLDnaute Occasionnel
elles y étaient dans la premiere liste, ( le bleu était les bonnes réponses )

j'ai refait une copie en feuille 2 ( en bleu sont les bonnes réponses )

c'est passionnant !

edit :

Je viens de m'apercevoir d'une chose, la liste aléatoire ne fait pas de doublon, en revanche la liste tiré de la liste aléatoire en G2 en fait
 

Pièces jointes

  • POKERTRAINING3.xlsm
    33.1 KB · Affichages: 16
Dernière édition:

Dranreb

XLDnaute Barbatruc
Comprends pas. G2 c'est une seule cellule alors la notion de doublon dedans ne s'applique pas. Je ne me suis pas occupé de cette cellule G2.
En tout cas vous avez maintenant de quoi constituer une liste de mains sans doublon.
À vous de voir ce que vous voulez en faire.
 

Dranreb

XLDnaute Barbatruc
Il serait possible de mettre les bonnes réponses dans le tableau carré en prévoyant deux lignes par main, la bonne réponse étant chaque fois en dessous du code de la main.
Comme ça on aurait la bonne réponse tout de suite lors du tirage des 54 mains et on pourrait la mettre dans une colonne masquée à coté des mains tirées.
 

ricky1977

XLDnaute Occasionnel
C'est une très bonne idée

je me demande si ce n'est pas le code qui est dans la macro lié au bouton "Next" , celui là-même qui pioche dans la liste aléatoire pour l'afficher en G2 ( celui la qui fait des doublons ) ?

VB:
Option Explicit

'variable de module conserve sa valeur entre deux appels de testmot()
'Premier = True si on a affiché un mot anglais à traduire
'Premier = false si on a affiché la traduction

Dim Premier As Boolean

Sub TestMot()
If Premier Then
  'on affiche la traduction en utilisant directement les fonctions
  'de Excel par le biais de Application.WorksheetFunction
  Range("H2") = Application.WorksheetFunction.Index(Range("motfr"), _
      Application.WorksheetFunction.Match(Range("G2"), Range("MotGB"), 0))
  'la seconde étape (traduction affichée) est faite
  Premier = False
Else
  'on efface la traduction française précédente
  Range("H2") = ""
  'on affiche le mot anglais à traduire en utilisant directement les fonctions
  'de Excel par le biais de Application.WorksheetFunction
  Range("G2") = Application.WorksheetFunction.Index(Range("MotGb"), _
      Application.WorksheetFunction.RandBetween(1, Range("MotGb").Rows.Count))
  'la première étape (mot à traduite) est faite
  Premier = True
End If
 
End Sub
Je préfère de loin votre code car ça me permet de reset, mais je pense que c'est la même démarche, faire apparaitre la main en G2 grace a une cellule ( ici "next) et une fois que la réponse est mentalement donnée, je click de nouveau sur "next" pour afficher la réponse

c'est bien résumé ?
 
Dernière édition:

ricky1977

XLDnaute Occasionnel
Bonsoir,
dans le lien , j'ai rajouté tous les tableaux que je dois apprendre en Feuill Ranges (ci joint) et que j'aimerais donc incorporer dans le quizz
il y a dans chaque tableaux toutes les actions que je dois effectuer ( comme l'image ici )
Capture d’écran (511).png

en rouge 3bet
en violet 3bet or Call
en bleu Call
et marron 3bet or Fold
en blanc c'est tout ce que je dois fold

il faudrait que je fasse un quizz par tableau ( je me demande si il est possible de dire a excel de trouver par couleur l'action a effectuer afin de gagner du temps ?
 

Pièces jointes

  • BPCtrain.xlsm
    252 KB · Affichages: 5

Dranreb

XLDnaute Barbatruc
Je n'ai pas touchée à la macro Next et le code que vous me montrez ne pioche pas dans une liste aléatoire: il tire un numéro au hasard avec WorksheetFunction.RandBetween sans se préoccuper si ça fait doublon avec quoi que ce soit d'autre ou pas.
Vous n'avez finalement pas retenu la solution d'inscrire les bonnes réponses en dessous des codes des mains ? La couleur n'est pas du tout pratique. On ne peut pas la charger en une seule instruction dans un tableau dynamique de variant, et le traitement pour charger les couleurs ne serait pas aussi instantané parce qu'il faudrait parcourir la plage par deux boucles imbriquées cellule par cellule individuellement, ce qui serait à peu près 169 fois plus lent. Un numéro de bonne réponse irait à la rigueur aussi, et serait toujours au moins plus facile à exploiter que la couleur.
En revanche si les codes des mains sont toujours les mêmes on pourrait à la rigueur ne plus mettre que les bonnes réponses dans les tableaux (ou leur numéro) et plus du tout les mains.
Il ne semble après tout pas très compliqué de reconstituer le code de la main à partir des positions X Y dans les tableaux des réponses.
Pour un repérage visuel seulement, des mises en formes conditionnelles pourraient mettre des couleurs dans vos tableaux en fonction des textes des réponses (ou de leurs numéros).
 
Dernière édition:

ricky1977

XLDnaute Occasionnel
je comprend pour la macro next

si, je me demandais justement, au lieu de les noter ( ce qui prendrait énormément de temps ) si il n'y aurait pas une macro ( ou autre ) qui récupère les bonnes réponses selon le code couleur ?
 

Dranreb

XLDnaute Barbatruc
Je vous ai répondu en long et en large à ce sujet. Je n'y accroche pas du tout.
Cela dit on pourrait écrire une petite moulinette qui met le code de couleur une fois pour toutes dans les cellules. Il ne resterait plus qu'à les remplacer par les bonnes réponses dans toute la feuille, alors ça ne prendrait pas énormément de temps à faire.
 

Statistiques des forums

Discussions
315 106
Messages
2 116 271
Membres
112 706
dernier inscrit
Pierre_98