實現過程:
一、棋盤類
chessboard
1.初始化棋盤時,給每個元素賦值「十」,下棋時把「十」替換成棋子即可。 2.
輸出棋盤時,
system.out.print()
是只輸出不換行的,
system.out.println()
是輸出後自動換行的,所以應使用前者,使用迴圈巢狀語句,輸出完一行後使用
system.out.print(「\n」)
來換行一次。 3.
獲取棋盤,定義陣列時只需要在型別名後加
[ ]即可。
二、列舉類
chessman
構造器必須是私有的,以保證只能在內部建立,保證此物件只有黑子和白子兩種型別。
還可以建立棋子介面,是程式具有更好的擴充套件性,
三、遊戲類
先構造乙個空參構造器和乙個引數為
chessboard
的構造器。 1.
驗證輸入合法性:
isvalid()
輸入格式是否正確,是否超出棋盤範圍,此位置是否已經有棋子。 注:
1.split
的功能是將乙個字串分割為子字串,然後將結果作為字串陣列返回。可用任何符號作為分隔符,有些需要轉義,如:
split("\\*")
,也可用多個分隔符,用
|隔開,如:
split("\\@|*|#")。
2.integer.parseint()
的功能是把
string
型轉化為
int型。不能裝換時則拋
numberformatexception
異常。
2.判斷輸贏:
iswon()
每下一顆棋子就從左到右,從上到下,從左上到右下遍歷棋盤是否有連成五子。迴圈巢狀問題。是整個程式的難點之一。 3.
計算機隨機下棋:
computerdo() 使用
math.random
方法產生
0.0到
1.0之間的
double
陣列,再用該值乘以棋盤的大小,即可產生隨機座標。 4.
是否重新開始遊戲:
isreplay()
s1.equals(s2)
:判斷兩個物件的引用是否相等,即是否指向同乙個物件。 與
==的區別如下:
==是判斷兩個變數或例項是不是指向同乙個記憶體空間,
equals
是判斷兩個變數或例項所指向的記憶體空間的值是不是相同;
==是指對記憶體位址進行比較,
equals()
是對字串的內容進行比較;
==指引用是否相同,
equals()
指的是值是否相同。簡單講就是
==是看左右是不是乙個東西,
equals()
是看左右是不是相同。 5.
遊戲過程:
start()
獲取鍵盤輸入:
bufferedreader br=new bufferedreader(new inputstreamreader(system.in));
br.readline()
每當鍵盤輸入一行按下回車鍵,輸入的內容就被
br讀取。
UNIX C 檔案許可權 Part2 day01
1.檔案訪問測試 測試呼叫程序對指定檔案是否擁有足夠的訪問許可權 include int access const char pathname,int mode 成功返回0,失敗返回 1 pathname 檔案路徑 mode 訪問許可權,可取以下值 r ok 可讀否 w ok 可寫否 x ok 可執...
前端開發 Day4
本章介紹了 html 中較為常用的標籤的例項。您可能還沒接觸過這些例項,不過不用擔心,閱讀完本章您就能夠掌握它們了!html 標題 heading 是通過 你也可以通過實戰實驗來嘗試挑戰乙個 h2 標題的設定 html標題 實戰實驗 html 段落是通過標籤來定義的,p是英文paragraph段落的...
C 之銀行ATM例項 Part2
一 題目要求 在上一次 銀行系統atm part1 的基礎上,再一次改進,做乙個新的版本,增加新學的語法要素,如委託 事件與異常等。要求如下 上一版本中關於類 屬性 方法 繼承 修飾符等你不太滿意的地方 或者你從別人那裡學到的 可以進一步改進。改進的地方可以加上注釋說明。佔3分 程式中使用事件及委託...