import?java.util.Random;
創(chuàng)新互聯(lián)建站專注于召陵企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城網(wǎng)站建設(shè)。召陵網(wǎng)站建設(shè)公司,為召陵等地區(qū)提供建站服務(wù)。全流程按需求定制制作,專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)建站專業(yè)和態(tài)度為您提供的服務(wù)
public?class?PlayBall?{
private?int[] red =?new?int[6]; //?紅色球
private?int blue; //?藍色球
//?開獎
public?void?open()?{
Random?random?=?new?Random();//?隨機數(shù)生成器,在java.util包里面
for?(int?i?=?0;?i??this.red.length;?i++)?{//?生成紅球
//?random.nextInt(int);這個方法用于隨機生成一個整數(shù),范圍在0-int之間
this.red[i]?=?random.nextInt(32)?+?1;
}
//?藍色球的取值范圍是1-16,調(diào)用nextInt(15)會生成一個0-15直接的數(shù),再加個1就是1-16了
this.blue?=?random.nextInt(15)?+?1;
//?輸出開獎情況
for?(int?i?=?0;?i??this.red.length;?i++)?{
System.out.print(this.red[i]?+?"\t");
}
System.out.println("\r\n"?+?this.blue);
}
//?中獎,傳入號碼,匹配是否中獎,如果中獎返回中的幾等獎,沒總返回-1
public?int?isMiddle(int[]?red,int?blue)?{
//?輸出投注號碼
for?(int?i?=?0;?i??red.length;?i++)?{
System.out.print(red[i]?+?"\t");
}
System.out.println("\r\n"?+?blue);
int?middle?=?0;//?記錄中了幾個球
if?(blue?==?this.blue)?{
middle?+=?1;//?藍色球中
}
for?(int?i?=?0;?i??red.length;?i++)?{
if?(red[i]?==?this.red[i])?{
middle?+=?1;//?紅色球中
}
}
if?(middle?!=?0)?{
if?(middle??4)?{
return?6;
}
else?if?(middle?==?4)?{
return?5;
}
else?if?(middle?==?5)?{
return?4;
}
else?if?(middle?==?6)?{
//?中6個球有兩種情況,5+1和6+0,5+1是三等獎,6+0是二等獎
if?(blue?==?this.blue)?{
return?2;//?6+0中二等獎
}
return?3;
}
else?if?(middle?==?7)?{
return?1;
}
}
//?沒中獎
return?-1;
}
//?測試
public?static?void?main(String[]?args)?{
PlayBall?pb?=?new?PlayBall();
pb.open();
System.out.println("中獎:"?+?pb.isMiddle(new?int[]?{?1,?2,?3,?4,?5,?6?},?5));
}
}
回答個問題我還得去研究雙色球怎么中獎的。。。這個代碼編譯一下就可以直接運行了
public class sedasd {
static Random random = new Random();
public static void main(String[] args) {
System.out.println(Arrays.toString(getStor(getRed())));/*getRed()得到存儲取出的號碼的數(shù)組ns
getStor()對數(shù)組的輸出格式進行格式化
*/
}
public static int[] getRed() {
int[] num = new int[33];
int[] ns = new int[6];
int index = 0;
for (int i = 0; i 100; i++) {
int temp = random.nextInt(33);
if (num[temp] == 0) { //判斷取出的號碼是不是第一次取出
ns[index] = temp + 1; //random.nextInt(33)是從零到32所以要加1
num[temp] = 1;
index++;
}
if (!(ns[5] == 0)) { //判斷是不是取6個號碼
return ns;
}
}
return ns;
}
public static String[] getStor(int[] s) {
String[] ns = new String[6];
Arrays.sort(s);
for (int i = 0; i s.length; i++) {
if (s[i] 10) {
ns[i] = "0" + s[i];
} else {
ns[i] = "" + s[i];
}
}
return ns;
}
}
希望可以幫到你,要是還不理解可以在問我。。。
public void main (String[] args){
int[] red=new int[7];
int blue=0;
for(int i=0;i7;i=i+1){
red[i]=getRandom(33);
//判斷重復(fù)
while(true){
boolean needcheck=false;
for(int k=0;ki;k=k+1) { if(red[i]==red[k]){ needcheck=true; }}
if(needcheck){red[i]=red[i]+1; if(red[i]==34){red[i]=1}}else{break;}
}
//判斷重復(fù)結(jié)束
}
//紅球賦值結(jié)束
blue=getRandom(16);
System.out.println("生成的紅球為:"+ red[0]+red[1]+red[2]+red[3]+red[4]+red[5]+red[6]);
System.out.println("生成的藍球為:"+ );
}
public int getRandom(int Max){
return Math.floor(Math.random()*33)+1;
}
int?sum=(int)?(Math.random()*33+1);??//利用Math中random方法的可以獲得1~33的隨機數(shù)
然后定義一個中獎的容器數(shù)組來裝中獎數(shù)字
設(shè)置一個過濾器(for循環(huán)遍歷中獎容器嵌套if語句)來防止紅球中獎數(shù)字重復(fù)
也就是說雙重for循環(huán) 外層取數(shù),內(nèi)層for循環(huán)過濾中獎數(shù)字,
在外層循環(huán)定義一個計數(shù)器來控制循環(huán)的結(jié)束
藍球因為只有一次就不需要了