Я пытаюсь создать функцию в R, где пользователь должен угадать число от 1 до 100, пока оно не будет правильным, но не более 7 раз - PullRequest
0 голосов
/ 08 марта 2019

Мне нужно создать функцию в R, где программа выбирает число от 1 до 100 и просит пользователя угадать.Если он слишком низкий, он возвращает «слишком низкий», если его слишком высокий, я возвращаю «слишком высокий», если после 7 догадок пользователь все еще ошибается, я прекращаю функцию.

Я сделал функцию, но не могу найти способ остановить ее после 7 раз !!Я хочу разместить цикл for, но не знаю, где кто-нибудь может мне помочь?

guess <- function(g) {
  ran <- sample(1:100, 1)
  if (g < ran) {
    print("Too low")
    m <- readline("Type number again:")
    num <- as.numeric(m)
  } else if (g > ran) {
    print("Too high")
    m <- readline("Type number again:")
    num <- as.numeric(m)
  } else if (g == ran) {
    print("Correct")
  }
}

1 Ответ

0 голосов
/ 08 марта 2019

Вот удар по нему:

guess <- function(g) {
  counter <- 1
  ran <- sample(1:100, 1)
  while(counter < 8) {
    if (g < ran) {
      print(paste0("Too low (No. of attempts: ", counter, ")"))
      m <- readline("Type number again:")
      g <- as.numeric(m)
      counter <- counter + 1
    } else if (g > ran) {
      print(paste0("Too high (No. of attempts: ", counter, ")"))
      m <- readline("Type number again:")
      g <- as.numeric(m)
      counter <- counter + 1
    } else if (g == ran) {
      print("Correct")
      opt <- options(show.error.messages=FALSE)
      on.exit(options(opt))
      stop()
    }
  }
  print(paste0("You've run out of attempts! Correct answer was: ", ran))
}

Этот подход делает то, что вы хотите, устанавливая счетчик и используя цикл while для семи попыток. Если это число превышено, цикл завершается и отображается соответствующее сообщение об ошибке. Я также добавил текстовую информацию после каждой попытки и в случае неудачи для удобства.

...