簡體   English   中英

如何將數字輸出為字符串/名稱

[英]how to output numbers as strings/names

我正在編寫HiLo紙牌游戲的代碼,玩家必須猜測下一張紙牌是更高更低還是相等
雖然數字1112131 ,我想輸出是傑克皇后國王王牌

我已經制定了程序,以指出它返回013之間的隨機int (我仍然不知道如何編寫代碼以使其只選擇113之間的隨機int )。
如何設置它,因此1112131號出現

The Card pulled is the Ace, 
is the next card Higher, Lower or Equal?

依此類推,我嘗試了if語句並將int更改為String ,但均無濟於事,而且我無法找到關於String生成器的信息...

這是我的代碼,任何幫助將不勝感激

import java.util.Random;
import javax.swing.JOptionPane;

public class HiLo {

    public static final int JACK = 11;
    public static final int QUEEN = 12;
    public static final int KING = 13;
    public static final int ACE = 1;

    public static void main(String[] args) {

        int correctGuesses = 0;

        Random generator = new Random();
        int currentCard;
        int nextCard = generator.nextInt( KING+1 );

        while (correctGuesses < 4) {
            currentCard = nextCard;
            nextCard = generator.nextInt( KING+1 );

            Object[] options = {"Higher",
                "Lower",
            "Equal"};
            int Input = JOptionPane.showOptionDialog(null,
            "The Card pulled is the " + currentCard +
            " \nis the next card Higher, Lower or Equal?",
            "HiLo Card Game",
            JOptionPane.YES_NO_CANCEL_OPTION,
            JOptionPane.QUESTION_MESSAGE,
            null, options, options[0]);

            if(nextCard > currentCard) {
                switch(Input) {
                    case JOptionPane.YES_OPTION:
                        correctGuesses++;
                        break;
                    case JOptionPane.NO_OPTION:
                    case JOptionPane.CANCEL_OPTION:
                        correctGuesses = 0;
                        break;
                }
            } else if(nextCard < currentCard) {
                switch(Input) {
                    case JOptionPane.NO_OPTION:
                        correctGuesses++;
                        break;
                    case JOptionPane.YES_OPTION:
                    case JOptionPane.CANCEL_OPTION:
                        correctGuesses = 0;
                        break;
                }
            } else {
                switch(Input) {
                    case JOptionPane.CANCEL_OPTION:
                        correctGuesses++;
                        break;
                    case JOptionPane.YES_OPTION:
                    case JOptionPane.NO_OPTION:
                        correctGuesses = 0;
                        break;
                }
            }
        }

        JOptionPane.showMessageDialog(null,  
            "Congratulations, You guessed correctly 4 times,"
        + "\nthe Last Card was the " + nextCard + ", resart to play again" );
    }


}

將currentCard更改為String。 然后代替

currentCard = nextCard;

currentCard = Integer.toString(nextCard);

然后,您可以執行if語句並為輸出分配所需的字符串。

String getCardString(int card) {

    String cardString = null;

    switch (card) {
        ACE:
            cardString = "ace";
            break;
        KING:
            cardString = "king";
            break;
        // same for queen and jack
        DEFAULT:
            cardString = Integer.toString(nextCard);
    }
       return cardString;
}


JOptionPane.showMessageDialog(null,  
            "Congratulations, You guessed correctly 4 times,"
        + "\nthe Last Card was the " + getCardString(nextCard) + ", resart to play again" );

對於隨機生成器,您可以生成0到12之間的值,然后添加1:

nextCard = ACE + generator.nextInt(KING);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM