为什么我的调用shuffle方法不起作用?
我正在制作一款二十一点游戏,需要在每次迭代开始时洗牌。这里重要的两类是甲板和游戏。在Deck中,我创建了一个名为deck的ArrayList来容纳52张牌。我还创建了一个名为shuffle的方法。为什么我的调用shuffle方法不起作用?
public void shuffle(){
Collections.shuffle(deck);
}
然后,在我的游戏类:
cards = new Deck();
String response;
System.out.println("Do you want to play the game? (0-Yes, 1-No)");
if (Integer.parseInt(response)==1){
cards.shuffle();
.....
}
从这一点来说,我然后写简单的代码来分发卡和检查,看看玩家如何接近21我把我所有的代码在迭代5次的while循环中。问题在于,由于某种原因,玩家的手不会每轮都改变一次(即cards.shuffle()不洗牌)。为什么发生这种情况。如果由于我是Java编程的新手,这是模糊的,我很抱歉。
Threre没有用户输入:
cards = new Deck();
String response;
System.out.println("Do you want to play the game? (0-Yes, 1-No)");
if (Integer.parseInt(response)==1){
cards.shuffle();
.....
}
response
将蜜蜂null
所以,我希望这样的事情:
cards = new Deck();
Scanner sc = new Scanner(System.in);
String response;
System.out.println("Do you want to play the game? (0-Yes, 1-No)");
response=sc.nextLine();
if (Integer.parseInt(response)==1){
cards.shuffle();
.....
}
sc.close();
得到它其实它不会被设置为null。由于它是一个本地未初始化的变量,代码甚至不会编译。 OP没有显示真实的代码。 –
你说得对,我只是有一个想法,没有测试@JBNizet – maskacovnik
Integer.parseInt(response)
但如果是你获得这个response
,你忘了从用户那里得到它
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Do you want to play the game? (0-Yes, 1-No)");
int response = Integer.parseInt(br.readLine());
if(response==1){
cards.shuffle();
.....
}
没有机会给你一个坚实的答案。你是说你的shuffe代码不会在没有显示给我们的情况下生成所需的输出。 – SomeJavaGuy
您可能会更多地展示您的代码,以便我们了解更多的上下文 – Stultuske
构建手的代码在哪里? – Luke