我必须为课堂制作扑克骰子游戏。我能够成功地随机选择5个数字1到6(类似于掷骰子五次)。但是,我需要展示" Nine" 1," Ten"对于两个,等等。我使用数组来保存数字。我似乎无法弄清楚如何为每个int分配字符串输出。
public static void main(String[] args) {
int[] player = new int[5];
String[] cards = new String[] {"Nine", "Ten", "Jack", "Queen", "King", "Ace"};
System.out.println("User: " + playerHand(player, cards));
}
public static String playerHand(int[] player, String[] cards) {
String hand = "";
for (int i = 0; i < player.length; i++) {
player[i] = (int) (Math.random() * (6 - 1) + 1);
hand += player[i] + " ";
}
return hand;
}
答案 0 :(得分:1)
您已将字符串放入数组中,因此您只需将数组中的元素添加到手字符串中:
hand += cards[player[i]] + " ";
但是,您的代码仍有问题。您可以获得如下随机数:
player[i] = (int) (Math.random() * (6 - 1) + 1);
您可能希望这是1到6之间的数字。但是,Math.random()
会返回从0(包括)到1(不包括)的双精度数。这意味着将永远不会分配播放器[i] 6.此错误类型解决了另一个错误:由于Java数组从零开始,因此索引为6的元素不存在。 (因此,如果选择了6,那么你的程序会因错误信息而中止。)但是,数字0以及“Nine”这个词永远不会出现在你的解决方案中。所以你必须将两行改为:
hand += cards[player[i] - 1] + " ";
和
player[i] = (int) (Math.random() * 6 + 1);
分别
考虑使cards
数组成为静态类成员;那么你不需要将数组作为参数传递给playerHand
方法。
答案 1 :(得分:0)
您可以使用开关块
switch(array[i]){
case 1:
printf("One\n");
break;
case 2:
printf("Two\n");
break;
等...