老师看一下,我这个双色球代码?我测试了一下,电脑自动抽奖没有一次中的,是不是写的有问题
package Javach04.com.bjsxt.array;
import java.util.Scanner;
import java.util.Arrays;
/**
* @author xiaoding
* 双色球项目
*/
public class Test9 {
static Scanner input = new Scanner(System.in);
public static void main(String[] args) {
Ball[] arry01 = new Ball[7]; //购买的彩色球号码
Ball[] arry02 = new Ball[7]; //开奖号码
int i; //输入号码
int numPrice = 2; //每注金额
int bettingPice = 0; //投注次数
int redNum = 0; //红色球
int lanNum = 0; //蓝色球
while(true) {
System.out.println("*****************欢迎进入双色球彩票系统*****************");
System.out.println("1.购买彩票");
System.out.println("2.查看开奖");
System.out.println("3.退出");
System.out.println("*******************************************************");
System.out.println("请选择菜单:");
if (input.hasNextInt()) {
i = input.nextInt();
switch(i) {
case 1:
System.out.println("======欢迎购买双色球======");
System.out.println(" 人工摇号:选择1");
System.out.println(" 机器摇号:选择2");
while(true) {
i = input.nextInt();
if (i == 1) {
artificial(arry01);
System.out.println();
System.out.println("投注次数");
bettingPice = input.nextInt();
break;
}else if (i == 2){
machine(arry01);
System.out.println();
System.out.println("投注次数");
bettingPice = input.nextInt();
break;
}else {
System.err.println("输入有误,请重新输入");
System.out.println("======欢迎购买双色球======");
System.out.println(" 人工摇号:选择1");
System.out.println(" 机器摇号:选择2");
continue;
}
}
break;
case 2:
lottery(arry02,arry01,bettingPice,redNum,lanNum);
break;
case 3:
System.out.println("退出双色球彩票系统");
System.exit(0);
break;
default:
System.err.println("选择不对,请重新输入");
break;
}
}else {
String num1 = input.next();
System.err.println("输入有误,请重新输入");
}
}
}
/*
* 人工购买双色球:
*/
public static void artificial(Ball[] arry01) {
System.out.println("红色球是:1~33个,蓝色球是:1~16个");
String name = "红色球";
int number;
for (int i = 0;i<arry01.length;i++) {
if (i<6) {
System.out.println("请选择第一" + i + "个" + name + "号码");
while(true) {
number = input.nextInt();
if ((number >= 1) && (number <= 33)) {
break;
}else {
System.err.println("输入有误,请重新输入");
}
}
arry01[i] = new Ball(name,number);
}else {
String name2 = "蓝色球";
System.out.println("请输入篮色球号码:");
while(true) {
number = input.nextInt();
if ((number >= 1) && (number <= 16)) {
break;
}else {
System.err.println("输入有误,请重新输入");
}
}
arry01[6] = new Ball(name2,number);
System.out.print(Arrays.toString(arry01) + " ");
}
}
}
/*
* 机器自动摇号
*/
public static void machine(Ball[] arry01) {
System.out.println("红色球是:1~33个,蓝色球是:1~16个");
String name = "红色球";
int number;
for (int i = 0;i<arry01.length;i++) {
if (i<6) {
number = (int)(Math.random() * (34 - 1) + 1);
for (int j = 0;j<arry01.length - 1;j++) {
if ((arry01[j] != null) && (arry01[j].getNum() == number)) {
arry01[i--] = null;
break;
}
}
arry01[i] = new Ball(name,number);
}else {
String name2 = "蓝色球";
number = (int)(Math.random() * (17 - 1) + 1);
arry01[6] = new Ball(name2,number);
}
}
System.out.print(Arrays.toString(arry01) + " ");
}
/*
* 开奖系统
*/
public static void lottery(Ball[] arry02,Ball[] arry01,int bettingPice,int redNum,int lanNum) {
//系统自动抽取中奖双色球号
String name = "红色球";
int number;
for (int i = 0;i<arry02.length;i++) {
if (i<6) {
number = (int)(Math.random() * (34 - 1) + 1);
for (int j = 0;j<arry02.length - 1;j++) {
if ((arry02[j] != null) && (arry02[j].getNum() == number)) {
arry02[i--] = null;
break;
}
}
arry02[i] = new Ball(name,number);
}else {
String name2 = "蓝色球";
number = (int)(Math.random() * (17 - 1) + 1);
arry02[6] = new Ball(name2,number);
}
}
//判断是否中奖
for (int k = 0;k<arry01.length;k++) {
if (k<6) {
for (int m = 0;m<arry02.length - 1;m++) {
if (arry01[k].equals(arry02[m])) {
redNum++;
}
}
}else {
if (arry01[k].equals(arry02[k])) {
lanNum++;
}
}
}
//判断中奖等级
System.out.println("您购买的号码为:" + Arrays.toString(arry01));
System.out.println("本其中奖号码为:" + Arrays.toString(arry02));
if (redNum == 6 && lanNum == 1) {
System.out.println("一等奖:" + " 一共下注了" + bettingPice + "次,一次2元" + " 奖金:" + bettingPice * 500 + "万");
}else if (redNum == 6 && lanNum == 0) {
System.out.println("二等奖:" + " 一共下注了" + bettingPice + "次,一次2元" + " 奖金:" + bettingPice * 400 + "万");
}else if (redNum == 5 && lanNum == 1) {
System.out.println("三等奖:" + " 一共下注了" + bettingPice + "次,一次2元" + " 奖金:" + bettingPice * 100 + "万");
}else if ((redNum == 4 && lanNum == 1) || ((redNum == 5) && (lanNum == 0))) {
System.out.println("四等奖:" + " 一共下注了" + bettingPice + "次,一次2元" + " 奖金:" + bettingPice * 10000 + "万");
}else if ((redNum == 3 && lanNum == 1) || ((redNum == 4) && (lanNum == 0))) {
System.out.println("五等奖:" + " 一共下注了" + bettingPice + "次,一次2元" + " 奖金:" + bettingPice * 1000 + "千");
}else if (redNum <= 2 && lanNum == 1) {
System.out.println("六等奖:" + " 一共下注了" + bettingPice + "次,一次2元" + " 奖金:" + bettingPice * 5 + "元");
}else {
System.out.println("很遗憾没有中奖");
}
}
}
class Ball {
String name; //球
int num; //双色球值
private Ball[] arry01;
public String getName() {
return name;
}
public void pzice() {
// TODO Auto-generated method stub
}
public void setName(String name) {
this.name = name;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
Ball() {}
public Ball(String name,int num) {
this.name = name;
this.num = num;
}
public Ball(int num) {
this.num = num;
}
//从写toString方法
@Override
public String toString() {
// TODO Auto-generated method stub
return "" + getNum();
}
//从写equals方法
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}else{
if (obj instanceof Ball) {
Ball man = (Ball) obj;
if (this.num == man.num) {
return true;
}
}
}
return false;
}
}