public class CDC_Game
extends client.Game
Game
Modifier and Type | Field and Description |
---|---|
private int |
Abort |
private java.lang.Runnable |
AskMoveRunnable |
private java.lang.String |
BoardRecordDirName |
private SearchConnect |
connect |
private BooleanHolder |
DOReadResponseRunning |
private java.lang.Thread |
DOReadResponseThread |
private BooleanHolder |
DOReadStepRunning |
private java.lang.Thread |
DOReadStepThread |
private int |
Draw |
private double |
FirstScore |
private java.lang.String |
GameResult |
private java.lang.String |
InitialBoard |
private int[] |
LastResult |
private java.util.concurrent.locks.Lock |
lock |
private int |
Lose |
private boolean |
MidBoardFirstStep |
private boolean |
needToCleanDebugInfo |
private boolean |
opponentisHuman |
private java.lang.String |
opponentName |
private int |
OppoTime |
private int |
PlayerNum |
private java.lang.String |
Search_Name |
private java.lang.String |
Search_Version |
private long |
searchTime |
private double |
SecondScore |
private static long |
SECTOMILLISEC |
private java.lang.String |
stderr_stamp |
private java.lang.String |
stdout_stamp |
private java.util.ArrayList<java.lang.Integer> |
step_time |
private java.util.ArrayList<java.lang.String> |
steps |
private int |
TakeColor |
private int[] |
TakeTime |
private int |
Time |
private java.util.ArrayList<java.lang.Integer> |
total_spent_time |
private int |
Turn |
private int |
Win |
Constructor and Description |
---|
CDC_Game(client.Server server,
CDC_SettingFile setting,
CDC_Room room,
client.Room_SettingFile roomSetting,
boolean isCLI,
boolean isPlay,
java.lang.Integer specific_roomID)
constructor。
|
Modifier and Type | Method and Description |
---|---|
protected void |
analysisAction(client.Packet p)
針對 Server 發送來的指令做出相對應的動作。
|
protected java.util.List<java.lang.String> |
chooseRoomList(boolean isCLI,
boolean isPlay,
java.lang.Integer specific_roomID)
讓使用者選擇房間,依照是否是 CLI,做出相對應的動作。
|
protected void |
closeGame()
關閉整個遊戲。
|
protected java.lang.String |
genOpenRoomInfo()
開房方需要取得使用者設定的參數,傳送給伺服器開房。
|
protected java.lang.String[] |
getActionName()
取得遊戲動作指令的名稱,方便 Debug。
|
protected client.Contest |
getContestDialog(client.Room room,
client.Room_SettingFile roomSetting)
取得此遊戲的比賽頁面顯示 Dialog。
|
protected java.lang.String |
getEnterRoomParameter()
取得加房參數。
|
protected java.lang.String |
getFinishInfo()
取得此遊戲比賽結束後的顯示訊息,可能可以給比賽結果或分數統計。
|
protected java.lang.String |
getInitBoard()
開房方依照使用者設定,取得初始盤面。
|
protected int |
getPlayerKind()
回傳加房方的玩家類型。
|
protected java.lang.String |
getSearchInfo()
取得 Search 的相關資訊。
|
protected java.lang.String |
getSearchInteractiveLog()
取得和 Search 的所有互動字串,提供使用者 Debug。
|
private java.lang.String |
readMidBoard(java.lang.String filename) |
protected void |
setEnterRoomInfo(java.util.List<java.lang.String> roomInfo,
boolean isTransform)
加房方將伺服器傳送過來的房間遊戲資訊記錄到 Setting 檔案中。
|
protected void |
startBoard(boolean isMid,
boolean auto)
開啟 Web 盤面。
|
protected void |
startSearch()
啟動 Search 程式。
|
protected void |
stopSearch()
關閉 Search 程式。
|
private void |
writeBoard(java.lang.String result,
double firstscore,
double secondscore,
java.lang.String board,
java.lang.String stdout_stamp,
java.lang.String stderr_stamp,
java.lang.String stdout,
java.lang.String stderr)
輸出伺服器傳送過來的 log 檔案成 txt 檔案。
|
close, ErrorOccur, openBoard, RecvData, run, SendData, showCountDownDialog, waitTimer
activeCount, checkAccess, clone, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield
private SearchConnect connect
private int Turn
private int TakeColor
private int[] TakeTime
private int PlayerNum
private java.lang.String opponentName
private boolean opponentisHuman
private int Time
private int OppoTime
private long searchTime
private int Win
private int Draw
private int Lose
private int Abort
private int[] LastResult
private java.lang.String BoardRecordDirName
private java.lang.String GameResult
private double FirstScore
private double SecondScore
private java.lang.String InitialBoard
private boolean MidBoardFirstStep
private boolean needToCleanDebugInfo
private java.lang.Thread DOReadStepThread
private BooleanHolder DOReadStepRunning
private java.lang.Thread DOReadResponseThread
private BooleanHolder DOReadResponseRunning
private java.lang.Runnable AskMoveRunnable
private java.lang.String stdout_stamp
private java.lang.String stderr_stamp
private java.util.ArrayList<java.lang.String> steps
private java.util.ArrayList<java.lang.Integer> step_time
private java.util.ArrayList<java.lang.Integer> total_spent_time
private java.lang.String Search_Name
private java.lang.String Search_Version
private java.util.concurrent.locks.Lock lock
private static final long SECTOMILLISEC
public CDC_Game(client.Server server, CDC_SettingFile setting, CDC_Room room, client.Room_SettingFile roomSetting, boolean isCLI, boolean isPlay, java.lang.Integer specific_roomID)
server
- 與 Server 之間的 Socket 連線。setting
- 遊戲參數。room
- 房間頁面的 instanceroomSetting
- 房間參數。isCLI
- 當前是否為 CLI mode。protected void analysisAction(client.Packet p) throws client.Warning
analysisAction
in class client.Game
p
- 伺服器發過來的封包。client.Warning
protected void startSearch() throws client.Warning
startSearch
in class client.Game
client.Warning
protected void startBoard(boolean isMid, boolean auto) throws client.Warning
startBoard
in class client.Game
client.Warning
protected java.lang.String genOpenRoomInfo()
genOpenRoomInfo
in class client.Game
private void writeBoard(java.lang.String result, double firstscore, double secondscore, java.lang.String board, java.lang.String stdout_stamp, java.lang.String stderr_stamp, java.lang.String stdout, java.lang.String stderr) throws client.Warning
result
- 遊戲結果firstscore
- 先手分數secondscore
- 後手分數board
- 伺服器傳送過來的 log 檔案stdout_stamp
- 標準輸出的郵戳(用來指示走步大概的範圍)stderr_stamp
- 標準錯誤輸出的郵戳(用來指示走步大概的範圍)stdout
- 標準輸出字串stderr
- 標準錯誤字串client.Warning
- 發生錯誤。private java.lang.String readMidBoard(java.lang.String filename) throws java.lang.Exception
java.lang.Exception
protected java.lang.String getInitBoard() throws client.Warning
getInitBoard
in class client.Game
client.Warning
protected java.lang.String getEnterRoomParameter()
getEnterRoomParameter
in class client.Game
protected void setEnterRoomInfo(java.util.List<java.lang.String> roomInfo, boolean isTransform)
setEnterRoomInfo
in class client.Game
protected int getPlayerKind()
getPlayerKind
in class client.Game
protected void closeGame()
closeGame
in class client.Game
protected void stopSearch()
stopSearch
in class client.Game
protected java.lang.String[] getActionName()
getActionName
in class client.Game
protected java.util.List<java.lang.String> chooseRoomList(boolean isCLI, boolean isPlay, java.lang.Integer specific_roomID) throws client.Warning
chooseRoomList
in class client.Game
isCLI
- 是否是 CLI mode。client.Warning
protected client.Contest getContestDialog(client.Room room, client.Room_SettingFile roomSetting)
getContestDialog
in class client.Game
room
- 用來置中在 room 的參數。protected java.lang.String getFinishInfo()
getFinishInfo
in class client.Game
protected java.lang.String getSearchInfo()
getSearchInfo
in class client.Game
protected java.lang.String getSearchInteractiveLog()
getSearchInteractiveLog
in class client.Game