📄 blockmodel.java
字号:
package mine.model;
import java.util.Observable;
public class BlockModel
extends Observable {
public final static int QuestionMark = 13; //标记为3种,旗子,问号,
public final static int FlagMark = 10;
public final static int UnopenMark = 9;
private int xPos;
private int yPos; //位置坐标
private boolean opened; //此块是否已经开启,如果开启,则不能再进行设置
private int mark = BlockModel.UnopenMark; //标记的类型,分为旗子和问号,如果开启,则不能设置
private boolean mine; //有两种类型,不是雷,就是数字
private boolean wrongMineOpinion; //是否含有错误推断
private int number; //如果是数字,则一不定不是雷,雷不能取得值
private boolean onmine;
private boolean isdown = false; //用于处理鼠标按下松开的事件
public BlockModel() {
}
public void setdown(boolean down) {
if (!opened && mark == BlockModel.UnopenMark && isdown != down) {
//如果没有打开,并未做过标记才进行设置
isdown=down;
setChanged();
notifyObservers();
}
}
public boolean isdown(){
return isdown;
}
public BlockModel(int x, int y) {
xPos = x;
yPos = y;
}
public int getXPos() {
return xPos;
}
public int getYPos() {
return yPos;
}
public boolean isOpened() {
return opened;
}
public void setOpened(boolean opened) {
//如果不一致,再进行通知
if (this.opened != opened) {
this.opened = opened;
setChanged();
notifyObservers();
}
}
public int getMark() {
if (opened) {
throw new GameRuntimeException("已经打开,不能再取得标记值");
}
return mark;
}
public void setMark(int mark) {
if (opened) {
throw new GameRuntimeException("已经打开,不能再设置标记值");
}
if (this.mark != mark) {
this.mark = mark;
setChanged();
notifyObservers();
}
}
public boolean isMine() {
return mine;
}
public void setMine(boolean mine) {
this.mine = mine;
}
public boolean isWrongMineOpinion() {
return wrongMineOpinion;
}
public void setWrongMineOpinion(boolean wrongMineOpinion) {
this.wrongMineOpinion = wrongMineOpinion;
}
public int getNumber() {
if (mine) {
throw new GameRuntimeException("已经是雷,不可获得数字值");
}
return number;
}
public void setNumber(int number) {
if (mine) {
throw new GameRuntimeException("已经是雷,不设置数字值");
}
this.number = number;
}
public boolean isOnmine() {
return onmine;
}
public void setOnmine(boolean onmine) {
if (!mine) {
throw new GameRuntimeException("不是雷,怎么可能踩上呢");
}
this.onmine = onmine;
}
public int hashCode() {
return (xPos+"-"+yPos).hashCode();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -