2014-11-20 104 views
0

功课我想一个精灵表添加到2D ArrayList的一个简单的纸牌游戏。我希望能够像在普通的二维数组中那样拥有它,只需要使用数组列表的动态能力,因为我将不得不移除已经绘制的卡片。如何将图像的部分添加到一个ArrayList - Java的

我使用一个号码发生器,将产生(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) { 

     } 
    }); 
} 
+0

我不能按照你的过程。一些代码/例如有助于。 – StackFlowed 2014-11-20 19:13:22

回答

相关问题