自己寫的java保齡球記分

來源:互聯網
上載者:User

標籤:package   返回   title   int   .com   first   images   RoCE   數組   

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<frame;countframe++){        int firstThrow = bowlingScore[ball++];        if(firstThrow==10){            score= score+10+bowlingScore[ball]+bowlingScore [ball+1];        }else{            int secondThrow = bowlingScore[ball++];            int framScore = firstThrow+secondThrow;            if(framScore==10){                score=framScore+bowlingScore[ball]+score;            }else{                score = framScore+score;            }        }    }    return score;}//測試public static void main(String[] args) {Game g = new Game();g.add(1);g.add(4);g.add(4);g.add(5);g.add(6);g.add(4);g.add(5);g.add(5);g.add(10);g.add(0);g.add(1);g.add(7);g.add(3);g.add(6);g.add(4);g.add(10);g.add(2);g.add(8);g.add(6);System.out.println(Arrays.toString(g.bowlingScore));System.out.println(g.getcurrentFrame());for(int i = 1;i<11;i++){System.out.print(g.scoreForFrame(i)+  "  ");}}}

自己沒看書敲的,就是先看了書擺脫不了書上思路的影響了,下次還是應該先敲一遍在看書.做測試也實在函數裡寫個main函數做測試,根本就不是那啥敏捷開發那樣寫測試類別,重構倒是有點感覺了 雖然沒喲進行重構

自己寫的java保齡球記分

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.