#java #text #random
#java #текст #Случайный
Вопрос:
моя домашняя работа заключается в следующем, если требуется больше контекста — я бы объяснил это, но объяснять это довольно долго, и текстовые файлы предоставляются на сайте, если людям нужно их просмотреть:http://www.cis.upenn.edu /~cis110/hw/hw06/index.html
Прямо сейчас я нахожусь на шаге 2 и застрял на случайном выборе из трех элементов, связанных с классом treasure, проверяя, начинаются ли они с «tc». Я могу извлечь класс treasure из monster.txt файл, и у меня есть монстр. Это мой метод поиска класса treasure:
public static void getTreasureClass(Monster monGet)
throws FileNotFoundException{
Random rand = new Random();
String tc=monGet.getTreasureClass();
Scanner file=new Scanner(new File ("TreasureClassEx.txt"));
System.out.println(tc);
while(!file.next().equals(tc)){
file.next();
}
tc=file.next();
if (tc.startsWith("tc:")){
}
else {
System.out.println("test");
}
}
Это крайне неполно, но я был бы признателен за несколько советов о том, куда идти дальше с точки зрения случайного выбора из трех элементов, или если мой код плохой. Заранее спасибо!
Ответ №1:
Итак, у ‘Hell_Bovine’ есть класс сокровищ «tc: Cow_ (H)».
Итак, вы ищете эту строку в TreasureClassEx.txt
tc:Cow_(H) tc:Act_5_(H)_Equip_B tc:armo3 tc:armo3
Затем вы выберете один из трех вариантов случайным образом.
И вы будете продолжать читать TreasureClassEx, находить правильную строку и делать случайный выбор до тех пор, пока «класс сокровищ», который вы ищете, начинается с «tc:».
Например, для «tc: Cow_ (H)» вы могли бы выбрать «tc: armo3». Для «tc: armo3» вы можете выбрать «Quilted_Armor». И тогда вы бы остановились на этом.
По крайней мере, так я читаю инструкции. ;->
Ответ №2:
Убедитесь, что вы импортируете то, что я добавляю, поскольку вы не показываете импорт, я не буду их добавлять
public static void getTreasureClass(Monster monGet)
throws FileNotFoundException{
Random rand = new Random();
String tc=monGet.getTreasureClass();
Scanner file=new Scanner(new File ("TreasureClassEx.txt"));
System.out.println(tc);
List<String> list = new LinkedList<String>();
while(!file.next().equals(tc)){
file.next();
}
tc=file.next();
if (tc.startsWith("tc:")){
list.add(tc);
}
String treasure = list.get(rand.nextInt(list.size()));
else {
System.out.println("test");
}
}
Итак, в этом я сохранил пример в строковом значении ‘treasure’
Я не чувствую себя хорошо, помогая вам с домашней работой -_-
Комментарии:
1. Спасибо, мы еще не рассмотрели связанные списки в классе, но я ценю помощь. Также меня смущает, куда вы помещаете строку treasure =list.get… . Поскольку он находится между if и else, выполняется ли он, если tc начинается с tc или выполняется иначе? Или это не зависит от цикла if / else? Спасибо!
2. Это не зависит от оператора if / else, спасибо, что поняли это.
3. Глядя на инструкции, я не думаю, что выбор случайной СТРОКИ правильный. Похоже, что случайность находится внутри строк.