Котлин: Как создать оператор If, зависящий от двух текстовых полей - PullRequest
0 голосов
/ 26 апреля 2019

Я пишу простой генератор случайных символов для NPC. Мне нужно извлечь случайное имя из уже определенного массива имен, но только если встречаются пол и раса.

Например, если он генерирует Человека-Человека, он извлекает из списка имен Человека-Человека. Так что нужно проверить пол и расу персонажа.

Оба извлекаются из своих собственных массивов, но у меня возникают проблемы с тем, чтобы приложение извлекало результаты из массива, а затем извлекало из правильного массива имен.

Я довольно новичок в этом виде кодирования, поэтому извините, если я упускаю что-то очевидное. Любая помощь будет оценена.

Ответы [ 2 ]

0 голосов
/ 26 апреля 2019
  1. Создать класс данных User

    data class User(var name: String, var sex: Char, var race: String)

  2. Добавить всех пользователей в список и после выбора пола и расы, отфильтруйте список с указанными условиями, которые возвращают отфильтрованных пользователей.

  3. Затем выберите случайный элемент из отфильтрованного списка, используя Random.next (int) .

val list = mutableListOf<User>()
list.add(User("Jack", 'M', "RACE1"))
//.....
list.add(User("Jill", 'F', "RACE2"))

val sex = 'M'
val race = "RACE1"

//assuming at least user will be available to meet below conditions
val randomUser = list.filter { it.sex == sex && it.race == race }.let {
    it[Random.nextInt(it.size)]
}
log("Selected user name ${randomUser.name}")
0 голосов
/ 26 апреля 2019

Не глядя на ваш код, мы не знаем, как вы реализуете свою логику.Но что бы я сделал в вашем случае:

  1. Создайте метод, возвращающий ИМЯ типа String.Этот метод получит SEX и RACE.
  2. Добавьте слушателей в раскрывающийся список SEX и RACE, чтобы узнать, когда пользователь выбрал либо SEX, либо RACE.
  3. Когда пользователь выбирает либо SEX, либоRACE, проверьте, не выбрал ли пользователь из другого выпадающего списка.Если пользователь выбрал оба раскрывающихся списка, передайте выбранные SEX и RACE методу, созданному вами на шаге 1.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...