JAVA初级写程序:双色球游戏

一、    练习目标

1.      掌握数据类型和运算符

2.      掌握流程控制

3.      掌握数组

4.      掌握方法的定义和调用

5.      提高代码调试能力

全部讲解和练习时间控制在4小时以内   

 

二、    项目需求

双色球投注区分为红色球号码区和蓝色球号码区,

红色球号码区由1-3333个号码组成,蓝色球号码区由1-1616个号码组成。

投注时选择6个红球号码和1个蓝球号码组成一注进行单式投注,每注金额2元。

一等奖:投注号码与当期开奖号码全部相同(顺序不限,下同),即中奖;

二等奖:投注号码与当期开奖号码中的6个红色球号码相同,即中奖;

三等奖:投注号码与当期开奖号码中的任意5个红色球号码和1个蓝色球号码相同,即中奖;

四等奖:投注号码与当期开奖号码中的任意5个红色球号码相同,或与任意4个红色球号码和1个蓝色球号码相同,即中奖;

五等奖:投注号码与当期开奖号码中的任意4个红色球号码相同,或与任意3个红色球号码和1个蓝色球号码相同,即中奖;

六等奖:投注号码与当期开奖号码中的1个蓝色球号码相同,即中奖。

三、提供的素材

      关键代码截图

四、代码如下:(望指正)

         

import java.util.Scanner;
class Home{
 public void show1(){
  System.out.println("*****欢迎进入双色球彩票系统*****");
  System.out.println("      1、购买彩票");
  System.out.println("      2、查看开奖");
  System.out.println("      3、退出");
  System.out.println("*************************");
  System.out.print("请选择菜单:");
 }
}
class Buy{
 public void show2(){
  System.out.println("红色号码区:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18");
  System.out.println("        19 20 21 22 23 24 25 26 27 28 29 30 31 32 33");
  System.out.println("蓝色号码区:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16");
  System.out.println("*************************");
  System.out.println("      1、自选一注 ");
  System.out.println("      2、机选一注");
  System.out.println("*************************");
  System.out.print(" 请选择(1或2):");
 }
 public void input(int[] arr){         //用户输入所买彩票
  System.out.println("请选择一注彩票(六个红球,一个蓝球)每注两元:");
  Scanner sc = new Scanner(System.in);
  for(int i=0;i<7;i++){
   arr[i]=sc.nextInt();
   if(arr[i]<1||arr[i]>33){
    System.out.println("对不起,此数字超出范围,请重新输入此位数字。");
    i--;
   }
   for(int o=0;o<i;o++){
    if(arr[i]==arr[o]){
     System.out.println("对不起,此数字重复,请重新输入此位数字。");
     i--;
    }
   }
  }
 }
 public void randomInput(int[] arr){        //随机选择一注彩票
  arr[0]=(int)(Math.random()*7)+1;
  for(int n=0;n<6;n++){
   arr[n]=(int)(Math.random()*33)+1;
   for(int u=0;u<n;u++){
    if(arr[n]==arr[u]){
     n--;
    }
   }
  }
  arr[6]=(int)(Math.random()*16)+1;
 }
 public void printArr(int[] arr){        //数组遍历
  System.out.print("您下注的彩票为:");
  for(int x=0; x<arr.length; x++){
   System.out.print(arr[x]+" ");
  }
  System.out.println();
  System.out.println("投注成功");
 }
}
class LotteryQuery{
 int y=0;
 public void randomPrint(int[] arr0){       //随机的开奖号码
  arr0[0]=(int)(Math.random()*7)+1;
  for(int n=0;n<6;n++){
   arr0[n]=(int)(Math.random()*33)+1;
   for(int u=0;u<n;u++){
    if(arr0[n]==arr0[u]){
     n--;
    }
   }
  }
  arr0[6]=(int)(Math.random()*16)+1;
 }
 public void lottery(int[] arr0,int[] arr){      //开奖号码和所选号码的红球对比
  for(int i=0; i<arr0.length-1; i++){
   for(int z=0; z<arr.length-1; z++){
    if(arr[z] == arr0[i]){
     y+=1;
    }
   }
  }
 }
 public void query(int[] arr0,int[] arr){
  System.out.print("开奖号码为:");
  for(int x=0; x<arr0.length; x++){
   System.out.print(arr0[x]+" ");
  }
  System.out.println();
  System.out.print("您的号码为:");
  for(int x=0; x<arr.length; x++){
   System.out.print(arr[x]+" ");
  }
  System.out.println();
  if(y==6 && arr0[6]==arr[6]){        //判断获得了几等奖
   System.out.println("恭喜您获得一等奖!");
  }else if(y==6){
   System.out.println("恭喜您获得二等奖!");
  }else if(y==5 && arr0[6]==arr[6]){
   System.out.println("恭喜您获得三等奖!");
  }else if(y==5 || y==4 && arr0[6]==arr[6]){
   System.out.println("恭喜您获得四等奖!");
  }else if(y==4 || y==3 && arr0[6]==arr[6]){
   System.out.println("恭喜您获得五等奖!");
  }else if(arr0[6]==arr[6]){
   System.out.println("恭喜您获得六等奖!");
  }else{
   System.out.println("很遗憾您没有中奖");
  }
 }
}
public class ShuangSeQiu {
 public static void main(String[] args){
  Scanner s =new Scanner(System.in);
  //int[] arr0 = new int[7];         //定义开奖数组(随机)
  int[] arr0 = {1,2,3,4,5,6,7};
  int[] arr = new int[7];           //定义买奖数组
  for(int k=0; k<100; k++){         //主菜单循环
   Home a = new Home();
   a.show1();  
   int option = s.nextInt();        //输入菜单选项(1、2、3)
   if(option == 1){          //主菜单选1   购买彩票
    Buy b = new Buy();
    b.show2();
    Scanner sc = new Scanner(System.in);
    int d=sc.nextInt();
    if(d==1){
     b.input(arr);
     b.printArr(arr);
    }else if(d==2){
     b.randomInput(arr);
     b.printArr(arr);
    }else{
     System.out.println("没有此选项,请输入正确的选项");
    }
   }else if(option == 2){         //主菜单选2  开奖查询
    LotteryQuery c = new LotteryQuery();
    //c.randomPrint(arr0);
    c.lottery(arr0,arr);
    c.query(arr0,arr);
   }else if(option == 3){         //主菜单选3  退出主菜单循环
    System.out.println("已安全退出系统,谢谢使用。");
    break;
   }else{
    System.out.println("没有此选项,请输入正确的选项");
   }
  }
 }
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值