Johnny850807 / Coding-GYM

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

踩地雷: Joanna #68

Open Johnny850807 opened 7 years ago

Johnny850807 commented 7 years ago

image

其實如果是Primitive屬性要初始化的話,習慣直接在欄位上做就可以囉。

private boolean isLandmine = false;
private boolean isOpen = false;
private int nearbyLandmineAmount = 0;

資料結構選用 image

因為踩地雷一開始就會決定大小了,所以不需要使用動態新增的串列唷,比起[][], ArrayList會把程式碼複雜化。

image

物件資料流劃分 image

因為"盤面",跟 "格子",是複合關係, (也就是如果要有盤面,就要先有格子。) 這種關係下,我們並不會希望格子是從外面傳進來的, (外包製作??) 因此會習慣直接在初始化的時候,直接自己建構二維格子就好。

物件責任劃分 image

之所以印出盤面這個函數會看起來如此複雜 是因為 盤面格子 的責任都做完了

盤面應該負責排版,而格子負責印出自己的內容, 因此─到底要印出地雷 還是 數字呢? 交給格子決定就好