Java基本语法_循环练习系列(一)——模拟双色球

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Java基本语法_循环练习系列(⼀)——模拟双⾊球
⽬前正在⾃学java中,学完循环这⼀块,简单写⼏个例⼦,使之更加熟练掌握循环语句和条件语句。

简述⼀下要这段代码要完成的任务:
/*有33个红⾊球,16个蓝⾊球。

在33个⾥选6个 ,16个⾥选1个。

加起来是7个号码。

⼀等奖:7个号码相符(6个红⾊球号码和1个蓝⾊球号码)(红⾊球号码顺序不限,下同)奖⾦为当期⾼等奖奖⾦的70%加上奖⾦池⾥的。

⼆等奖:6个红⾊球号码相符;奖⾦为当期⾼等奖奖⾦的30%
三等奖:5个红⾊球号码和1个蓝⾊球号码相符;固定3000元。

四等奖:5个红⾊球号码或4个红⾊球号码和1个蓝⾊球号码相符;固定200元
五等奖:4个红⾊球号码或3个红⾊球号码和1个蓝⾊球号码相符;固定10元
六等奖:1个蓝⾊球号码相符(有⽆红⾊球号码相符均可)。

固定5元 */
1import java.util.Arrays;
2import java.util.Random;
3import java.util.Scanner;
4
5public class Practice12 {
6
7/**
8 * @param args
9*/
10public static void main(String[] args) {
11// TODO Auto-generated method stub
12 System.out.println("------双⾊球游戏开始------");
13int[] sysRedBall=new int[6];
14int sysBlueBall;
15int[] userRedBall=new int[6];
16int userBlueBall;
17int j=0;
18int redCount=0;
19int blueCount=0;
20int[] redBall={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33};
21 Random r=new Random();
22 Scanner input=new Scanner(System.in);
23//系统开始随机产⽣
24//随机产⽣⼀个篮球
25 sysBlueBall=r.nextInt(16)+1;
26
27//随机产⽣6个红球
28for(int i=0;i<sysRedBall.length;i++){
29//while循环使⽤了⼀种算法,避免随机产⽣相同的数字,随机到的数字取值后就让它赋值为-1(重点,注意看)
30while(true){
31 j=r.nextInt(33);
32if(redBall[j]!=-1){
33 sysRedBall[i]=redBall[j];
34 redBall[j]=-1;
35break;
36 }
37 }
38 }
39
40
41//⽤户输⼊
42 System.out.println("下⾯请您输⼊你猜的中奖号码:");
43 System.out.print("请在数字(1~33)中选择6位数字:");
44for(int i=0;i<userRedBall.length;i++){
45 userRedBall[i]=input.nextInt();
46 }
47 System.out.print("请在数字(1~16)中选择1位数字:");
48 userBlueBall=input.nextInt();
49
50//统计相同的数量
51for(int u=0;u<userRedBall.length;u++){
52for(int s=0;s<sysRedBall.length;s++){
53if(userRedBall[u]==sysRedBall[s]){
54 redCount++;
55break;
56 }
57 }
58 }
59if(sysBlueBall==userBlueBall){
60 blueCount=1;
61 }
62//判断得奖状况
63if(redCount==6&&blueCount==1){
64 System.out.println("⼀等奖,奖⾦为当期⾼等奖奖⾦的70%加上奖⾦池⾥的");
65 }else if(redCount==6){
66 System.out.println("⼆等奖,奖⾦为当期⾼等奖奖⾦的30% ");
67 }else if(redCount==5&&blueCount==1){
68 System.out.println("三等奖,奖⾦为3000元 ");
69 }else if(redCount==5||(redCount==4&&blueCount==1)){
70 System.out.println("四等奖,奖⾦为200元 ");
71 }else if(redCount==4||(redCount==3&&blueCount==1)){
72 System.out.println("五等奖,奖⾦为10元 ");
73 }else if(blueCount==1){
74 System.out.println("六等奖,奖⾦为5元 ");
75 }else{
76 System.out.println("很遗憾,继续努⼒! ");
77 }
78//输出本期中奖号码
79//Arrays.sort(sysRedBall);//使⽤API中⾃带的Arrays类,sort()⽅法是进⾏升序排序80//下⾯for嵌套循环使⽤了冒泡排序法
81for(int i=0;i<sysRedBall.length-1;i++){
82for(int h=0;h<sysRedBall.length-1-i;h++){
83if(sysRedBall[h]>sysRedBall[h+1]){
84int temp=sysRedBall[h];
85 sysRedBall[h]=sysRedBall[h+1];
86 sysRedBall[h+1]=temp;
87 }
88
89 }
90 }
91 System.out.print("本期红球号码为:");
92for(int red=0;red<sysRedBall.length;red++){
93 System.out.print(sysRedBall[red]+" ");
94 }
95 System.out.println();
96 System.out.println("本期篮球号码为:"+sysBlueBall);
97 }
98 }
望各位⼤神多多指教,给出意见,谢谢啦!。

相关文档
最新文档