hypesystem

GE - Mines.java

Nov 14th, 2011
32
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.16 KB | None | 0 0
  1. package ge;
  2.  
  3. import java.awt.*;
  4. import java.awt.event.*;
  5. import javax.swing.*;
  6.  
  7. /**
  8.  * Mines is a simple implementation of mine sweeper, a one-person game
  9.  * known from Windows 3.1 and later.  This version does not do double
  10.  * buffering of the graphics, so it may flicker a little.
  11.  *
  12.  * To start the game, create an object of this class.  
  13.  *
  14.  * @author Peter Sestoft
  15.  * @author hypesystem <[email protected]>
  16.  * @version 1997, 2007-11-13 modified by hypesystem 14-11 2011
  17.  */
  18.  
  19. // Opret Frame der indeholder spillebrættet og knappen `Nyt spil'
  20. // tilføjet default close operation, så programmet faktisk terminerer, når
  21. // vinduet lukkes.
  22. // endvidere tilføjet en label der viser antallet af felter ryddet ud af totale
  23. // ikke-mine baserede felter.
  24. // dette er et ærke-eksempel på ekstremt dårlig klassestruktur, men opgaven der
  25. // blev stillet bad om at få gjort noget der krævede enten en komplet
  26. // genskrivning eller en løsning som den i dette eksempel.
  27.  
  28. public class Mines {
  29.     private JLabel minesLabel, clearedLabel;
  30.    
  31.   public Mines() {
  32.     JFrame f = new JFrame("Minestryger");
  33.     f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  34.     final MineCanvas canvas = new MineCanvas();
  35.     f.add(canvas, "North");
  36.     JPanel psouth = new JPanel();
  37.     psouth.setLayout(new FlowLayout());
  38.     JButton nytspil = new JButton("Nyt spil");
  39.     minesLabel = new JLabel("Mines: ");
  40.     clearedLabel = new JLabel("Fields cleared: 0/"+canvas.cols * canvas.rows);
  41.     psouth.add(clearedLabel);
  42.     psouth.add(nytspil);
  43.     psouth.add(minesLabel);
  44.     f.add(psouth, "South");
  45.     nytspil.addActionListener(new ActionListener() {
  46.         @Override
  47.       public void actionPerformed(ActionEvent e) {
  48.         canvas.nytspil();
  49.       }
  50.     });
  51.     canvas.addMouseListener(new MouseAdapter() {
  52.         @Override
  53.       public void mouseClicked(MouseEvent e) {
  54.             canvas.mouseClick(e);
  55.             minesLabel.setText("Mines: "+canvas.getMines());
  56.             clearedLabel.setText("Fields cleared: "+canvas.getCleared()+"/"+
  57.                     canvas.cols * canvas.rows);
  58.       }
  59.     });
  60.     canvas.nytspil();
  61.     f.pack();
  62.     f.setVisible(true);
  63.   }
  64. }
Advertisement
Add Comment
Please, Sign In to add comment