導航:首頁 > 編程語言 > 抽獎java

抽獎java

發布時間:2023-06-01 14:29:38

java抽獎的演算法

優先順序規則使高等獎盡量在後期抽出

importjava.util.LinkedList;
importjava.util.List;

publicclassGetGift{

//獎品倉庫
privateList<Gift>gifts=newLinkedList<Gift>();

publicGetGift(){
//生成一堆獎品放進獎品倉庫
//一等獎一個優先順序1,二等獎兩個優先順序2。。。20等獎20個優先順序20
for(inti=1;i<=20;i++){
GiftTypegt=newGiftType(i+"等獎",i,i);
for(intj=1;j<=i;j++){
gifts.add(newGift(i+"等獎——第"+j+"號",gt));
}
}
}

//抽獎
publicsynchronizedGift穗凳蠢getGift(){
intrandomNumber=(int)(Math.random()*total());
intpriority=0;
for(Giftg:gifts){
priority+=g.getType().getPriority();
if(priority>=randomNumber){
//從獎品庫移出獎品
gifts.remove(g);
returng;
}
}
//抽獎次數多於獎品時,沒有獎品
returnnull;
}

/**
*@paramargs
*/
publicstaticvoidmain(String[]args){
GetGiftgg=newGetGift();
//一共生成210個獎品,抽210次,多抽顯示null
for(inti=0;i<猜陪210;i++){
System.out.println(gg.getGift());
}
}

//計算總優先順序,內部使用
privateinttotal(){
intresult=0;
for(Giftg:gifts){
result+=g.getType().getPriority();
}
returnresult;
}
}

//記錄獎品的信息
//如1等獎共1個,優先順序為1最難抽
classGiftType{
//名字(如1等獎)
privateStringname;
//這種獎品的數量,數量越大越容易抽到
privateintquantity;
//這種獎品的優先粗伍級,最小為1,數越大越容易抽到
privateintpriority;

publicGiftType(Stringname,intquantity,intpriority){
this.name=name;
this.quantity=quantity;
this.priority=priority;
}

publicintgetPriority(){
returnpriority;
}

@Override
publicStringtoString(){
return"GiftType[name="+name+",quantity="+quantity+",priority="+priority+"]";
}

}

//獎品
classGift{
//每個獎品有唯一id,抽獎不會重復,格式為"16等獎——第8號"
privateStringid;
//這個獎品的類別
privateGiftTypetype;

publicGift(Stringid,GiftTypetype){
this.id=id;
this.type=type;
}

publicGiftTypegetType(){
returntype;
}

@Override
publicStringtoString(){
return"Gift[id="+id+",type="+type+"]";
}

}

⑵ Java代碼實現抽獎:從班級的學號中抽出一個一等獎,兩個二等獎,三個三等獎

抽取問題, 重點是 同一個學號不能重復被抽取.

解決辦法很多,

  1. 比如數組可以使用下標來標記,號碼是否被使用,使用了就繼續下一次抽取

  2. 也可以使用集合來抽取,把集合順序打亂,然後隨便抽幾個就可以了

參考代碼:數組法

importjava.util.Random;

publicclassTest{

publicstaticvoidmain(String[]args){
intstuNums=30;

int[]nums=newint[stuNums];//存儲學號的數組
boolean[]flags=newboolean[stuNums];//標記,用於標記對應下標的學號是否已經被抽取過了
for(inti=0;i<stuNums;i++){
nums[i]=i+1;//給學號賦值
}

Randomr=newRandom();
while(true){
intindex=r.nextInt(stuNums);
if(!flags[index]){
System.out.println("A等:"+nums[index]);
flags[index]=true;//標記已經被使用過了
break;
}
}


for(inti=0;i<2;i++){
intindex=r.nextInt(stuNums);
if(!flags[index]){
System.out.println("B等:"+nums[index]);
flags[index]=true;
}else{
i--;//如果已經被抽取過了,那麼i建議,再次循環
}
}

for(inti=0;i<3;i++){
intindex=r.nextInt(stuNums);
if(!flags[index]){
System.out.println("c等:"+nums[index]);
flags[index]=true;
}else{
i--;
}
}
}
}

集合法

importjava.util.ArrayList;
importjava.util.Collections;

publicclassTest2{
publicstaticvoidmain(String[]args){
intstuNums=20;
ArrayList<Integer>list=newArrayList<Integer>();
for(inti=0;i<stuNums;i++){
list.add(i+1);
}

System.out.println("有序"+list);
Collections.shuffle(list);//打亂順序
System.out.println("亂序"+list);

System.out.println("A等"+list.get(0));

System.out.println("B等"+list.get(1));
System.out.println("B等"+list.get(2));

System.out.println("C等"+list.get(3));
System.out.println("C等"+list.get(4));
System.out.println("C等"+list.get(5));
}
}

⑶ java抽獎程序

http://171.8.68.39:8088/SpringMvcMybatis/ 呵帶缺呵謹春剛好祥行耐寫了一個

⑷ java抽獎程序

public String[] findluckMen(String[] data , int n){
Random random = new Random();

int len = data.length;

String[] luckmen = new String[len];

for(int i=0;i<len;i++){

int index = random.nextInt(len);
luckmen[i] = data[index ];
}
return luckmen;
}

⑸ 求一份抽獎游戲(Java寫的代碼)

importjava.util.Scanner;
/**
*
*/
publicclassf{
publicstaticvoidmain(Stringargs[]){
Scannerscan=newScanner(System.in);
System.out.print("請輸入抽獎號碼上限:");
渣賣蔽intmax=scan.nextInt();
System.out.print("請輸入抽獎次數:"配碧);
intn=scan.nextInt();
System.out.print("中獎號碼依次為:");
for(inti=0;i<n;i++){
System.out.print((int)(Math.random()*max+1)+"");
如州}
}
}

⑹ 用swing編寫一個java抽獎的程序,至少有5個按鈕,顯得高大上一點。

&#8205;

importjava.awt.Color;//界面不是很高大上檔次,但是能滿足你的基本需求,希望對你有用
importjava.awt.Font;
importjava.awt.GridLayout;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JOptionPane;
importjavax.swing.border.Border;
importjavax.swing.border.LineBorder;
publicclass抽獎游戲extendsJFrame{
static抽獎游戲frame;
public抽獎游戲(){
setLayout(newGridLayout(3,3,3,3));
Borderborder=newLineBorder(Color.BLUE,4);
JButtonl1=newJButton();
JButtonl2=newJButton();
JButtonl3=newJButton();
JButtonl4=newJButton();
JButtonl5=newJButton();
JButtonl6=newJButton();
JButtonl7=newJButton("祝你好運");
JButtonl8=newJButton("中獎規則");
JButtonl9=newJButton("再次抽獎");
l1.setBorder(border);
l2.setBorder(border);
l3.setBorder(border);
l4.setBorder(border);
l5.setBorder(border);
l6.setBorder(border);
l7.setBorder(border);
l8.setBorder(border);
l9.setBorder(border);
String[]num2={"1","2","3","4","5","6"};
l8.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEventarg0){
//TODOAuto-generatedmethodstub
JOptionPane.showMessageDialog(null,"游戲規則: "+"特等獎: "
+"第一行或者第二行出現的數字全部相同 "
+"第一第二行出現升序的1,2,3,4,5,6或者降序的6,5,4,3,2,1 "+"一等獎 "
+"1:第一行或第二行的數字降序排列或者升序排列 "
+"2:第一行或者第二行相鄰的按鈕出現一樣的數字 ");
}
});
l9.addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEvente){
//TODOAuto-generatedmethodstub
l1.setText("*");
l2.setText("*");
l3.setText("*");
l4.setText("*");
l5.setText("*");
l6.setText("*");
l7.setBackground(Color.lightGray);
l7.setText("離中獎不遠了!");
}
});
l6.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEventarg0){
//TODOAuto-generatedmethodstub
intj1=(int)(Math.random()*10)%6;
l1.setText(num2[j1]);
intj2=(int)(Math.random()*10)%6;
l2.setText(num2[j2]);
intj3=(int)(Math.random()*10)%6;
l3.setText(num2[j3]);
intj4=(int)(Math.random()*10)%6;
l4.setText(num2[j4]);
intj5=(int)(Math.random()*10)%6;
l5.setText(num2[j5]);
intj6=(int)(Math.random()*10)%6;
l6.setText(num2[j6]);
if(j1==j2&&j2==j3||j4==j5&&j5==j6||j1==1
&&j2==2&&j3==3&&j4==4&&j5==5&&j6==6
||j1==6&&j2==5&&j3==4&&j4==3&&j5==2
&&j6==1){
l7.setBackground(Color.red);
l7.setText("特等獎");
}elseif(j1>j2&&j2>j3||j3>j2&&j2>j1||j4>j5
&&j5>j6||j6>j5&&j5>j4||j1==j2
&&j5==j4||j1==j2&&j5==j6||j3==j2
&&j4==j5||j5==j6&&j2==j3){
l7.setBackground(Color.YELLOW);
l7.setText("一等獎");
}else{
l7.setBackground(Color.lightGray);
l7.setText("未中獎,加油!");
}
}
});
l5.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEventarg0){
//TODOAuto-generatedmethodstub
intj1=(int)(Math.random()*10)%6;
l1.setText(num2[j1]);
intj2=(int)(Math.random()*10)%6;
l2.setText(num2[j2]);
intj3=(int)(Math.random()*10)%6;
l3.setText(num2[j3]);
intj4=(int)(Math.random()*10)%6;
l4.setText(num2[j4]);
intj5=(int)(Math.random()*10)%6;
l5.setText(num2[j5]);
intj6=(int)(Math.random()*10)%6;
l6.setText(num2[j6]);
if(j1==j2&&j2==j3||j4==j5&&j5==j6||j1==1
&&j2==2&&j3==3&&j4==4&&j5==5&&j6==6
||j1==6&&j2==5&&j3==4&&j4==3&&j5==2
&&j6==1){
l7.setBackground(Color.red);
l7.setText("特等獎");
}elseif(j1>j2&&j2>j3||j3>j2&&j2>j1||j4>j5
&&j5>j6||j6>j5&&j5>j4||j1==j2
&&j5==j4||j1==j2&&j5==j6||j3==j2
&&j4==j5||j5==j6&&j2==j3){
l7.setBackground(Color.YELLOW);
l7.setText("一等獎");
}else{
l7.setBackground(Color.lightGray);
l7.setText("未中獎,加油!");
}
}
});
l4.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEventarg0){
//TODOAuto-generatedmethodstub
intj1=(int)(Math.random()*10)%6;
l1.setText(num2[j1]);
intj2=(int)(Math.random()*10)%6;
l2.setText(num2[j2]);
intj3=(int)(Math.random()*10)%6;
l3.setText(num2[j3]);
intj4=(int)(Math.random()*10)%6;
l4.setText(num2[j4]);
intj5=(int)(Math.random()*10)%6;
l5.setText(num2[j5]);
intj6=(int)(Math.random()*10)%6;
l6.setText(num2[j6]);
if(j1==j2&&j2==j3||j4==j5&&j5==j6||j1==1
&&j2==2&&j3==3&&j4==4&&j5==5&&j6==6
||j1==6&&j2==5&&j3==4&&j4==3&&j5==2
&&j6==1){
l7.setBackground(Color.red);
l7.setText("特等獎");
}elseif(j1>j2&&j2>j3||j3>j2&&j2>j1||j4>j5
&&j5>j6||j6>j5&&j5>j4||j1==j2
&&j5==j4||j1==j2&&j5==j6||j3==j2
&&j4==j5||j5==j6&&j2==j3){
l7.setBackground(Color.YELLOW);
l7.setText("一等獎");
}else{
l7.setBackground(Color.lightGray);
l7.setText("未中獎,加油!");
}
}
});
l3.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEventarg0){
//TODOAuto-generatedmethodstub
intj1=(int)(Math.random()*10)%6;
l1.setText(num2[j1]);
intj2=(int)(Math.random()*10)%6;
l2.setText(num2[j2]);
intj3=(int)(Math.random()*10)%6;
l3.setText(num2[j3]);
intj4=(int)(Math.random()*10)%6;
l4.setText(num2[j4]);
intj5=(int)(Math.random()*10)%6;
l5.setText(num2[j5]);
intj6=(int)(Math.random()*10)%6;
l6.setText(num2[j6]);
if(j1==j2&&j2==j3||j4==j5&&j5==j6||j1==1
&&j2==2&&j3==3&&j4==4&&j5==5&&j6==6
||j1==6&&j2==5&&j3==4&&j4==3&&j5==2
&&j6==1){
l7.setBackground(Color.red);
l7.setText("特等獎");
}elseif(j1>j2&&j2>j3||j3>j2&&j2>j1||j4>j5
&&j5>j6||j6>j5&&j5>j4||j1==j2
&&j5==j4||j1==j2&&j5==j6||j3==j2
&&j4==j5||j5==j6&&j2==j3){
l7.setBackground(Color.YELLOW);
l7.setText("一等獎");
}else{
l7.setBackground(Color.lightGray);
l7.setText("未中獎,加油!");
}
}
});
l2.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEventarg0){
//TODOAuto-generatedmethodstub
intj1=(int)(Math.random()*10)%6;
l1.setText(num2[j1]);
intj2=(int)(Math.random()*10)%6;
l2.setText(num2[j2]);
intj3=(int)(Math.random()*10)%6;
l3.setText(num2[j3]);
intj4=(int)(Math.random()*10)%6;
l4.setText(num2[j4]);
intj5=(int)(Math.random()*10)%6;
l5.setText(num2[j5]);
intj6=(int)(Math.random()*10)%6;
l6.setText(num2[j6]);
if(j1==j2&&j2==j3||j4==j5&&j5==j6||j1==1
&&j2==2&&j3==3&&j4==4&&j5==5&&j6==6
||j1==6&&j2==5&&j3==4&&j4==3&&j5==2
&&j6==1){
l7.setBackground(Color.red);
l7.setText("特等獎");
}elseif(j1>j2&&j2>j3||j3>j2&&j2>j1||j4>j5
&&j5>j6||j6>j5&&j5>j4||j1==j2
&&j5==j4||j1==j2&&j5==j6||j3==j2
&&j4==j5||j5==j6&&j2==j3){
l7.setBackground(Color.YELLOW);
l7.setText("一等獎");
}else{
l7.setBackground(Color.lightGray);
l7.setText("未中獎,加油!");
}
}
});
l1.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEventarg0){
//TODOAuto-generatedmethodstub
intj1=(int)(Math.random()*10)%6;
l1.setText(num2[j1]);
intj2=(int)(Math.random()*10)%6;
l2.setText(num2[j2]);
intj3=(int)(Math.random()*10)%6;
l3.setText(num2[j3]);
intj4=(int)(Math.random()*10)%6;
l4.setText(num2[j4]);
intj5=(int)(Math.random()*10)%6;
l5.setText(num2[j5]);
intj6=(int)(Math.random()*10)%6;
l6.setText(num2[j6]);
if(j1==j2&&j2==j3||j4==j5&&j5==j6||j1==1
&&j2==2&&j3==3&&j4==4&&j5==5&&j6==6
||j1==6&&j2==5&&j3==4&&j4==3&&j5==2
&&j6==1){
l7.setBackground(Color.red);
l7.setText("特等獎");
}elseif(j1>j2&&j2>j3||j3>j2&&j2>j1||j4>j5
&&j5>j6||j6>j5&&j5>j4||j1==j2
&&j5==j4||j1==j2&&j5==j6||j3==j2
&&j4==j5||j5==j6&&j2==j3){
l7.setBackground(Color.YELLOW);
l7.setText("一等獎");
}else{
l7.setBackground(Color.lightGray);
l7.setText("未中獎,加油!");
}
}
});
Fontfont=newFont("",Font.BOLD,20);
l1.setFont(font);
l2.setFont(font);
l3.setFont(font);
l4.setFont(font);
l5.setFont(font);
l6.setFont(font);
l7.setFont(font);
l8.setFont(font);
l9.setFont(font);
add(l1);
add(l2);
add(l3);
add(l4);
add(l5);
add(l6);
add(l7);
add(l8);
add(l9);
}
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
frame=new抽獎游戲();
frame.setTitle("抽獎大戰");
frame.setSize(500,500);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}

⑺ 商場推出幸運抽獎活動的java初級代碼編寫

public class Lucky {
public static void main(String[] args){
System.out.println("請輸入您的4位會員卡號:");
Scanner sc = new Scanner(System.in);
int number = sc.nextInt(); //接收用戶從控制台輸入的會員卡號,並保存在會員卡號變數中
int a = number/1000; //千位
int b = number%1000/100; //百位
int c = number%100/10; //十位
int d = number%10; //個位
if((a+b+c+d)>20){
System.out.println("恭喜中獎!您是幸運客戶");
}else{
System.out.println("謝謝參與!");
}
}
}

最基礎的 沒有異常判斷 無限循環輸入什麼東西

閱讀全文

與抽獎java相關的資料

熱點內容
AW 5FP 瀏覽:547
微信群發敏感詞在線 瀏覽:718
一個外國電影,有的人有超能力 瀏覽:20
韓劇片 瀏覽:255
wps教學視頻教程 瀏覽:484
主角建國發展類的小說 瀏覽:411
linux命令查找目錄文件 瀏覽:770
北玄仙尊陳北玄的小說 瀏覽:355
狂怒余男迅雷下載 瀏覽:572
抓四人幫的電視劇叫什麼 瀏覽:374
男主角找到世界的盡頭是建模 瀏覽:724
藍牙為什麼能升級嗎 瀏覽:31
js缺少分號 瀏覽:93
江羊電影公司作品 瀏覽:43
怎麼樣在網站下載紅色警戒 瀏覽:775
免費看電影無vip 瀏覽:108
路由器手機怎麼重置密碼 瀏覽:990
小孩抗日 小說 瀏覽:655
國外小孩與小孩性 愛視頻 瀏覽:965
cad導入ug無效文件 瀏覽:760

友情鏈接