导航:首页 > 编程语言 > 抽奖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相关的资料

热点内容
洛阳蓝普网络技术责任公司 浏览:865
怎么编辑百度云文件在哪里设置 浏览:865
消失的眼角膜未删减版电影 浏览:335
韩国推理片免费观看 浏览:11
主角能变身成各种人物 浏览:560
西门子plc200用哪个软件编程 浏览:557
聚优电影卡使用范围 浏览:850
校园两个女生同性恋电影 浏览:844
反腐的文件有哪些 浏览:899
猫眼实时电影排行榜 浏览:435
许鱼的快穿文 浏览:920
泰山美国理论 浏览:37
法国电影我在阳光之地电影下载 浏览:769
1080p电影在线免费看 浏览:205
台湾演员陈小珍主演的电影有什么 浏览:282
贵阳2017大数据时间 浏览:889
老司机看的视频网站 浏览:374
香港拍的电锯砍人的电影 浏览:538
尸吻 浏览:974
手机自动删除文件 浏览:411

友情链接