WedX - журнал о программировании и компьютерных науках

Ролик статистики персонажей D&D (Java)

Итак, я очень новичок в языке Java, и я пытаюсь собрать что-то вроде броска костей для генерации характеристик персонажей для D&D (Dungeons and Dragons).

Что я хочу, чтобы программа делала, так это бросала x D6 x раз. X должен быть введен пользователем. Мне также нужно, чтобы программа спрашивала, должна ли она перебросить результат 1 на броске D6. Кроме того, программа должна сохранять только 3 самых высоких числа на выпавших костях. Затем необходимо вывести результаты каждой группы бросков костей, а не суммировать их все вместе.

Например: я хочу, чтобы 4 D6 выпало 6 раз, и перебросить 1. Вывод программы будет примерно таким:

Ваши результаты:

10
12
13
15
17
11.

Я пытаюсь написать это с 3 классами, хотя я знаю, что для работы не нужно иметь 3 класса. Дополнительные классы являются скорее требованием с точки зрения проекта. Мне удалось закодировать то, что необходимо для броска одной кости, но, как я уже сказал, я очень новичок и почти не знаю, что с этим делать. Код, который у меня есть до сих пор:

//Scanner is implemented in preparation for user input as more coding is 
//added
import java.util.Scanner;
public class RollDie {

public static void main(String[] args) {
    int SIDES = 6;   // how many sides on the die?

    // roll should be 1 through SIDES
    int roll = (int) (Math.random() * SIDES) + 1;

    // print result
    System.out.println(roll);
}
}
27.02.2019

  • Подсказка: используйте цикл for 27.02.2019

Ответы:


1

Одноклассовое решение с дружественным пользовательским вводом может выглядеть так:

private final static int SIDES = 6;

public static void main(String[] args) {

    java.util.Scanner scanner = new java.util.Scanner (System.in);

    System.out.println("Number of dice?");
    final int dice = scanner.nextInt();
    System.out.println("Number of rolls?");
    final int rolls = scanner.nextInt();
    System.out.println("Reroll result 1? Enter y for yes");
    final boolean reroll = scanner.next().equals("y");

    for (int r = 0; r < rolls; r++) {
        int allDice = 0;
        for (int d = 0; d < dice; d++) {
            int roll = (int) (Math.random() * SIDES) + 1;
            while (reroll && roll == 1) {
                roll = (int) (Math.random() * SIDES) + 1;
            }
            allDice += roll;
        }
        System.out.println(allDice);
    }
}
27.02.2019
  • Спасибо, это очень помогает. Тем не менее, он должен оставить только 3 самых высоких числа брошенных кубиков. Например, если бросить 4 D6 один раз, если результаты 4,3,5,2; программа должна сохранить только 5,4,3, всего 12. 27.02.2019
  • Новые материалы

    Как создать диаграмму градиентной кисти с помощью D3.js
    Резюме: Из этого туториала Вы узнаете, как добавить градиентную кисть к диаграмме с областями в D3.js. Мы добавим градиент к значениям SVG и применим градиент в качестве заливки к диаграмме с..

    Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что это выглядит сложно…
    Просто начните и учитесь самостоятельно Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что он кажется мне сложным, и я бросил его. Это в основном инструмент..

    Лицензии с открытым исходным кодом: руководство для разработчиков и создателей
    В динамичном мире разработки программного обеспечения открытый исходный код стал мощной парадигмой, способствующей сотрудничеству, инновациям и прогрессу, движимому сообществом. В основе..

    Объяснение документов 02: BERT
    BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..


    Для любых предложений по сайту: [email protected]