android培训——我的java笔记,期待与您交流!
今天用JAVA写了一个小游戏,模拟双色球彩票。
这是一个比较简单的小程序,应用到JAVA的基本语法,逻辑不是很麻烦,需要注意的有第二个部分生成系统号码处,利用一个数组产生不重复的号码。
1、首先定义需要的变量
// 存储系统生成的红球
int[] sysRedBall = new int[6];
// 存储系统生成的蓝球
int sysBlueBall = 0;
// 用户选择的红球
int[] userRedBall = new int[6];
// 用户选择的蓝球
int userBlueBall = 0;
// 正确的红球个数
int redCount = 0;
// 正确的蓝球个数
int blueCount = 0;
// 随机产生系统产生的号码
Random random = new Random();
2、生成系统号码
// 红球号码
// 为了防止号码不重复,另没个选中过后的号码相应的redBall[i]=-1;
int[] 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 };
for (int i = 0; i < sysRedBall.length; i++) {
while (true) {
index = random.nextInt(33);
if (redBall[index] != -1) {
// 产生一个在0-32之间随机数
sysRedBall[i] = redBall[index];
// 标明已经被取走了,不会再取到以至于产生重复的号码
redBall[index] = -1;
break;
}
}
}
// 蓝球号码
sysBlueBall = random.nextInt(16) + 1;
3、接受用户的选号
System.out.print("请选择红球号码 (1-33)");
Scanner in = new Scanner(System.in);
for (int i = 0; i < userRedBall.length; i++) {
userRedBall[i] = in.nextInt();
}
System.out.println("请选择蓝球号码(1-16)");
userBlueBall = in.nextInt();
4、验证是否中奖
if (redCount == 6 && blueCount == 1) {
System.out.println("恭喜你,中了一等奖500万!");
} else if (redCount == 6 && blueCount == 0) {
System.out.println("恭喜你,中了二等奖50万!");
} else if (redCount == 5 && blueCount == 1) {
System.out.println("恭喜你,中了三等奖3000块!");
} else if (redCount == 5 || (redCount == 4 && blueCount == 1)) {
System.out.println("恭喜你,中了四等奖500块!");
} else if (redCount == 4 && (redCount == 3 && blueCount == 1)) {
System.out.println("恭喜你,中了五等奖200块!");
} else if (blueCount == 1) {
System.out.println("恭喜你,中了六等奖5块!");
} else {
System.out.println("感谢您的支持,下次加油哦!!!");
}
5、输出结果,并对红球的结果进行排序
int temp;
// 简单的冒泡排序
for (int i = 0; i < sysRedBall.length; i++) {
for (int j = 0; j < sysRedBall.length - i - 1; j++) {
if (sysRedBall[j] > sysRedBall[j + 1]) {
temp = sysRedBall[j];
sysRedBall[j] = sysRedBall[j + 1];
sysRedBall[j + 1] = temp;
}
}
}
System.out.print("本期中奖的红球号码为:");
for(int i = 0; i < sysRedBall.length; i++){
System.out.print(sysRedBall[i] + " ");
}
System.out.println();
System.out.print("本期蓝球号码为:" + sysBlueBall);