?? blockmodel.java
字號(hào):
package mine.model;
import java.util.Observable;
public class BlockModel
extends Observable {
public final static int QuestionMark = 13; //標(biāo)記為3種,旗子,問(wèn)號(hào),
public final static int FlagMark = 10;
public final static int UnopenMark = 9;
private int xPos;
private int yPos; //位置坐標(biāo)
private boolean opened; //此塊是否已經(jīng)開(kāi)啟,如果開(kāi)啟,則不能再進(jìn)行設(shè)置
private int mark = BlockModel.UnopenMark; //標(biāo)記的類型,分為旗子和問(wèn)號(hào),如果開(kāi)啟,則不能設(shè)置
private boolean mine; //有兩種類型,不是雷,就是數(shù)字
private boolean wrongMineOpinion; //是否含有錯(cuò)誤推斷
private int number; //如果是數(shù)字,則一不定不是雷,雷不能取得值
private boolean onmine;
private boolean isdown = false; //用于處理鼠標(biāo)按下松開(kāi)的事件
public BlockModel() {
}
public void setdown(boolean down) {
if (!opened && mark == BlockModel.UnopenMark && isdown != down) {
//如果沒(méi)有打開(kāi),并未做過(guò)標(biāo)記才進(jìn)行設(shè)置
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) {
//如果不一致,再進(jìn)行通知
if (this.opened != opened) {
this.opened = opened;
setChanged();
notifyObservers();
}
}
public int getMark() {
if (opened) {
throw new GameRuntimeException("已經(jīng)打開(kāi),不能再取得標(biāo)記值");
}
return mark;
}
public void setMark(int mark) {
if (opened) {
throw new GameRuntimeException("已經(jīng)打開(kāi),不能再設(shè)置標(biāo)記值");
}
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("已經(jīng)是雷,不可獲得數(shù)字值");
}
return number;
}
public void setNumber(int number) {
if (mine) {
throw new GameRuntimeException("已經(jīng)是雷,不設(shè)置數(shù)字值");
}
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();
}
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -