-1

I am completely new to Java and I don't know enough about arrays to do this in a different manner. Can you tell me why nothing will output even when my hand gives me numbers that are next to each other?

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]);

//Test for royal flush//////////////////////////////////////

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

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

        }

//Straight 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");

        }

//Four of a kind

        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");

    }

//Two Pairs if (deck.equals("Ace") && 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



}

}

  • The output of code you provided is (https://ideone.com/o3HaD50): `8 of Hearts Ace of Hearts 5 of Clubs 8 of Diamonds 7 of Hearts ` What do you mean there is no output? – Hex Oct 28 '17 at 23:54
  • I am sorry I meant there's not output from my ifStatements I just need someone to point out my error, thank you. (No matter what 5 cards I get.) – user5348367 Oct 28 '17 at 23:55
  • 2
    The conditions in the of statements make no sense. You are comparing an array 8entire array object) with some string literal. -- You'll have to redesign your program around a class Card with fields rank and suit and analyse a hand by looking at the properties of 5 such objects. – laune Oct 29 '17 at 00:06
  • so there is no way for the ifstatements to evaluate my hand? thanks in advance. – user5348367 Oct 29 '17 at 00:19
  • Not those if statements. You're just comparing something with itself. – Herb Oct 30 '17 at 17:43

1 Answers1

0

Ok, if I understand, you are comparing an entire array with an String. This will never result on anything. To make this work, you will need to compare an item of an array.

For example, you have an array String[] handRanks, and you want to know if you have some rank in some position of this array, so you can create an method that uses an for loop to check every position of the array, like this:

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

    return false;
}

Then you will can do the royal flush test, for example:

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