Johnny850807 / Coding-GYM

自己菜鳥階段時在練習Java物件導向、設計模式時,所設計的題庫,此專案庫目前用來讓我的同學/學生 (欠調教的) 們提交程式碼來進行Review,欲參考OOP題目者可直接到Projects區觀看,題目皆(85%)擁有示範解答程式碼。ISSUE放的都是Code Review嘴砲。(物件導向設計學分兩階段→JAVA→設計模式)
24 stars 6 forks source link

圈圈叉叉:Joanna #88

Open Johnny850807 opened 7 years ago

Johnny850807 commented 7 years ago

你的Board資料流以及動線非常清晰明確, 尤其是判斷勝負的演算法是目前最有可讀性的一種寫法。

挑骨頭:

字元可讀性 image

改成 symbol >= '0' && symbol <= '9'

例外處理 image

雖然你已經保證了你的程式不會出現錯誤的格子選擇, 但是你之後還是要移動到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 };

當然,使用列舉才是王道。