Этот подход должен работать для вас
name = readline("Player name: >")
while (!stringr::str_detect("[a-z]", tolower(name)) | name == ""){
name = readline("Player name: >")
}
Это может быть излишним, но если вы заранее знаете имена игроков, вы можете использовать пакет choices
. Прямо сейчас доступно только на GitHub и устанавливается через
devtools::install_github("matiasandina/choices")
library(choices)
players <- c("Alice", "Bob", "Chris")
numeric_menu(players, "Select Player")
. Вы увидите меню и сможете выбирать, используя цифры.
+++++++++++++++++++++++++++++++
Please see your options below:
+++++++++++++++++++++++++++++++
Option 1) Alice
Option 2) Bob
Option 3) Chris
Select Player :>
Внутренняя функция позаботится о соответствии чисел сохраненным параметрам проигрывателя. Кроме того, можно нажимать клавишу «Ввод» или «хлопать кошкой» по клавиатуре
Name Player :> sdkjaksdjaksd
Your input is not valid, please enter a number.
Name Player :> kasdjlaksjdlkasasdma
Your input is not valid, please enter a number.
Name Player :>
Your input is not valid, please enter a number.
Name Player :> ?
Your input is not valid, please enter a number.
Name Player :> 54
Option is not valid. Choose again
Name Player :>
Отказ от ответственности: я являюсь автором пакета выбора, дополнительная информация здесь