public static String doDraw(String cardName[], int deckSize){
int counter, n;
String list;
List<Cin> cardList = Arrays.asList(cardName);
Collections.shuffle(cardList);
? cardList = cardList.get(7);
System.out.println(cardList);
}
所以我似乎无法获得随机获取代码的正确方法。该程序需要一副牌并绘制7张随机牌以模拟第一手牌。我把数组放到了一个列表中并且已经洗了它。我现在还不是100%肯定能够获得7张随机牌。
答案 0 :(得分:0)
使用for
循环并打印洗牌列表中的第一个/最后7个项目...
答案 1 :(得分:0)
改组后使用cardList.subList(0,7)
ArrayList的get(index)只返回上述索引处的一个元素。如果需要7使用subList()。如果你只想要一个你不需要随机播放..随机使用
java.util.Random random = new Random();
cardList.get(random.nextInt(cardList.size()));
答案 2 :(得分:0)
使用for或while循环并打印项目,您也可以使用增强的for循环
for(int variable : cardList)
{
System.out.print(variable + "\t");
}
答案 3 :(得分:0)
在列表中移动元素之后。您必须打印它们或创建前几个元素的字符串。我在列表中创建前7个元素的字符串,但您可以从begning或从结尾开始访问列表。
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class CardShuffle {
String cardName[] = {"first", "second", "third", "forth", "sixth",
"seventh", "eight", "ninth", "tenth", "eleventh"};
public static void main(String[] args) {
CardShuffle card = new CardShuffle();
for (int i = 0; i < 5; i++) {
System.out.println(doDraw(card.cardName, 7));
}
}
public static String doDraw(String cardName[], int length) {
List<String> cardList = Arrays.asList(cardName);
Collections.shuffle(cardList);
StringBuffer result = new StringBuffer();
for (int i = 0; i < length; i++) {
result = result.append(cardList.get(i) + " ");
}
return result.toString();
}
}