Advertisement
Guest User

Feld.java

a guest
Jan 27th, 2011
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.35 KB | None | 0 0
  1. package Spiel;
  2.  
  3. import java.awt.Color;
  4. import java.awt.Point;
  5. import javax.swing.ImageIcon;
  6. import javax.swing.JButton;
  7.  
  8. /**
  9.  *
  10.  * @author Crushpest
  11.  */
  12. public class Feld extends JButton{
  13.  
  14.     //<editor-fold defaultstate="collasped" desc="Definiere Globale Variablen">
  15.     public enum FeldStatus {
  16.         OFFEN, ZU, LEER
  17.     };
  18.     private int minenAußenrum = 0; //Wieviele Minen außenrum liegen
  19.     private FeldStatus status = FeldStatus.ZU;
  20.     private boolean mine = false; //Beinhaltet mine
  21.     private Point point; //Koordinaten im Array
  22.     private Color hintergrundGrau = new Color(189, 189, 189);
  23.     private ImageIcon bildMinen = new ImageIcon(Feld.class.getResource("/IconBilder/bildMinen.png"));
  24.     private ImageIcon bildEntschaerft = new ImageIcon(Feld.class.getResource("/IconBilder/bildEntschaerft.png"));
  25.     private ImageIcon bildFragezeichen = new ImageIcon(Feld.class.getResource("/IconBilder/bildFragezeichen.png"));
  26.     //</editor-fold>
  27.  
  28.     //Konstruktoren
  29.     public Feld(int x, int y) {
  30.         super();
  31.         this.point = new Point(x, y);
  32.     }
  33.  
  34.     //Gebe Koordinaten zurueck
  35.     public Point getPointer() {
  36.         return point;
  37.     }
  38.     //Gebe FeldStatus zurueck
  39.     public FeldStatus getStatus(){
  40.         return status;
  41.     }
  42.     //Setzte anzahl der Minen Außenrum
  43.     public void setMinenAußenrum(int anzahl){
  44.         minenAußenrum = anzahl;
  45.     }
  46.     //Decke dieses Feld auf. Gibt ZU zurueck wenn Mine getroffen!
  47.     public FeldStatus aufdecken() {
  48.         if (status == FeldStatus.ZU) {
  49.             if (minenAußenrum == 0) {
  50.                 status = FeldStatus.LEER;
  51.             } else if (mine) {
  52.                 this.setBackground(hintergrundGrau);
  53.                 this.setIcon(bildMinen);
  54.             } else {
  55.                 this.setIcon(null);//Hier eigentlich minenAnzeige hochzählen, da eventuell schon entschaerft gewesen
  56.                 this.setBackground(hintergrundGrau);
  57.                 this.setText("" + minenAußenrum + "");
  58.                 status = FeldStatus.OFFEN;
  59.             }
  60.         } else if (status == FeldStatus.LEER) {
  61.             this.setIcon(null);//Hier eigentlich minenAnzeige hochzählen, da eventuell schon entschaerft gewesen
  62.             this.setBackground(hintergrundGrau);
  63.             status = FeldStatus.OFFEN;
  64.         }
  65.         return status;
  66.     }
  67.     //Setzte Mine
  68.     public void setMine() {
  69.         mine = true;
  70.     }
  71.     //Gebe zurueck ob Feld eine Mine ist
  72.     public boolean isMine(){
  73.         return mine;
  74.     }
  75.     //Setzte Icon und gebe boolean zurueck ob Entschaerft
  76.     public boolean feldEntschaerfen() {
  77.         if (status == FeldStatus.ZU) {
  78.             if (this.getIcon() == null) {
  79.                 this.setIcon(bildEntschaerft);
  80.                 return true;
  81.             } else if (this.getIcon() == bildEntschaerft) {
  82.                 this.setIcon(bildFragezeichen);
  83.                 return true;
  84.             } else if (this.getIcon() == bildFragezeichen) {
  85.                 this.setIcon(null);
  86.                 return false;
  87.             }
  88.         }
  89.         return false;//Sollte niemals auftretten!
  90.     }
  91.     //Setzte dieses Feld zurueck
  92.     public void reset() {
  93.         minenAußenrum = 0;
  94.         mine = false;
  95.         this.setIcon(null);
  96.         this.setText("");
  97.         this.setBackground(null);
  98.         status = FeldStatus.ZU;
  99.     }
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement