/*
模拟彩票:
随机生成6个0-15的数字,再从键盘录入6个0-15的数字,
当随机生成的数字和键盘录入的数字:
3个一样,中三等奖
4个一样,中二等奖
5个一样,中一等奖
全部一样,中特等奖
最终打印样式如下:
"您的号码为XX,XX,XX,XX,XX,XX,中了X等奖,恭喜您!"或者
"您的号码为XX,XX,XX,XX,XX,XX,没有中奖,!"
*/
import java.util.ArrayList;
import java.util.Collections;
import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;
public class LotteryDemo2 {
//存放0-15的集合
static ArrayList<Integer> allNum =new ArrayList<Integer>();
//存放6个不重复的彩票号码的集合
static ArrayList<Integer> lotteryNum =new ArrayList<Integer>();
//存放用户猜测6个数字的集合
static ArrayList<Integer> userNum =new ArrayList<Integer>();
static Random rd =new Random();
static Scanner sc =new Scanner(System.in);
public static void main(String[] args) {
//调用方法给allNum集合赋值
setAllNum();
//调用方法给lotteryNum集合赋值
setLotteryNum();
//调用方法给userNum集合赋值
setUserNum();
//调用方法,输出彩票中奖结果
getResult();
}
//将0-15数字存放到allNum集合中去
public static void setAllNum(){
for (int i = 0; i < 16; i++) {
allNum.add(i);
}
}
//将6个不重复的彩票号码放到lotteryNum集合中去
private static void setLotteryNum() {
for (int i = 0; i < 6; i++) {
//随机得到allNum集合的角标
int index = rd.nextInt(allNum.size());
//每循环一次,allNum集合就移出指定角标的数字,集合长度减一,;并将移出的数字赋值给lotteryNum集合
int value = allNum.remove(index);
lotteryNum.add(value);
}
//得到集合后给集合中的数字进行排序
Collections.sort(lotteryNum);
}
//将用户输入的6个不重复的0-15之间的数字放到userNum集合中去
private static void setUserNum() {
for (int i = 0; i <6; i++) {
System.out.println("请输入您猜测的0-15之间的彩票号码:");
//用户键盘录入数字
int guess = sc.nextInt();
//对用户录入的数字进行判断,合法则添加到userNum集合中去,不合法则重新输入
if(guess>15||guess<0){//如果录入的数字没在0-15之间,让用户重新输入,指针i--,保证用户输入6个不重复的数字
System.out.println("您输入的数字是"+guess+",没在0-15之间,请重新输入:");
i--;
}else{
if(userNum.contains(guess)){
System.out.println("您输入的数字是"+guess+",已经输入过了,请重新输入:");
i--;
}else{
userNum.add(guess);
}
}
}
//将userNum集合排序
Collections.sort(userNum);
}
private static void getResult() {
//遍历userNum和lotteryNum集合,判断有多少一样 的数字
int sameNumber = 0;
for (Integer user : userNum) {
for(Integer lottery: lotteryNum){
if(user==lottery){
sameNumber++;
}
}
}
//拼接得奖结果字符串
System.out.print("您的号码为");
for (Integer i: userNum) {
System.out.print(i+",");
}
switch(sameNumber){
case 3:
System.out.println("中三等奖,恭喜您");
break;
case 4:
System.out.println("中二等奖,恭喜您");
break;
case 5:
System.out.println("中一等奖,恭喜您");
break;
case 6:
System.out.println("中特等奖,恭喜您");
break;
default :
System.out.println("没有中奖!");
}
}
}
|
|