2017-03-17 2 views
-1

Donc pour ma classe, nous sommes censés faire une version simplifiée du poker. Par exemple, un tableau {1,2,3,4,5} serait une droite, tandis qu'un tableau {1,1,1,4,5} serait un brelan. Je l'ai fait tout, sauf pour déterminer quel type de main l'utilisateur et voici ce que j'ai jusqu'à présent:Suis-je sur la bonne voie pour déterminer le type de main de poker?

public class handTypes { 

public static void main(String[] args) { 
    int[] testHand = {1,1,3,3,5}; //Just a test array 
    int[] counts = new int [6]; 
    int counter = 0; 

    for(int i=0; i < testHand.length ; i++){ 
     counts[testHand[i]]++; 
    } 

    // Determines a pair or 2 pairs 
    for(int i =0; i <counts.length; i++){ 
     if(counts[i] == 2) 
      counter++; } 

    int option = counter; 

    switch(option){ 
    case 1: 
     System.out.println("You have one pair!"); 
     break; 
    case 2: 
     System.out.println("You have 2 pairs!"); 
     break; 
    } 

    } 
} 

Bien sûr, cela ne fonctionne pas pour une chasse d'eau, 4 d'une sorte, 5 d'un genre, etc. Mais je lis en ligne un petit algorithme qui aide à le déterminer. Disons que le tableau créé "int [] count" contient les valeurs {4,0,1,0,0}, il serait 4 d'un genre alors que les valeurs {1,1,1,1,1} seraient un tout droit. Comment pourrais-je utiliser cela comme une déclaration?

Répondre

0

Une procédure générale commune pour de simples évaluateurs à la main de poker est la suivante:

  1. Trier la main par rang (élevé à bas, Deuces faible, as des As). En partant de la plus haute main (un brelan) et en travaillant vers le bas, déterminez si la main est de ce type et revenez (par exemple, si vous cherchez un brelan, vérifiez que les première et cinquième cartes ont le même rang - Rappelez-vous qu'ils sont triés - si c'est le cas, retournez "un brelan" et vous avez terminé). Votre version simplifiée ne semble pas avoir de flush ou de flush droit, alors passez les.
  2. travailler votre chemin vers le bas par les mains: pour quatre-of-a-kind, vérifiez XXXXY et XYYYY. Pour la maison complète, vérifiez XXXYY et XXYYY. Pour les trajets, cochez XXXYZ, XYYYZ et XYZZZ, etc.
  3. Pour les lignes droites, vérifiez la ligne de cinq, puis le cas spécial 2345A (ce n'est peut-être pas un cas particulier dans votre version).
  4. Si chaque vérification échoue, renvoyez simplement "pas de paire" avec les cartes triées de haut en bas.