我對Java非常陌生,並且在理解如何洗牌數組(或我的套牌數組)時遇到困難。我已經嘗試過使用Random
類,但它不適合我。無論如何,在這裏去我創建的類:簡單的Java卡片遊戲 - 麻煩洗牌(陣列)
CardGame
import java.util.Random;
public class CardGame {
public static void main(String[] args) {
// final int SPADES = 0, HEARTS = 1, DIAMONS = 2, CLUBS = 3;
final int ACE = 1, TWO = 2, THREE = 3, FOUR = 4, FIVE = 5, SIX = 6, SEVEN = 7, EIGHT = 8;
final int NINE = 9, TEN = 10, JACK = 11, QUEEN = 12, KING = 13;
Random rand = new Random();
int[][] deck = {
{ ACE, TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE, TEN, JACK, QUEEN, KING },
player1.setHand(deck[i][randIndex]);
player2.setHand(deck[i][randIndex]);
player3.setHand(deck[i][randIndex]);
}
}
System.out.println(player1.getHand());
System.out.println(player2.getHand());
System.out.println(player3.getHand());
}
}
球員
public class Player {
final int MAX_HAND = 6;
private String playerName;
private int playerHand[] = new int[MAX_HAND];
public Player(String name) {
playerName = name;
}
public void setHand(int card) {
int currentLength = playerHand.length;
if (currentLength == MAX_HAND) {
return;
}
playerHand[currentLength] = card;
}
public String getHand() {
String cardN
case 8: cardNames += "Eight"; break;
case 9: cardNames += "Nine"; break;
case 10: cardNames += "Ten"; break;
case 11: cardNames += "Jack"; break;
case 12: cardNames += "Queen"; break;
case 13: cardNames += "King"; break;
}
if (i < playerHand.length - 2) {
cardNames += ", ";
}
}
return playerName + " has " + cardNames + " on his hand.";
}
}
結果總是:
名1有王牌,他手上有兩個,三個,四個和五個。
Name2擁有Ace, 他的手上有兩個,三個,四個和五個。
Name3擁有Ace,Two,Three,Four 和他手上的Five。
什麼是我做錯了爲內部數組deck
生成隨機索引?
謝謝。
更新的問題。它始終輸出相同的結果。 – Aborted
查看['Collections.shuffle'](http://docs.oracle.com/javase/7/docs/api/java/util/Collections.html#shuffle%28java.util.List%29) –
現在我必須堅持使用陣列。這只是令我困擾的隨機性部分,否則這個簡單的遊戲將被視爲完成。 – Aborted