Je crée un jeu de poker - Texas Holdem (5 cartes sur la table et 2 cartes pour moi-même).Évaluation de la main de poker à travers LINQ
Je l'ai déjà créé des fonctions de chasse, chasse d'eau droite et droite et je suis resté bloqué sur l'évaluation si la main a:
1. Quatre d'une sorte
2. Brelan
3. Full
4. Deux paires
5. une paire
Je crois que je peux écrire une fonction pour tous ce qui précède, qui renverra une chaîne correspondante.
J'ai créé une liste qui détient la liste des cartes (7 cartes) Carte de classe a une cardNumber de propriété de type entier (As = 1, Deux = 2, Trois = 3, etc.)
Voici ma fonction :
Public Shared Function ofAKind(hand As List(Of Card)) As String
Dim result As String = ""
Dim counter As Integer
Dim IntegerList As New List(Of Integer)
'creating a list of integers that are representing faces of cards
Do
IntegerList.Add(hand.Item(counter).cardNumber)
counter += 1
Loop Until counter = hand.Count
Dim groupedIntegers = From Int In IntegerList
Group By Int
Into grouping = Group, Count()
'and here is my problem: how can I make such a grouping? below is just pseudocode.
'When using a debugger, I see that it groups them well. It is just that I do not know
'how to use LINQ to extract that grouping into the below if statement and get a corresponding string.
'if grouping = 4 Then
'result = "Four of a kind"
'if grouping = 3 andAlso grouping = 2 Then
'result = "Full House"
'if grouping = 2 andAlso grouping = 2 Then
'result = "Two Pairs"
'if grouping = 2 Then
'result = "Pair"
Return result
End Function
Vous pouvez classer toute la main dans une méthode utilisant 2-3 requêtes LINQ - vous en quelque sorte dois depuis que vous voulez tester dans l'ordre de main de poker. Retourner une chaîne n'est pas suffisant si vous voulez comparer les mains. Si 2 mains ont 1 paire, ce sont les paires qui déterminent qui bat qui. Surtout avec HoldEm, vous devez également être en mesure de rompre les liens avec les cartes hautes (Pair Qs, Ace Salut vs Pair Queens 9 Salut). – Plutonix
Plutonix. Merci pour votre commentaire. Ce que vous avez dit est tout à fait logique et je suis entièrement d'accord. J'aurais dû mentionner dès le début que j'essayais juste de construire une version simple du jeu. Et pour ce but particulier, il me suffirait de connaître ma main et de ne pas la comparer à d'autres mains. –
comment sont stockées les cartes? comment est la classe de carte et est-ce 1 à 13? –