Java:(游戏:豆机)
问题描述:
豆机,也称为梅花瓶或高尔顿瓶,它是一个用来做统计实验的设备,是用英国科学家瑟弗兰克斯高尔顿的名字来命名的。它是一个三角形状的均匀放置钉子(或钩子)的直立板子,如下图所示。
球都是从板子口落下的。每当球碰到钉子,它就有 50%的机会落向左边或落向右边。在板子底部的槽子中都会累积一堆球。编写程序模拟豆机。程序应该提示用户输入球的个数以及机器的槽数。打印每个球的路径模拟它的下落。例如:在图 b 中球的路径是LLRRLLR,而在图 c 中球的路径是 RLRRLRR。使用条形图显示橹中球的最终储备量。下面是程序的一个运行示例:
提示:创建一个名为 slots 的数组。数组 slots 中的每个元素存储的是一个槽中球的个数。每个球都经过一条路径落入一个槽中。路径上 R 的个数表示球落下的槽的位置。例如:对于路径 LRLRLRR 而言,球落到 slots[4]中,而对路径 RRLLLLL 而言,球落到 slots[2]中。
代码:
import java.util.Random;
import java.util.Scanner;public class Test20 {public static void main(String[] args) {Scanner in = new Scanner(System.in);System.out.print("Enter the number of balls to drop:");int balls_number = in.nextInt(); //定义小球数量System.out.print("Enter the number of slots in the bean machine:");int slots_number = in.nextInt(); //定义机器槽数String[][] track = new String[balls_number][slots_number-1];int[] position = new int[balls_number]; //定义数组存储小球最终位置,存储小球右偏次数track = trackOfBalls(balls_number,slots_number,position);int[] slots = resultOfSlots(slots_number,position); //slots统计每个槽掉落的小球数printTrack(track);printOfSlots(balls_number,slots_number,slots);in.close();}//返回0表示左,1表示右public static int isLeftOrRight() {Random r = new Random();return r.nextInt(2);}//判断小球的下落情况public static String[][] trackOfBalls(int balls_number,int slots_number,int[] position){String[][] track = new String[balls_number][slots_number-1]; //定义数组存储小球下落轨迹for(int i = 0; i < balls_number; i++) //外循环表示有多少个小球{for(int j = 0; j < slots_number - 1; j++) //内循环表示每个小球的下落轨迹{if(isLeftOrRight() == 0){track[i][j] = "L";}else{track[i][j] = "R";position[i]++;}}}return track;}//输出轨迹public static void printTrack(String[][] track) {for(int i = 0;i < track.length; i++){for(int j =0; j < track[i].length; j++){System.out.print(track[i][j]);}System.out.println();}}//统计每个槽掉落的小球数public static int[] resultOfSlots(int slots_number,int[] position) {int[] slots = new int[slots_number]; //slots统计每个槽掉落的小球数for(int i = 0; i < position.length; i++){for(int j= 0; j < slots_number; j++){if(j == position[i]){slots[j]++;break;}}}//for(int i=0;i<slots.length;i++)// System.out.print(slots[i]+" ");//System.out.println();return slots;}//输出每个槽中小球的情况public static void printOfSlots(int balls_number,int slots_numbers,int[] slots) {for(int i = balls_number; i > 0; i--){for(int j = 0; j < slots_numbers; j++){if(slots[j] < i)System.out.print(" ");elseSystem.out.print("O");}System.out.println();}}}
运行截图:
Java:(游戏:豆机)相关推荐
- 现在智能机怎么玩Java游戏,教你如何用安卓机玩JAVA老游戏
手机游戏早已经今非昔比,但有的情怀永远只属于过去,如何才能在现在的智能机中重温非智能时代的JAVA老游戏? 今天就来为大家介绍一款可以在安卓机玩JAVA游戏的小工具吧. 开启后,点击右下角的添加按钮, ...
- 安卓如何玩java游戏_情怀满满!教你如何用安卓机玩JAVA老游戏
如果你接触手机比较早,应该会玩过运行JAR程序的JAVA非智能机. 在诺基亚S40.索爱K系列流行的年代,无数小伙伴沉迷于JAVA游戏不能自拔,JAVA游戏在很多人的青春中都留下了浓墨重彩的一笔. 手 ...
- 安卓java游戏_情怀满满!教你如何用安卓机玩JAVA老游戏
[PConline 应用]如果你接触手机比较早,应该会玩过运行JAR程序的JAVA非智能机.在诺基亚S40.索爱K系列流行的年代,无数小伙伴沉迷于JAVA游戏不能自拔,JAVA游戏在很多人的青春中都留 ...
- 老年机能玩的java游戏_情怀满满!教你如何用安卓机玩JAVA老游戏
[PConline 应用]如果你接触手机比较早,应该会玩过运行JAR程序的JAVA非智能机.在诺基亚S40.索爱K系列流行的年代,无数小伙伴沉迷于JAVA游戏不能自拔,JAVA游戏在很多人的青春中都留 ...
- java keypad game,玩机技巧:手写笔控制JAVA游戏
手写笔控制JAVA游戏 1.进入JAVA游戏页面: 2.点下拉菜单键,选择Options-JavaPreferences. 3.进入设置菜单后:第一项(Preferences)设置为:Applicat ...
- 【JAVA资料免费下载】158个JAVA免豆精品资料汇总——下载目录
2019独角兽企业重金招聘Python工程师标准>>> 应广大网友要求,最近小弟整理了一批免积分下载的Java优质资料,因资料众多,一一将资料上传上来需要时间,先将下载目录分享给大家 ...
- Java游戏开发 —— 象棋
公司来活了,忙,暂时没空写完象棋AI这块,等以后再完善吧! 引言: 象棋的代码实现有点复杂,尤其是计算机的AI算法,在网上找了很多资料,费了好半天劲才弄明白其实现的原理,真的挺开阔思路的,很有意思! ...
- Java游戏开发框架LGame-0 2 8版发布(含JavaSE及Android版,已有文档)
LGame是LoonFramework框架的一部分,也可简称做"LF"或"Loon". LGame框架的创立初衷在于,构建一个高效且完善的Java游戏开发体系, ...
- 【Java游戏开发合集】毕业设计(附源码+资料+课件)
为正在准备毕业设计的小伙伴们以及想自学一些Java练手项目,小编终于整理出了本套视频课程(附源码+资料+课件),快来白嫖吧!!! 视频教程链接: 全站最全Java游戏合集!毕业设计!(附源码课件)8款 ...
- Java游戏开发 —— 五子棋
引言: 五子棋的代码实现很简单,难的是计算机的AI算法,在网上找了很多资料,费了好半天劲才弄明白其实现的原理,真的挺开阔思路的,很有意思! 思路: 1.创建主窗口,加载菜单及游戏面板. 2.在游戏面板 ...
最新文章
- [转] mongoose学习笔记(超详细)
- 垃圾回收器机制(一):对象存活及强,弱等各种引用辨析
- SD-WAN和MPLS有什么用途?
- Win10修改防火墙入站规则
- 【算法设计与分析】Dijskra算法代码:Java版
- 非常全的VS Code快捷键
- Alpha阶段-个人总结
- 小米pro gtx右下角存在图标显示不全
- 2017百度之星程序设计大赛 - 资格赛
- OBJ格式模型详细介绍
- Java类和对象(重点详解)
- 用把百分数转换成a,b,c,d,e等级
- S3C2410,ARM920T,试题总结
- 霹雳吧啦Wz语义分割学习笔记P1
- Codeforces Round #622 (Div. 2) C2. Skyscrapers (hard version)(单调栈)
- 央视“315晚会”上曝光的“网络水军”要怎么从技术上防范
- ci定位 lac,基站定位LAC,CID转经纬度
- numpy.random.seed()用法详解
- FlexRay™ 协议控制器 (E-Ray)-04
- 如何合并音频文件图文教程
热门文章
- Towards End-to-End Prosody Transfer for Expressive Speech Synthesis with Tacotron
- win7 增加Internet时间服务器
- 计算机网页的设计与应用的前言,网页设计前言.ppt
- 域名注册好了怎么使用 注册域名后需要备案吗
- 怎么用PDF裁剪工具来裁剪PDF页面
- PCA(主成分分析法)使用情景及排序企业综合实力示例
- Error:Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'的解决办法
- 华为手机如何更新鸿蒙系统_华为鸿蒙系统怎么升级?升级鸿蒙系统步骤
- Python 断言的使用
- Spring Security Oauth2 JWT、第三方登录、单点登录讲解,并使用Oauth2.0结合微服务进行单点登录