创建一个随机卡数组。 使用toString方法(未排序)在格式化的print语句中输出此数组。 使用选择排序对数组进行排序。 从甲板中的最高牌到最低牌。 升序字母顺序:俱乐部(最低),其次是钻石,心形和黑桃(最高) 甲板上最高的牌是黑桃ACE,最低的是2个俱乐部。 使用toString方法输出已排序的数组。 同时打印出数字迭代次数
我是一名首发编码员,需要帮助,这是我开始的一些内容。
public class DeckOfCards2 {
public static void main(String[] args) {
int[] deck = new int[52];
String[] suits = {"Spades", "Hearts", "Diamonds", "Clubs"};
String[] ranks = {"Ace", "2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "Queen", "King"};
// Initialize cards
for (int i = 0; i < deck.length; i++) {
deck[i] = i;
}
// Shuffle the cards
for (int i = 0; i < deck.length; i++) {
int index = (int)(Math.random() * deck.length);
int temp = deck[i];
deck[i] = deck[index];
deck[index] = temp;
}
// Display the all the cards
for (int i = 0; i < 52; i++) {
String suit = suits[deck[i] / 13];
String rank = ranks[deck[i] % 13];
System.out.println( rank + " of " + suit);
}
}
}
答案 0 :(得分:0)
你的方法随机化工作:)你只需要添加排序。尝试这样的事情:
public static void main(String[] args) {
int[] deck = new int[52];
String[] suits = {"Spades", "Hearts", "Diamonds", "Clubs"};
String[] ranks = {"2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "Queen", "King","Ace"};
// Initialize cards
for (int i = 0; i < deck.length; i++) {
deck[i] = i;
}
// Shuffle the cards
for (int i = 0; i < deck.length; i++) {
int index = (int)(Math.random() * deck.length);
int temp = deck[i];
deck[i] = deck[index];
deck[index] = temp;
}
// Display the all the cards
for (int i = 0; i < 52; i++) {
String suit = suits[deck[i] / 13];
String rank = ranks[deck[i] % 13];
System.out.println( rank + " of " + suit);
}
System.out.println("------------------------------");
for(int i=0;i<deck.length;i++){
for(int j=i;j<deck.length;j++){
if(deck[j]==51-i){
int temp = deck[i];
deck[i] = deck[j];
deck[j] = temp;
}
}
}
// Display the all the cards
for (int i = 0; i < 52; i++) {
String suit = suits[deck[i] / 13];
String rank = ranks[deck[i] % 13];
System.out.println( rank + " of " + suit);
}
}
答案 1 :(得分:0)
这似乎是各种各样的任务,所以我不打算给你答案,但我可以指出你正确的方向,所以你可以自己解决。
首先,你需要在课堂上使用toString方法。这些通常如下所示:
public String toString(array[]){
// your code here
return text;
}
该方法接受一个数组参数(这是您需要打印的数据)。在这个内部,您可能需要某种for循环或while循环来循环遍历数组并使用类似
之类的内容将每个元素添加到字符串实例变量中text = text + array[i];
通过这种方式,您可以将数组中的每个值添加到字符串中,然后返回该字符串。
接下来,问题表明你必须创建一个“随机卡随机数组”。您已经拥有生成随机卡的代码。相反,您需要将结果添加到新的随机数组而不是打印出来。这是您的主未排序数组。在您的主要方法中,您可以按照
的方式执行某些操作// prints out unsorted array
System.out.println(toString(array));
其中 array 是随机未排序数组的名称。
接下来开始创建排序数组的过程。在此处阅读有关选择排序的示例代码的更多信息:http://www.javatpoint.com/selection-sort-in-java
如上所述,请确保计算迭代次数。这可以通过递增计数变量轻松完成。
count++;
对数组进行排序后,只需像以前一样将其发送到toString()方法,然后确保打印出计数变量。