【发布时间】:2014-07-17 18:32:22
【问题描述】:
我正在开发一个扑克程序。我在弄清楚如何洗牌时遇到了一些问题。我必须使用数组。我不能使用枚举或列表。我知道有更好的方法来制作这个程序,但重点是理解数组。
我在弄清楚如何洗牌时遇到了一些问题。我试图让这件事尽可能简单,所以我有一个班级可以拿到牌组并洗牌。
import java.util.Arrays;
import java.util.Random;
public class Card
{
String[] suits = { "Spades", "Clubs", "Hearts", "Diamonds" };
String[] values = {"2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "Queen", "King", "Ace"};
public Card()
{
}
public void getCards()
{
for(int indexSuit = 0; indexSuit < suits.length; indexSuit++)
{
String suit = suits[indexSuit];
System.out.print(suit + " ");
for(int indexType = 0; indexType < values.length; indexType++)
{
String type = values[indexType];
System.out.print(type + " ");
}
}
}
public void shuffle(String[] suit, String[] value)
{
Random rndSuits = new Random();
Random rndType = new Random();
for(int indexSuit = suits.length - 1; indexSuit > 0; indexSuit--)
{
int index = rndSuits.nextInt(indexSuit + 1);
String temp = suits[indexSuit];
suits[indexSuit] = suit[index];
suit[index] = temp;
System.out.print(temp);
for(int indexType = values.length -1; indexType > 0; indexType--)
{
int index2 = rndType.nextInt(indexType + 1);
String temp2 = values[indexType];
values[indexType] = value[index2];
value[index2] = temp2;
System.out.print(temp2);
}
}
}
public void deal()
{
}
}
这是我的主要内容:
public class FiveCardPoker
{
public static void main(String[] args){
Card timsCards = new Card();
timsCards.getCards();
timsCards.shuffle(args, args);
}
}
我试图根据我在此处找到的另一个问题编写 shuffle 方法,但它仅适用于单个数组。我不确定 shuffle 方法的逻辑是否正确。我也不完全确定如何在我的主要方法中调用它。
当我调用 timsCards.shuffle 时,如何将我的数组从 Card 类获取到 Main 类?
编辑:所以我尝试像这样编辑它,但它似乎没有做任何事情。
public void shuffle()
{
Collections.shuffle(Arrays.asList(suits));
Collections.shuffle(Arrays.asList(values));
System.out.println(Arrays.toString(values) + " of " + Arrays.toString(suits));
}
【问题讨论】:
-
提示:西装和排名可能更好地建模为枚举而不是字符串数组。
-
我不能使用枚举,我需要学习如何使用数组。至于可能的重复,那是我获得初始代码的地方,但它仅适用于单个数组,我的似乎更复杂,并且不能完全回答我的问题。如果方法中有参数,如何调用函数。