我正试图改变ArrayList
张牌。我的deck类中有一个方法如下:
public void shuffle(Array <Deck1> deck){
deckOne.shuffle();
}
在我的主要游戏类中,我初始化了变量,并想要改变平台。这就是我所拥有的:
public class MainGame {
private Deck1 deckOne;
public MainGame() {
deckOne = new Deck1();
deckOne.shuffle(x);
}
}
然后我去打印出卡片。我遇到的问题是传递给deckOne.shuffle(x);
行的内容。 x
是我需要传递的地方。
任何帮助将不胜感激。
我在LibJDX编码。
我尝试了下面显示的shuffle
方法,但它也无效。
public void shuffle(){
deckOne.shuffle();
}
答案 0 :(得分:2)
像Faro和duffymo已经说过你的问题不是很清楚 - 或者至少我们不太了解它。我认为这里的问题可能是你的域名使用不合适的设计。特别是,为什么需要将任何内容传递给shuffle
类的Deck
方法?它不应该能够洗牌自己的内部卡吗?
在我看来,像下面这样的设计更有意义:
class Card {
private int value;
private String suit; // Or an enum, whatever you prefer
... constructor/getters/setters ...
}
class Deck {
private ArrayList<Card> cards;
... constructor to initialize cards ...
public void shuffle() {
Collections.shuffle(cards);
}
}
public class MainGame {
private Deck deckOne;
public MainGame() {
deckOne = new Deck();
deckOne.shuffle();
}
}
答案 1 :(得分:0)
让我们做一个简单的:List
整数。
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
/**
* Demonstration of shuffle feature
* User: mduffy
* Date: 1/12/2016
* Time: 11:05 AM
* @link http://stackoverflow.com/questions/34747973/shuffling-an-array-list?noredirect=1#comment57242343_34747973
*/
public class ShuffleDemo {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10 );
System.out.println(String.format("before shuffle: %s", numbers));
Collections.shuffle(numbers);
System.out.println(String.format("after shuffle: %s", numbers));
}
}
你会如何改变这一点,因此它是List
的{{1}},它有西装和面值? Card
Deck
有意义吗?