package?com.java.bowlingscore1;import?java.util.Arrays;public?class?Game?{????int[]?bowlingScore?=?new?int[21];?//用來存放投擲擊倒的數目????int?ball=0;???????????????????????//數組下標????int?score;//分數????int?countframe=0;//記錄當前是第幾輪????boolean?firstThrow=true;//判斷是不是第一次投擲????public?void?add(int?pins){//添加分數?將分數添加到數組中????????bowlingScore[ball++]?=?pins;????????judgefirstThrow(pins);??????????//調用下面的判斷函數????}/*firstthrow?默認為真由規則可以知道第一球如果全中就進入下一輪了,因此?*?首先判斷添加的是不是為10,是就直接讓countframe加1,不是就把firstthrow改為false,?*??*??第二次調用add的時候firstthrow為false投兩次一輪結束?countframe加1,?*??將firstthrow改為true?**/??public?void?judgefirstThrow(int?pins){?????if(firstThrow){????????if(pins==10){????????????countframe++;????????}else{????????????firstThrow=false;????????}????}else{????????firstThrow=true;????????countframe++;????}}public?int?getcurrentFrame(){?//返回這是第幾輪????return?countframe;}public?int?score(){???????//返回當前輪的得分????return?scoreForFrame(countframe);}/*?*?當前輪的計算方法循環當前輪的次數?*?a[0]賦值第一次擊球firstthrow?然后下標自增一;判斷第一次都不是擊倒了10個?*?規則?保齡球一輪兩個球?第一個全中就是之前的分數+10+后面兩次投擲的分數?*?補中?兩次一共擊倒10個?之前的分數加兩次擊倒的10分加后面一次的的分數?*?*/public?int?scoreForFrame(int?frame){????int?score=0;????int?ball=0;????for(int?countframe=0;countframe
自己沒看書敲的,就是先看了書擺脫不了書上思路的影響了,下次還是應該先敲一遍在看書.做測試也實在函數里寫個main函數做測試,根本就不是那啥敏捷開發那樣寫測試類,重構倒是有點感覺了 雖然沒喲進行重構