Привет‚ я Александр‚ и сегодня я хочу поделиться с вами своим личным опытом создания розыгрыша игрушек на Java. Во многих магазинах игрушек существует возможность участвовать в лотерее и выиграть различные игрушки. Используя Java‚ я разработал программу‚ которая позволяет добавлять новые игрушки и регулировать вероятность их выпадения.Для начала‚ создадим класс ″Shop″‚ который будет принимать информацию о игрушках и выполнять логику розыгрыша. Наш класс будет иметь три поля для каждой игрушки⁚ toy_id (идентификатор игрушки)‚ вес игрушки в розыгрыше и название игрушки; Создадим конструктор‚ который будет принимать значения этих полей и заполнять массивы.java
public class Shop {
private int[] toyIds;
private int[] toyWeights;
private String[] toyNames;
public Shop(String toyInfo1‚ String toyInfo2‚ String toyInfo3) {
this.toyIds new int[3];
this.toyWeights new int[3];
this.toyNames new String[3];
// Разделяем строки toyInfo1‚ toyInfo2 и toyInfo3 для получения значений
String[] info1 toyInfo1.split(″ ″);
String[] info2 toyInfo2.split(″ ″);
String[] info3 toyInfo3.split(″ ″);
// Преобразуем строки в соответствующие значения и заполняем массивы
this.toyIds[0] Integer.parseInt(info1[0]);
this.toyIds[1] Integer.parseInt(info2[0]);
this.toyIds[2] Integer.parseInt(info3[0]);
this.toyWeights[0] Integer.parseInt(info1[1]);
this.toyWeights[1] Integer.parseInt(info2[1]);
this.toyWeights[2] Integer.parseInt(info3[1]);
this.toyNames[0] info1[2];
this.toyNames[1] info2[2];
this.toyNames[2] info3[2];
}
// Метод для розыгрыша игрушек
public int getRandomWeight {
PriorityQueue
int totalWeight 0;
// Заполняем очередь приоритетов
for (int i 0; i < toyWeights.length; i ) {
totalWeight toyWeights[i];
queue.add(totalWeight);
}
// Получаем случайное число и возвращаем соответствующий вес игрушки
int randomNum (int) (Math.random * totalWeight) 1;
int index 0;
for (int i 0; i < toyWeights.length; i ) {
if (randomNum < queue.poll) {
index i;
break;
}
}
return toyWeights[index];
}
}
В этом коде мы использовали класс PriorityQueue из пакета java.util для удобного хранения и обработки веса игрушек. Метод getRandomWeight выбирает случайное число в диапазоне от 1 до общего веса всех игрушек. Затем он проходит по очереди приоритетов‚ чтобы определить‚ какой вес игрушки соответствует случайному числу‚ и возвращает этот вес.Чтобы записать результаты розыгрыша в файл shop.json‚ мы будем использовать класс JSONObject из библиотеки json-simple. Добавим следующий код в наш класс Shop⁚