?? fieldcell.java
字號:
/*
* FieldCell.java
*
* Created on 2007年8月21日, 上午11:42
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package minegame;
/**
*
* @author linda
*/
import java.awt.*;
import javax.swing.*;
public class FieldCell {
//狀態常量
public static final int UNKNOWN = 0;
public static final int FLAGGED = 1;
public static final int DOUBTED = 2;
public static final int REVEALED = 3;
public static final int WRONG_F = 4;
public static final int WRONG_D = 5;
//是否地雷指示器
private boolean isMine = false;
//狀態變量
private int state = UNKNOWN;
/**
* 圖像信息變量gHint:
* 范圍0-14
* - 0-8: 數字
* - 9: 未掃(雷)單元
* - 10: 地雷
* - 11: 已掃標記
* - 12: 已掃標記叉號
* - 13: 疑問標記
* - 14: 疑問標記叉號
*/
private int gHint = 9;
//非地雷單元顯示的相鄰地雷數
private int number = -1;
public FieldCell() {//構造方法
}
public void setState(int s) {//設置單元狀態
state = s;
switch (s) {
case UNKNOWN:
gHint = 9;
break;
case FLAGGED:
gHint = 11;
break;
case DOUBTED:
gHint = 13;
break;
case REVEALED:
gHint = isMine ? 10 : number;
break;
case WRONG_F:
gHint = 12;
break;
case WRONG_D:
gHint = 14;
break;
}
}
public int getState() {//獲取單元狀態
return state;
}
public void setMine(boolean b) {//設置地雷單元
isMine = b;
}
public boolean isMine() {//獲取是否地雷信息
return isMine;
}
public void setNumber(int num) {//設置數字
if (num < 0 || num > 8)
return;
number = num;
}
public int getNumber() {//獲取數字
return number;
}
private void setGHint(int h) {//設置圖像信息
gHint = h;
}
//根據各單元圖像信息畫出單元圖像
public void draw(Graphics g, int x, int y) {
if (gHint < 0 || gHint > 14)
return;
switch (gHint) {
case 9:
GraphicsUtil.drawUnknown(g, x, y);//畫出未掃單元
return;
case 10:
GraphicsUtil.drawMine(g, x, y);//畫出地雷單元
return;
case 11:
GraphicsUtil.drawFlag(g, x, y);//畫出已掃單元
return;
case 12:
GraphicsUtil.drawFlag(g, x, y);//畫出已掃單元
GraphicsUtil.drawCross(g, x, y);//畫出叉號
return;
case 13:
GraphicsUtil.drawDoubt(g, x, y);//畫出疑問單元
return;
case 14:
GraphicsUtil.drawDoubt(g, x, y);//畫出疑問單元
GraphicsUtil.drawCross(g, x, y);//畫出叉號
return;
default:
GraphicsUtil.drawNumber(g, x, y, gHint);//畫出數字
return;
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -