![](/img/trans.png)
[英]How to sort an array of strings (in the form of names concatenated with numbers) in Java?
[英]how to output numbers as strings/names
我正在編寫HiLo紙牌游戲的代碼,玩家必須猜測下一張紙牌是更高 , 更低還是相等 。
雖然數字11
, 12
, 13
和1
,我想輸出是傑克 , 皇后 , 國王和王牌 。
我已經制定了程序,以指出它返回0
到13
之間的隨機int
(我仍然不知道如何編寫代碼以使其只選擇1
到13
之間的隨機int
)。
如何設置它,因此11
, 12
, 13
和1
號出現
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.