抽取问题, 重点是 同一个学号不能重复被抽取.
解决办法很多,
比如数组可以使用下标来标记,号码是否被使用局高则,使用了就继续下一次抽桐棚取
也可以使用集合来抽取,把集合顺序打乱,然后随便抽几个就可以了
参考代码:数组法
import java.util.Randompublic class Test {
public static void main(String[] args) {
int stuNums=30
int[] nums=new int[stuNums]//存储学号的数组
boolean[] flags=new boolean[stuNums]//标记,用于标记对应下标的学号是否已经被抽取过了
for (int i = 0 i < 念袜stuNums i++) {
nums[i]=i+1//给学号赋值
}
Random r=new Random()
while(true){
int index = r.nextInt(stuNums)
if(!flags[index]){
System.out.println("A等:"+nums[index])
flags[index]=true //标记已经被使用过了
break
}
}
for (int i = 0 i < 2 i++) {
int index = r.nextInt(stuNums)
if(!flags[index]){
System.out.println("B等:"+nums[index])
flags[index]=true
}else{
i--//如果已经被抽取过了 ,那么i建议,再次循环
}
}
for (int i = 0 i < 3 i++) {
int index = r.nextInt(stuNums)
if(!flags[index]){
System.out.println("c等:"+nums[index])
flags[index]=true
}else{
i--
}
}
}
}
集合法
import java.util.ArrayListimport java.util.Collections
public class Test2 {
public static void main(String[] args) {
int stuNums=20
ArrayList<Integer> list=new ArrayList<Integer>()
for (int i = 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))
}
}
public String[] findluckMen(String[] data , int n){Random random = new Random()
int len = data.length
String[] luckmen = new String[len]
for(int i=0i<亮缺咐敬纯扮帆leni++){
int index = random.nextInt(len)
luckmen[i] = data[index ]
}
return luckmen
}
&#8205
import java.awt.Color//界面不是很高大上档次,但是能满足你的基本需求,希望对你薯谈源有用import java.awt.Font
import java.awt.GridLayout
import java.awt.event.ActionEvent
import java.awt.event.ActionListener
import javax.swing.JButton
import javax.swing.JFrame
import javax.swing.JOptionPane
import javax.swing.border.Border
import javax.swing.border.LineBorder
public class 抽奖游戏 extends JFrame {
static 抽奖游戏 frame
public 抽奖游戏() {
setLayout(new GridLayout(3, 3, 3, 3))
Border border = new LineBorder(Color.BLUE, 4)
JButton l1 = new JButton()
JButton l2 = new JButton()
JButton l3 = new JButton()
JButton l4 = new JButton()
JButton l5 = new JButton()
JButton l6 = new JButton()
JButton l7 = new JButton("祝你好运")
JButton l8 = new JButton("中奖规则")
JButton l9 = new JButton("再次抽奖")
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(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
JOptionPane.showMessageDialog(null, "游戏规则:\n" + "特等奖:\n"
数态 + "第一行或者第二行出现的数字全部相同\n"
+ "第一第二行出现升序的1,2,3,4,5,6或者降序的6,5,4,3,2,1\n" + "一等奖\n"
+ "1:第一行或第二行的数字降序排列或者升序排列\n"
+ "2:第一行或者第二行相邻的按钮出现一样的数字\n")
}
})
l9.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
l1.setText("*")
l2.setText("*")
l3.setText("*")
l4.setText("*")
侍没 l5.setText("*")
l6.setText("*")
l7.setBackground(Color.lightGray)
l7.setText("离中奖不远了!")
}
})
l6.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
int j1 = (int) (Math.random() * 10) % 6
l1.setText(num2[j1])
int j2 = (int) (Math.random() * 10) % 6
l2.setText(num2[j2])
int j3 = (int) (Math.random() * 10) % 6
l3.setText(num2[j3])
int j4 = (int) (Math.random() * 10) % 6
l4.setText(num2[j4])
int j5 = (int) (Math.random() * 10) % 6
l5.setText(num2[j5])
int j6 = (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("特等奖")
} else if (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(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
int j1 = (int) (Math.random() * 10) % 6
l1.setText(num2[j1])
int j2 = (int) (Math.random() * 10) % 6
l2.setText(num2[j2])
int j3 = (int) (Math.random() * 10) % 6
l3.setText(num2[j3])
int j4 = (int) (Math.random() * 10) % 6
l4.setText(num2[j4])
int j5 = (int) (Math.random() * 10) % 6
l5.setText(num2[j5])
int j6 = (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("特等奖")
} else if (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(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
int j1 = (int) (Math.random() * 10) % 6
l1.setText(num2[j1])
int j2 = (int) (Math.random() * 10) % 6
l2.setText(num2[j2])
int j3 = (int) (Math.random() * 10) % 6
l3.setText(num2[j3])
int j4 = (int) (Math.random() * 10) % 6
l4.setText(num2[j4])
int j5 = (int) (Math.random() * 10) % 6
l5.setText(num2[j5])
int j6 = (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("特等奖")
} else if (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(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
int j1 = (int) (Math.random() * 10) % 6
l1.setText(num2[j1])
int j2 = (int) (Math.random() * 10) % 6
l2.setText(num2[j2])
int j3 = (int) (Math.random() * 10) % 6
l3.setText(num2[j3])
int j4 = (int) (Math.random() * 10) % 6
l4.setText(num2[j4])
int j5 = (int) (Math.random() * 10) % 6
l5.setText(num2[j5])
int j6 = (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("特等奖")
} else if (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(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
int j1 = (int) (Math.random() * 10) % 6
l1.setText(num2[j1])
int j2 = (int) (Math.random() * 10) % 6
l2.setText(num2[j2])
int j3 = (int) (Math.random() * 10) % 6
l3.setText(num2[j3])
int j4 = (int) (Math.random() * 10) % 6
l4.setText(num2[j4])
int j5 = (int) (Math.random() * 10) % 6
l5.setText(num2[j5])
int j6 = (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("特等奖")
} else if (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(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
int j1 = (int) (Math.random() * 10) % 6
l1.setText(num2[j1])
int j2 = (int) (Math.random() * 10) % 6
l2.setText(num2[j2])
int j3 = (int) (Math.random() * 10) % 6
l3.setText(num2[j3])
int j4 = (int) (Math.random() * 10) % 6
l4.setText(num2[j4])
int j5 = (int) (Math.random() * 10) % 6
l5.setText(num2[j5])
int j6 = (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("特等奖")
} else if (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("未中奖,加油!")
}
}
})
Font font = new Font("", 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)
}
public static void main(String[] args) {
// TODO Auto-generated method stub
frame = new 抽奖游戏()
frame.setTitle("抽奖大战")
frame.setSize(500, 500)
frame.setLocationRelativeTo(null)
frame.setVisible(true)
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)