对于家庭作业,我正在尝试将精灵表添加到2D ArrayList中以进行简单的纸牌游戏。我希望能够像普通的2D阵列一样只使用数组列表的动态能力,因为我必须删除已经绘制的卡片。
我正在使用一个数字生成器,它将在第一个和最后一个索引(0 - 51)之间生成数字,当用户单击绘图卡按钮时,它将在屏幕上显示一张卡片。然后它将允许另一个用户或AI绘制一张牌,它将确定谁拥有最高牌并宣布该人是该轮的赢家,移除两张抽牌并重复循环直到超过26圈然后程序将计算全部胜利,获得最多回合的玩家将赢得整场胜利。
我的问题是:如何将我的一个精灵表分成52个部分并将其添加到我的ArrayList中?
这是我到目前为止所拥有的。我知道它还没有用,但我不确定我是否走在正确的轨道上。
//private ImageIcon[][] cards = new ImageIcon[4][13];
private BufferedImage img;
private final int _WIDTH = 74;
private final int _HEIGHT = 94;
public CardGame1(ImageIcon[][] cards){
try{
img = ImageIO.read(getClass().getResource(
"classic-playing-cards.png"));
}catch(Exception e){
e.printStackTrace();
}
for(int r = 0; r < cards.length; r++){
for(int c = 0; c < cards[r].length; c++){
cards[r][c] = new ImageIcon(img.getSubimage(c * _WIDTH,
r * _HEIGHT, _WIDTH, _HEIGHT));
}
}
}
有人告诉我将ArrayList放在另一个类中,所以这里是:
private JFrame frame;
private JPanel panel;
private Random rand;
private JButton drawCard;
private JLabel card;
private ArrayList<ArrayList<CardGame1>> _cardObj
= new ArrayList<ArrayList<CardGame1>>();
public CardGameGUI(){
gameBoard();
}
public void gameBoard(){
frame = new JFrame("Card Game");
panel = new JPanel();
frame.setSize(600, 500);
frame.setLayout(new GridLayout());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(true);
frame.setVisible(true);
frame.add(panel);
panel.setBackground(Color.GREEN);
drawCard = new JButton("Draw Card!");
drawCard.setSize(100, 50);
panel.add(drawCard);
drawCard.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
}
});
}