Open Johnny850807 opened 7 years ago
你的Board資料流以及動線非常清晰明確, 尤其是判斷勝負的演算法是目前最有可讀性的一種寫法。
挑骨頭:
字元可讀性
改成 symbol >= '0' && symbol <= '9'
symbol >= '0' && symbol <= '9'
例外處理
雖然你已經保證了你的程式不會出現錯誤的格子選擇, 但是你之後還是要移動到Android上開發, 在這些容易出現邏輯錯誤的地方適時丟個例外, 對之後Debug都是一種幫助。
if (row >= 3 || row < 0 || col >= 3 || col < 0) throw new BlockIndexOutOfBoundException();
旗標
使用字元或整數來當作一種狀態時,稱為旗標(Flag), 旗標應該要定義成final,對可讀性跟維護性都是一種幫助。
public static final char CIRCLE = 'O'; public static final char CROSS = 'X';
如此一來往後你都可以直接使用這個常數
if (symbol >= CIRCLE && symbol <= CROSS ) wasSelected = false;
或者是
char[] symbol = {Block.CIRCLE , Block.CROSS };
當然,使用列舉才是王道。
你的Board資料流以及動線非常清晰明確, 尤其是判斷勝負的演算法是目前最有可讀性的一種寫法。
挑骨頭:
改成
symbol >= '0' && symbol <= '9'
雖然你已經保證了你的程式不會出現錯誤的格子選擇, 但是你之後還是要移動到Android上開發, 在這些容易出現邏輯錯誤的地方適時丟個例外, 對之後Debug都是一種幫助。
使用字元或整數來當作一種狀態時,稱為旗標(Flag), 旗標應該要定義成final,對可讀性跟維護性都是一種幫助。
如此一來往後你都可以直接使用這個常數
或者是
char[] symbol = {Block.CIRCLE , Block.CROSS };