Привет! Сегодня я хочу поделиться с тобой своим опытом написания кода на языке Java для розыгрыша игрушек. Я решил создать несколько файлов, чтобы упростить добавление новых игрушек и задать вес для выпадения каждой игрушки.Для начала, я создал класс Shop, который будет отвечать за управление розыгрышем игрушек. В этом классе я использовал три массива для хранения информации об игрушках⁚ toy_id, вес игрушки и toy_name. Чтобы заполнить эти массивы, я использовал строки с информацией об игрушках и их весе.java
public class Shop {
private int[] toy_id;
private int[] weight;
private String[] toy_name;
public Shop(String toyInfo) {
String[] toys toyInfo.split(″;″);
int numToys toys.length;
toy_id new int[numToys];
weight new int[numToys];
toy_name new String[numToys];
for(int i 0; i < numToys; i ) {
String[] toyDetails toys[i].split(″ ″);
toy_id[i] Integer.parseInt(toyDetails[0]);
weight[i] Integer.parseInt(toyDetails[1]);
toy_name[i] toyDetails[2];
}
}
public void put(String toyInfo) {
String[] toyDetails toyInfo.split(″ ″);
int toyId Integer.parseInt(toyDetails[0]);
int toyWeight Integer.parseInt(toyDetails[1]);
String toyName toyDetails[2];
// Добавляем информацию о новой игрушке в массивы
int[] newToyId new int[toy_id.length 1];
int[] newWeight new int[weight.length 1];
String[] newToyName new String[toy_name.length 1];
for(int i 0; i < toy_id.length; i ) {
newToyId[i] toy_id[i];
newWeight[i] weight[i];
newToyName[i] toy_name[i];
}
newToyId[toy_id.length] toyId;
newWeight[weight.length] toyWeight;
newToyName[toy_name.length] toyName;
toy_id newToyId;
weight newWeight;
toy_name newToyName;
}
public void getRandomToy {
Map
for(int i 0; i < weight.length; i ) {
toyMap.put(i, weight[i]);
}
// Сортируем карту игрушек по весу
Queue
(a, b) -> a.getValue.compareTo(b.getValue)
);
sortedToys.addAll(toyMap.entrySet);
// Выбираем случайную игрушку согласно весу
Random random new Random;
int totalWeight weight.length;
int randomNumber random.nextInt(totalWeight) 1;
for(Map.Entry
int toyIndex entry.getKey;
int toyWeight entry.getValue;
if(randomNumber < toyWeight) { System.out.println(″Розыгрыш игрушки⁚ ″ toy_name[toyIndex]); return; } randomNumber - toyWeight; } } public void saveToJsonFile { JSONArray toyArray new JSONArray;
for(int i 0; i < toy_id.length; i ) { JSONObject toyObject new JSONObject; toyObject.put(″toy_id″, toy_id[i]); toyObject.put(″weight″, weight[i]); toyObject.put(″toy_name″, toy_name[i]); toyArray.put(toyObject); } JSONObject shopObject new JSONObject; shopObject.put(″shop″, toyArray); try (FileWriter file new FileWriter(″shop.json″)) { file.write(shopObject.toString); System.out.println(″Результаты розыгрыша сохранены в файл shop.json″); } catch (IOException e) { e.printStackTrace; } } } Теперь, когда у нас есть класс Shop с необходимыми методами, мы можем создать экземпляр класса и использовать его для розыгрыша игрушек. Давайте взглянем на пример использования⁚ java public class Main { public static void main(String[] args) { // Создаем экземпляр класса Shop Shop shop new Shop(″1 2 Lego;2 2 Robot;3 6 Barbie″); // Вызываем метод put для добавления новых игрушек shop.put(″4 3 Puzzle;5 4 Teddy Bear″); // Выполняем розыгрыш 10 раз и выводим результаты for(int i 0; i < 10; i ) { shop.getRandomToy; } // Сохраняем результаты в файл shop.json shop.saveToJsonFile; } } В результате выполнения этого кода, мы получим 10 случайно выбранных игрушек в соответствии с их весом. Также, результаты розыгрыша будут сохранены в файле `shop.json`.