import java.awt.*; import java.awt.event.*; import java.applet.Applet; public class MineGame extends Applet implements ActionListener { private static final int ROW = 8; private static final int COL = 8; private Button[][] buttonGrid = new Button[ROW][COL]; private int[][] mineGrid = new int[ROW][COL]; public void init() { setLayout(new GridLayout(ROW,COL)); for (int i = 0; i < buttonGrid.length; i++) for (int j = 0; j < buttonGrid[0].length; j++) { mineGrid[i][j] = (Math.random() < 0.8 ? 0 : 1); buttonGrid[i][j] = new Button(); } for (int i = 0; i < buttonGrid.length; i++) for (int j = 0; j < buttonGrid[0].length; j++) { add(buttonGrid[i][j]); buttonGrid[i][j].addActionListener(this); } } public void actionPerformed(ActionEvent e) { for (int i = 0; i < buttonGrid.length; i++) for (int j = 0; j < buttonGrid[0].length; j++) { if (e.getSource().equals(buttonGrid[i][j])) { if (mineGrid[i][j] == 1) buttonGrid[i][j].setLabel("die"); else buttonGrid[i][j].setLabel(mineNum(i,j)+""); repaint(); } } } private int mineNum(int x, int y) { if ((x == 0) && (y == 0)) return mineGrid[x][y+1] + mineGrid[x+1][y+1] + mineGrid[x+1][y]; else if ((x == 0) && (y == buttonGrid[0].length-1)) return mineGrid[x+1][y] + mineGrid[x][y-1] + mineGrid[x+1][y-1]; else if (x == 0) return mineGrid[x][y+1] + mineGrid[x+1][y+1] + mineGrid[x+1][y] + mineGrid[x][y-1] + mineGrid[x+1][y-1]; else if ((y == 0) && (x == buttonGrid.length-1)) return mineGrid[x-1][y+1] + mineGrid[x][y+1] + mineGrid[x-1][y]; else if (y == 0) return mineGrid[x-1][y+1] + mineGrid[x][y+1] + mineGrid[x+1][y+1] + mineGrid[x-1][y] + mineGrid[x+1][y]; else if ((x == buttonGrid.length-1) && (y == buttonGrid[0].length-1)) return mineGrid[x-1][y] + mineGrid[x-1][y-1] + mineGrid[x][y-1]; else if (x == buttonGrid.length-1) return mineGrid[x-1][y+1] + mineGrid[x][y+1] + mineGrid[x-1][y] + mineGrid[x-1][y-1] + mineGrid[x][y-1]; else if (y == buttonGrid[0].length-1) return mineGrid[x-1][y] + mineGrid[x+1][y] + mineGrid[x-1][y-1] + mineGrid[x][y-1] + mineGrid[x+1][y-1]; return mineGrid[x-1][y+1] + mineGrid[x][y+1] + mineGrid[x+1][y+1] + mineGrid[x-1][y] + mineGrid[x+1][y] + mineGrid[x-1][y-1] + mineGrid[x][y-1] + mineGrid[x+1][y-1]; } }
Previou page | Next page |