java基础双色球,java双色球
java基础双色球,java双色球
最近谢了一个用java基础写的模拟双色球代码。希望对初学习java的同学们有些帮助。
import java.util.Scanner;
/**
* 本双色球的主要功能: 1.手动购买号码;2、机选号码;3、生成双色球;4、开奖。
*
* @author
*
*/
public class Lottery {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("欢迎来到暴富双色球系统!");
// 存储球的号码。红色球:1~6;7:蓝色球
int ball[] = new int[7];
while (true) {
System.out.println("请输入您要买的红球号码和篮球号码。如果机选请输入-1");
int inNum = sc.nextInt();
if (inNum == -1) {
// 机选,随机生成
// 随机生成红球
for (int i = 0; i < ball.length; i++) {
int redBall = (int) (Math.random() * 33 + 1);
if (!isSame(redBall, ball)) {
ball[i] = redBall;
}
}
// 存入蓝色球
ball[6] = (int) (Math.random() * 16 + 1);
} else {
// 如果输入的不是-1,输入的第一球为号码数字,直接存入到第1个位置(这里的位置为1-7)
ball[0] = inNum;
// 手动存入剩余的第2~6位置球的红球号码(这里的位置为1-7)
for (int i = 1; i < ball.length; i++) {
System.out.println("请输入第" + (i + 1) + "红球。");
// 从第二个球开始存放
inNum = sc.nextInt();
if (inNum > 33 || inNum < 1) {
System.out.println("您输入的号码有误,请重新输入。");
// 输入的红球号码非法,下标要回退 1
i--;
continue;
}
// 输入的红球号码已存在,下标要回退 1
if (isSame(inNum, ball)) {
i--;
} else {
ball[i] = inNum;
}
}
// 录入蓝色球
while (true) {
System.out.println("请输入蓝色球的号码。");
inNum = sc.nextInt();
if (inNum < 1 || inNum > 16) {
System.out.println("您的输入有误,请重新输入。");
} else {
ball[6] = inNum;
}
}
}
// 开奖,电脑生成7个球的号码
int machineBall[] = new int[7];
// 随机生成红球
for (int i = 0; i < machineBall.length; i++) {
int redBall = (int) (Math.random() * 33 + 1);
if (!isSame(redBall, machineBall)) {
machineBall[i] = redBall;
}
}
// 存入蓝色球
machineBall[6] = (int) (Math.random() * 16 + 1);
// 兑奖部分
int[] result = showMoney(ball, machineBall);
// 打印中奖的信息
if (result[0] == 6 && result[1] == 1) {
System.out.println("恭喜您中了一等奖:1000万元");
} else if (result[0] == 6) {
System.out.println("恭喜您中了2等奖:50万元");
} else if (result[0] == 5 && result[1] == 1) {
System.out.println("恭喜您中了3等奖:5000元");
} else if ((result[0] == 5 && result[1] == 0) || (result[0] == 4 && result[1] == 1)) {
System.out.println("恭喜您中了4等奖:300元");
} else if ((result[0] == 4 && result[1] == 0) || (result[0] == 3 && result[1] == 1)) {
System.out.println("恭喜您中了5等奖:10元");
} else if (result[1] == 1) {
System.out.println("恭喜您中了6等奖:5元");
} else {
System.out.println("再接再厉,千万大奖马上就来。");
}
// 测试用,打印号码信息
for (int i = 0; i < ball.length; i++) {
System.out.print(ball[i] + "\t");
}
System.out.println();
for (int i = 0; i < machineBall.length; i++) {
System.out.print(machineBall[i] + "\t");
}
}
}
/**
*
* @param ball
* 购买的号码
* @param machineBall
* 开奖号码
* @return 中奖结果
*/
private static int[] showMoney(int[] ball, int[] machineBall) {
// 记录中奖信息的数组0下标记录红球的中奖个数;1下标记录蓝色球中奖的个数
int result[] = new int[2];
// 判断红球相同的个数
for (int i = 0; i < machineBall.length - 1; i++) {
for (int j = 0; j < machineBall.length; j++) {
if (ball[i] == machineBall[j]) {
result[0]++;
}
}
}
if (ball[6] == machineBall[6]) {
result[1]++;
}
return result;
}
/**
*
* @param inNum
* 要检查的号码
* @param ball
* 存储号码的数组
* @return 输入的号码是否已经存在,true:存在;false:不存在
*/
private static boolean isSame(int inNum, int[] ball) {
for (int i = 0; i < ball.length; i++) {
if (inNum == ball[i]) {
// 输入的号码已经存在
return true;
}
}
// 不相同
return false;
}
}
相关文章
- 暂无相关文章
用户点评