以下是Java实现九宫格抽奖功能的代码示例,代码注释中详细说明了每个步骤的作用:
import java.util.Random; public class Lottery { private static final int[][] LAYOUT = { // 九宫格布局 {1, 2, 3}, {4, 5, 6}, {7, 8, 9} }; private static final int[] PRIZES = { // 奖品列表 1, 2, 3, 4, 5, 6, 7, 8, 9 }; public static void main(String[] args) { int prize = lottery(); // 抽奖 System.out.println("恭喜您获得奖品" + prize); } private static int lottery() { int[] weights = new int[PRIZES.length]; // 初始化每个奖品的权重 for (int i = 0; i < PRIZES.length; i++) { weights[i] = 1; } weights[4] = 5; // 设置第五个奖品的权重为5,即中奖概率为5/9 int sum = 0; // 计算权重总和 for (int weight : weights) { sum += weight; } int randomNum = new Random().nextInt(sum) + 1; // 生成随机数 int index = 0; for (int i = 0; i < PRIZES.length; i++) { index += weights[i]; if (randomNum <= index) { // 根据随机数选出奖品 return PRIZES[i]; } } return 0; // 没有中奖 } public static void displayLayout() { // 打印九宫格布局 for (int i = 0; i < LAYOUT.length; i++) { for (int j = 0; j < LAYOUT[i].length; j++) { System.out.print(LAYOUT[i][j] + "\t"); } System.out.println(); } } }
代码中使用了一个lottery()
方法来实现抽奖功能。这个方法首先初始化每个奖品的权重,然后计算权重总和。接着生成一个随机数,并根据随机数选出中奖的奖品。
在这个例子中,第五个奖品的权重被设置为5,即中奖概率为5/9。如果要修改概率,只需更改对应奖品的权重即可。
要显示九宫格布局,可以使用displayLayout()
方法。这个方法只是简单地打印出一个3x3的矩阵,其中每个数字表示对应的奖品。
评论