自己写的java保龄球记分
2018-08-10 16:00
169 查看
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】保龄球记分游戏
- 自己初学Java给自己设计的排序算法遇到的一些问题
- 自己定义java注解
- Java 实现 淘宝秒杀 聚划算 自己主动提醒 源代码
- 周末反省自己 Java
- [置顶] android开发之java的一些基础知识详解,java编程语法,扎实自己的android基本功
- 【ThinkingInJava】6、测试自己的输出类库
- 如何用Java自己写一个.exe程序
- 自己理解的java.util.ArrayList(一)设计及接口
- 在网上找了个java小游戏的实例,敲完后发现没有main,自己加了个后,无法运行请问是什么问题 [ Java SE]
- java获得自己本机的外网ip(通过代理服务器)
- java.lang.OutOfMemoryError错误总结+自己的总结
- 你知道java每一个版本都有自己的名字吗?
- 初学java,自己写的学员管理系统
- Java基础,这是自己看视频总结的,可能有点乱
- 【IntelliJ IDEA】Maven构建自己的第一个Java后台的方法
- 自己写的javaGUI记事本
- 刚学完Java,老师居然没讲界面~~,于是自己上网自学了下,利用周末写下了这个贪吃蛇和他家分享
- 关于提高自己JAVA水平的十大技术