📄 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 + -