Попытка создать игру в кости в R, но функция не работает - PullRequest
0 голосов
/ 23 января 2019

У меня есть код для создания игры, в которой человек бросает кубик 4 раза, и если бросок выпадает на 6, он выигрывает. Тем не менее, я запускаю код, но он не производит вывод.

game<-function (n=4){
  count=0
  ceiling(6*runif(1))
  for(i in 1:n){
    if(ceiling(6*runif(1))==6){
      count=1
    }
    else(
      count=0
    )
 if(count=1){
   print("Win")}
  else{
    print("Lose")
  }
  }
}


Ответы [ 2 ]

0 голосов
/ 23 января 2019

Вы можете сделать это намного проще, фактически используя ifelse для векторизации if и else, а также используя return напрямую, чтобы избежать промежуточных переменных (например, count):

game<-function (n=4){
  return(ifelse(6 %in% ceiling(6*runif(n)), "Win", "Lose"))
}
0 голосов
/ 23 января 2019

Я бы предложил использовать any, чтобы увидеть, равен ли какой-либо бросок 6, а затем использовать return, чтобы сообщить значение.

game <- function(n = 4){
  if (any(ceiling(6 * runif(n)) == 6L)){
    return("Win")
  } else {
    return("Lose")
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...