class Human extends SearchConnect
SearchConnect
Modifier and Type | Field and Description |
---|---|
private CDC_Board |
board |
private java.lang.String |
color |
private BooleanHolder |
isFinish |
private boolean |
isLocal |
private boolean |
oppoIsHuamn |
private int |
playerNum |
private int |
TIMEOUT |
connect_Info, error_Info, errThreadPriority, finish, stderr_lock, STDERR_READ_DELAY, stderr_stamp, stdout_lock, STDOUT_READ_DELAY, stdout_stamp, stdThreadPriority
Constructor and Description |
---|
Human(client.Room_SettingFile.BoardOpenType type,
client.SettingFile.STARTMODE startMode,
client.Room_SettingFile.BoardDisconnectAutoRestart restart,
CDC_Room room,
CDC_Game game,
boolean isLocal,
boolean isCLI,
boolean isPlay,
boolean needCloseWeb)
constructor,因為是拿 CDC_Board 包裝成 Search 的接口模式,所以要傳入 CDC_Board 所需的初始參數
另外,因為針對有些功能上有線上伺服器和本地伺服器的區別限制,所以要 isLocal 來限制某些功能。
|
Modifier and Type | Method and Description |
---|---|
(package private) client.Packet |
askDrawOffer(BooleanHolder semaphore)
傳送詢問提和指令給盤面,讓使用者作出決定。
|
protected client.Packet |
askMove()
要求 Search 產生走步。
|
(package private) client.Packet |
askUndo()
傳送詢問是否悔棋的指令給 Web,讓使用者作出決定。
|
protected void |
gameStart(int playerNum,
boolean firstMove)
設定玩家編號。
|
protected java.lang.String |
getInteractiveLog()
取得和 Search 的所有互動字串。
|
(package private) client.Packet |
listenDrawOfferStep(BooleanHolder semaphore)
因為在提出提和的過程中,提出方可以不等候對方回應,直接走步,因此也要接收提出方的走步資料。
|
(package private) void |
resetBoard(CDC_Board new_board)
設定新的 instance。
|
(package private) void |
restartBoard()
傳送重新開始一局的指令給 Web,用來重整盤面。
|
(package private) void |
sendCommandResult(java.lang.String type,
int result)
傳送某項指令給對方後,回傳給 Web 對方的回應。
|
(package private) void |
sendGameResult(java.lang.String result)
傳送遊戲結果給 Web 顯示。
|
protected void |
sendMove(java.lang.String data,
int noEatFlip,
int step_time,
int total_spent_time,
int time,
int oppoTime,
boolean isLast)
傳送走步給 Search。
|
(package private) void |
setColor(int color)
設置此玩家的顏色給 Search。
|
protected void |
setGameInfo(client.SettingFile setting,
java.lang.String midboard,
int myTime,
int[] player_times,
java.lang.Integer[] step_time,
java.lang.Integer[] total_spent_time)
設置初始遊戲資料給 Search。
|
(package private) void |
setisFinish(BooleanHolder isFinish)
設置遊戲是否結束。
|
(package private) void |
setOppoisHuman(boolean isHuman)
因為某些指令需要判別對方是否是人類還是 AI,因此需要設置對方的玩家類別。
|
(package private) void |
setPlayerName(java.lang.String first_move_name,
java.lang.String second_move_name)
傳送玩家的名稱給 Web 顯示。
|
protected void |
stopSearch()
停止 Search 運行。
|
getConnectInfo, getErrorInfo, getStderrStamps, getStdoutStamps
private CDC_Board board
private java.lang.String color
private int playerNum
private boolean oppoIsHuamn
private boolean isLocal
private BooleanHolder isFinish
private final int TIMEOUT
Human(client.Room_SettingFile.BoardOpenType type, client.SettingFile.STARTMODE startMode, client.Room_SettingFile.BoardDisconnectAutoRestart restart, CDC_Room room, CDC_Game game, boolean isLocal, boolean isCLI, boolean isPlay, boolean needCloseWeb) throws client.Warning
type
- 盤面開啟方式 (CDC_Board 初始用)。startMode
- 開房還是加房 (CDC_Board 初始用)。room
- 房間頁面 (CDC_Board 初始用)。isLocal
- 判斷是否為本地伺服器。isCLI
- 是否目前為 CLI mode。client.Warning
- 發生錯誤。protected client.Packet askMove() throws client.Warning
askMove
in class SearchConnect
Packet
) 的封包,內含動作代碼和走步。client.Warning
protected void sendMove(java.lang.String data, int noEatFlip, int step_time, int total_spent_time, int time, int oppoTime, boolean isLast) throws client.Warning
sendMove
in class SearchConnect
data
- Server 傳送過來的走步完整資料(包含走步、時間等)。noEatFlip
- 無吃翻數字。step_time
- 當前走步所花費的時間。total_spent_time
- 此走步玩家到當前走步所花費的時間累計。time
- 我方玩家所剩餘的時間。oppoTime
- 對手剩餘時間。isLast
- 這步是否為最後一步,避免 Search 多走一步。client.Warning
void sendGameResult(java.lang.String result) throws client.Warning
result
- 遊戲結果。client.Warning
- 發生錯誤。void setPlayerName(java.lang.String first_move_name, java.lang.String second_move_name)
first_move_name
- 先手玩家名稱。second_move_name
- 後手玩家名稱。client.Packet askDrawOffer(BooleanHolder semaphore) throws client.Warning
semaphore
- 用來決定是否需要繼續詢問。Packet
的 class,並傳送給伺服器。client.Warning
- 發生錯誤。client.Packet askUndo() throws client.Warning
Packet
的 class,並傳送給伺服器。client.Warning
- 發生錯誤。client.Packet listenDrawOfferStep(BooleanHolder semaphore) throws client.Warning
semaphore
- 用來決定是否需要繼續詢問。Packet
的 class,並傳送給伺服器。client.Warning
- 發生錯誤。void sendCommandResult(java.lang.String type, int result) throws client.Warning
type
- 某項指令的類別。result
- 對方的回應。client.Warning
- 發生錯誤。protected void setGameInfo(client.SettingFile setting, java.lang.String midboard, int myTime, int[] player_times, java.lang.Integer[] step_time, java.lang.Integer[] total_spent_time) throws client.Warning
setGameInfo
in class SearchConnect
setting
- 此房間的遊戲參數。midboard
- 遊戲初始盤面。myTime
- 我方初始時間。player_times
- 雙方初始剩餘時間。step_time
- 初始盤面各走步花費時間。total_spent_time
- 初始盤面從第一步到各走步雙方所累計的花費時間。client.Warning
- 發生錯誤。protected void gameStart(int playerNum, boolean firstMove) throws client.Warning
gameStart
in class SearchConnect
playerNum
- 玩家編號。client.Warning
protected void stopSearch()
stopSearch
in class SearchConnect
void restartBoard() throws client.Warning
client.Warning
- 發生錯誤。void setColor(int color)
color
- 玩家顏色。void setOppoisHuman(boolean isHuman)
isHuman
- 是否是人類。void setisFinish(BooleanHolder isFinish)
isFinish
- 是否結束。void resetBoard(CDC_Board new_board)
新的
- instance。protected java.lang.String getInteractiveLog()
getInteractiveLog
in class SearchConnect