2017-10-28 6 views
-1

나는 완전히 Java에 익숙하지 않으며 다른 방식으로이 작업을 수행 할 수있는 배열에 대해 충분히 알지 못합니다. 내 손이 서로 옆에있는 숫자를 주더라도 출력 할 수없는 이유를 말해 줄 수 있습니까? 로얄 플러시에 대한Statement에서 결과를 출력하지 않는 Java Poker 프로그램

public class PokerHand { 
    public static void main(String[] args) { 
    String[] SUITS = { 
      "Clubs", "Diamonds", "Hearts", "Spades" 
    }; 

    String[] RANKS = { 
      "2", "3", "4", "5", "6", "7", "8", "9", "10", 
      "Jack", "Queen", "King", "Ace" 
    }; 


    int n = SUITS.length * RANKS.length; 
    String[] deck = new String[n]; 
    for (int i = 0; i < RANKS.length; i++) { 
     for (int j = 0; j < SUITS.length; j++) { 
      deck[SUITS.length * i + j] = RANKS[i] + " of " + SUITS[j]; 
     } 
    } 

    // for statement to randomize output 
    for (int i = 0; i < n; i++) { 
     int r = i + (int) (Math.random() * (n - i)); 
     String temp = deck[r]; 

     deck[r] = deck[i]; 
     deck[i] = temp; 
    } 

    //to output 5 random cards 
    for (int i = 0; i < 5; i++) { 
     System.out.println(deck[i]); 

// 테스트 //////////////////////////////////////

 if (RANKS.equals("Jack") && RANKS.equals("10") && RANKS.equals("Queen") && RANKS.equals("King") && RANKS.equals("Ace")) { 

      System.out.println("Royal Flush"); 

     } 

// 스트레이트 플러시

 if (RANKS.equals("Ace") && RANKS.equals("2") && RANKS.equals("3") && RANKS.equals("4") && RANKS.equals("5")) { 

      System.out.println("Straight flush 1-5"); 

     } 
     if (RANKS.equals("2") && RANKS.equals("3") && RANKS.equals("4") && RANKS.equals("5") && RANKS.equals("6")) { 

      System.out.println("Straight Flush 2 - 6"); 


     } 
     if (RANKS.equals("3") && RANKS.equals("4") && RANKS.equals("5") && RANKS.equals("6") && RANKS.equals("7")) { 

      System.out.println("Straight Flush 3-7"); 

     } 
     if (RANKS.equals("4") && RANKS.equals("5") && RANKS.equals("6") && RANKS.equals("7") && RANKS.equals("8")) { 

      System.out.println("Straight Flush 4-8"); 

     } 

     if (RANKS.equals("5") && RANKS.equals("6") && RANKS.equals("7") && RANKS.equals("8") && RANKS.equals("9")) { 

      System.out.println("Straight Flush 5-9"); 

     } 
     if (RANKS.equals("6") && RANKS.equals("7") && RANKS.equals("8") && RANKS.equals("9") && RANKS.equals("10")) { 

      System.out.println("Straight Flush 6-10"); 

     } 
     if (RANKS.equals("7") && RANKS.equals("8") && RANKS.equals("9") && RANKS.equals("10") && RANKS.equals("Jack")) { 

      System.out.println("Straight Flush 7-J"); 

     } 
     if (RANKS.equals("8") && RANKS.equals("9") && RANKS.equals("10") && RANKS.equals("Jack") && RANKS.equals("Queen")) { 

      System.out.println("Straight Flush 8-Q"); 

     } 
     if (RANKS.equals("9") && RANKS.equals("10") && RANKS.equals("Jack") && RANKS.equals("Queen") && RANKS.equals("King")) { 

      System.out.println("Straight Flush 9-K"); 

     } 
     if (RANKS.equals("10") && RANKS.equals("Jack") && RANKS.equals("Queen") && RANKS.equals("King") && RANKS.equals("Ace")) { 

      System.out.println("Straight Flush 10-Ace"); 

     } 
일종의

// 네

 if (RANKS.equals("Ace") && RANKS.equals("Ace") && RANKS.equals("Ace") && RANKS.equals("Ace")) { 

      System.out.println("Four of a kind"); 

     } 

     if (RANKS.equals("2") && RANKS.equals("2") && RANKS.equals("2") && RANKS.equals("2")) { 

      System.out.println("Four of a kind"); 

     } 
     if (RANKS.equals("3") && RANKS.equals("3") && RANKS.equals("3") && RANKS.equals("3")) { 

      System.out.println("Four of a kind"); 

     } 
     if (RANKS.equals("4") && RANKS.equals("4") && RANKS.equals("4") && RANKS.equals("4")) { 

      System.out.println("Four of a kind"); 

     } 
     if (RANKS.equals("5") && RANKS.equals("5") && RANKS.equals("5") && RANKS.equals("5")) { 

      System.out.println("Four of a kind"); 

     } 
     if (RANKS.equals("6") && RANKS.equals("6") && RANKS.equals("6") && RANKS.equals("6")) { 

      System.out.println("Four of a kind"); 

     } 

     if (RANKS.equals("7") && RANKS.equals("7") && RANKS.equals("7") && RANKS.equals("7")) { 

      System.out.println("Four of a kind"); 

     } 
     if (RANKS.equals("8") && RANKS.equals("8") && RANKS.equals("8") && RANKS.equals("8")) { 

      System.out.println("Four of a kind"); 

     } 
     if (RANKS.equals("9") && RANKS.equals("9") && RANKS.equals("9") && RANKS.equals("9")) { 

      System.out.println("Four of a kind"); 

     } 
     if (RANKS.equals("10") && RANKS.equals("10") && RANKS.equals("10") && RANKS.equals("10")) { 

      System.out.println("Four of a kind"); 

     } 
     if (RANKS.equals("Jack") && RANKS.equals("Jack") && RANKS.equals("Jack") && RANKS.equals("Jack")) { 

      System.out.println("Four of a kind"); 

     } 
     if (RANKS.equals("Queen") && RANKS.equals("Queen") && RANKS.equals("Queen") && RANKS.equals("Queen")) { 

      System.out.println("Four of a kind"); 

     } 
     if (RANKS.equals("King") && RANKS.equals("King") && RANKS.equals("King") && RANKS.equals("King")) { 

      System.out.println("Four of a kind"); 

     } 

// FULL HOUSE

 if (RANKS.equals("Ace") && RANKS.equals("Ace") && RANKS.equals("2") && RANKS.equals("2") && RANKS.equals("2")) { 

      System.out.println("Full House"); 

     } 
     if (RANKS.equals("2") && RANKS.equals("2") && RANKS.equals("3") && RANKS.equals("3") && RANKS.equals("3")) { 

      System.out.println("Full House"); 

     } 
     if (RANKS.equals("3") && RANKS.equals("3") && RANKS.equals("4") && RANKS.equals("4") && RANKS.equals("4")) { 

      System.out.println("Full House"); 

     } 
     if (RANKS.equals("4") && RANKS.equals("4") && RANKS.equals("5") && RANKS.equals("5") && RANKS.equals("5")) { 

      System.out.println("Full House"); 

     } 
     if (RANKS.equals("5") && RANKS.equals("5") && RANKS.equals("6") && RANKS.equals("6") && RANKS.equals("6")) { 

      System.out.println("Full House"); 

     } 

     if (RANKS.equals("6") && RANKS.equals("6") && RANKS.equals("7") && RANKS.equals("7") && RANKS.equals("7")) { 

      System.out.println("Full House"); 

     } 
     if (RANKS.equals("7") && RANKS.equals("7") && RANKS.equals("8") && RANKS.equals("8") && RANKS.equals("8")) { 

      System.out.println("Full House"); 

     } 
     if (RANKS.equals("8") && RANKS.equals("8") && RANKS.equals("9") && RANKS.equals("9") && RANKS.equals("9")) { 

      System.out.println("Full House"); 

     } 
     if (RANKS.equals("9") && RANKS.equals("9") && RANKS.equals("10") && RANKS.equals("10") && RANKS.equals("10")) { 

      System.out.println("Full House"); 

     } 
     if (RANKS.equals("10") && RANKS.equals("10") && RANKS.equals("Jack") && RANKS.equals("Jack") && RANKS.equals("Jack")) { 

      System.out.println("Full House"); 

     } 
     if (RANKS.equals("Jack") && RANKS.equals("Jack") && RANKS.equals("Queen") && RANKS.equals("Queen") && RANKS.equals("Queen")) { 

      System.out.println("Full House"); 

     } 
     if (RANKS.equals("Queen") && RANKS.equals("Queen") && RANKS.equals("King") && RANKS.equals("King") && RANKS.equals("King")) { 

      System.out.println("Full House"); 

     } 
     if (RANKS.equals("King") && RANKS.equals("King") && RANKS.equals("Ace") && RANKS.equals("Ace") && RANKS.equals("Ace")) { 

      System.out.println("Full House"); 

     } 

/// FLUSH

 if (SUITS.equals("Clubs") && SUITS.equals("Clubs") && SUITS.equals("Clubs") && SUITS.equals("Clubs") && SUITS.equals("Clubs")) { 

      System.out.println("Full House"); 

     } 
     if (SUITS.equals("Diamonds") && SUITS.equals("Diamonds") && SUITS.equals("Diamonds") && SUITS.equals("Diamonds") && SUITS.equals("Diamonds")) { 

      System.out.println("Full House"); 

     } 
     if (SUITS.equals("Hearts") && SUITS.equals("Hearts") && SUITS.equals("Hearts") && SUITS.equals("Hearts") && SUITS.equals("Hearts")) { 

      System.out.println("Full House"); 

     } 
     if (SUITS.equals("Spades") && SUITS.equals("Spades") && SUITS.equals("Spades") && SUITS.equals("Spades") && SUITS.equals("Spades")) { 

      System.out.println("Full House"); 

     } 


     //STRAIGHT 



     if (RANKS.equals("Ace") && RANKS.equals("2") && RANKS.equals("3") && RANKS.equals("4") && RANKS.equals("5")) { 

      System.out.println("Straight "); 

     } 
     if (RANKS.equals("2") && RANKS.equals("3") && RANKS.equals("4") && RANKS.equals("5") && RANKS.equals("6")) { 

      System.out.println("Straight"); 


     } 
     if (RANKS.equals("3") && RANKS.equals("4") && RANKS.equals("5") && RANKS.equals("6") && RANKS.equals("7")) { 

      System.out.println("Straight"); 

     } 
     if (RANKS.equals("4") && RANKS.equals("5") && RANKS.equals("6") && RANKS.equals("7") && RANKS.equals("8")) { 

      System.out.println("Straight "); 

     } 

     if (RANKS.equals("5") && RANKS.equals("6") && RANKS.equals("7") && RANKS.equals("8") && RANKS.equals("9")) { 

      System.out.println("Straight"); 

     } 
     if (RANKS.equals("6") && RANKS.equals("7") && RANKS.equals("8") && RANKS.equals("9") && RANKS.equals("10")) { 

      System.out.println("Straight"); 

     } 
     if (RANKS.equals("7") && RANKS.equals("8") && RANKS.equals("9") && RANKS.equals("10") && RANKS.equals("Jack")) { 

      System.out.println("Straight"); 

     } 
     if (RANKS.equals("8") && RANKS.equals("9") && RANKS.equals("10") && RANKS.equals("Jack") && RANKS.equals("Queen")) { 

      System.out.println("Straight"); 

     } 
     if (RANKS.equals("9") && RANKS.equals("10") && RANKS.equals("Jack") && RANKS.equals("Queen") && RANKS.equals("King")) { 

      System.out.println("Straight"); 

     } 
     if (RANKS.equals("10") && RANKS.equals("Jack") && RANKS.equals("Queen") && RANKS.equals("King") && RANKS.equals("Ace")) { 

      System.out.println("Straight "); 

     } 

     //Three of a kind 

     if (deck.equals("Ace")) 

      System.out.println("TOAK"); 

    } 
    if (deck.equals("2")) { 

     System.out.println("TOAK"); 

    } 

    if (deck.equals("3")) { 

     System.out.println("TOAK"); 

    } 

    if (deck.equals("4")) 

    { 

     System.out.println("TOAK"); 

    } 
    if (deck.equals("5")) { 

     System.out.println("TOAK"); 

    } 
    if (deck.equals("6")) { 

     System.out.println("TOAK"); 

    } 
    if (deck.equals("7")) { 

     System.out.println("TOAK"); 

    } 
    if (deck.equals("8")) { 

     System.out.println("TOAK"); 

    } 
    if (deck.equals("9")) { 

     System.out.println("TOAK"); 

    } 
    if (deck.equals("10")) { 

     System.out.println("TOAK"); 

    } 
    if (deck.equals("Jack")) { 

     System.out.println("TOAK"); 

    } 
    if (deck.equals("Queen")) { 

     System.out.println("TOAK"); 

    } 
    if (deck.equals("King")) { 

     System.out.println("TOAK"); 

    } 

// 두 쌍 (deck.equals ("에이스") & & deck.equals ("2"))의 경우 {

 System.out.println("TP"); 

    } 
    if (deck.equals("Ace") && deck.equals("2")) { 

     System.out.println("TP"); 

    } 

    //One Pair 


    if (deck.equals("Ace") && deck.equals("Ace")) 

    { 

     System.out.println("TP"); 

    } 
    if (deck.equals("2") && deck.equals("2")) 

    { 

     System.out.println("TP"); 

    } 
    if (deck.equals("3") && deck.equals("3")) 

    { 

     System.out.println("TP"); 

    } 
    if (deck.equals("4") && deck.equals("4")) 

    { 

     System.out.println("TP"); 

    } 
    if (deck.equals("5") && deck.equals("5")) 

    { 

     System.out.println("TP"); 

    } 
    if (deck.equals("6") && deck.equals("6")) 

    { 

     System.out.println("TP"); 

    } 
    if (deck.equals("7") && deck.equals("7")) 

    { 

     System.out.println("TP"); 

    } 
    if (deck.equals("8") && deck.equals("8")) 

    { 

     System.out.println("TP"); 

    } 
    if (deck.equals("9") && deck.equals("9")) 

    { 

     System.out.println("TP"); 

    } 
    if (deck.equals("10") && deck.equals("10")) 

    { 

     System.out.println("TP"); 

    } 
    if (deck.equals("Jack") && deck.equals("Jack")) 

    { 

     System.out.println("TP"); 

    } 
    if (deck.equals("Queen") && deck.equals("Queen")) 

    { 

     System.out.println("TP"); 

    } 
    if (deck.equals("King") && deck.equals("King")) 

    { 

     System.out.println("TP"); 


    } 

    //NO PAIR 



} 

}

+0

제공된 코드의 출력은 (https://ideone.com/o3HaD50) :' 8 of Hearts 하트 오브 에이스 클럽 5 개 다이아몬드 8 개 하트 7 개 '출력이 없다는 것은 무엇을 의미합니까? – Hex

+0

죄송합니다. ifStatements에서 출력이 나오지 않는다는 것을 의미합니다. 누군가 내 오류를 지적 할 필요가 있습니다. 감사합니다. (내가 쓴 카드가 5 장이라도 상관 없습니다.) – user5348367

+2

of 명령문의 조건은 이해가되지 않습니다. 배열 8 자리 배열 객체를 일부 문자열 리터럴과 비교하고 있습니다. - 필드 랭킹과 슈트가있는 클래스 카드를 중심으로 프로그램을 재 설계해야하며 5 개의 객체 속성을보고 손을 분석해야합니다. – laune

답변

0

알다시피, 전체 배열을 String과 비교하고 있습니다. 이것은 결코 결과에 있습니다. 이 작업을 수행하려면 배열의 항목을 비교해야합니다.

는 예를 들어, 배열 String[] handRanks을 가지고, 당신은 당신이 배열의 어떤 위치에서 어떤 계급이있는 경우 알고 싶은, 그래서 당신은 배열의 모든 위치를 확인하는 for 루프를 사용하는 방법을 만들 수 있습니다 이 같은 :

public boolean hasRank(String rank) { 
    for(int i = 0; i < handRanks.length; i++) { 
     if(handRanks[i].equals(rank)) { 
      return true; 
     } 
    } 

    return false; 
} 

은 그럼 당신은 예를 들어, 로얄 플러시 테스트를 할 수있는 것 :

if(hasRank("Jack") && hasRank("10") && hasRank("Queen") && hasRank("King") && hasRank("Ace")) { 
    System.out.println("Royal flush find!"); 
}