MineGame


 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