пропуск итераций в R циклах - PullRequest
0 голосов
/ 16 декабря 2018

Меня попросили запрограммировать игру, которая печатает «бум» каждый раз, когда число делится на 7 или содержит 7 для последующего (1:31).пока все хорошо:

num_turns=c(1:31)
for(i in seq(1,31)){
  if(i%%7==0 || "7" %in% i){
    print("boom")
  }else{
    print(i)
  }
}

, затем меня просят повторить игру для seq (1:55), но с условиями: есть 4 игрока, я игрок # 3, и печатать только свои ходы.Вот переменные, которые меня попросили создать:

total_players=4
player_num=3
turns=55

Любой совет, как это закодировать?

Ответы [ 2 ]

0 голосов
/ 16 декабря 2018

Это сделает первую часть вопроса:

for (i in 1:31) {
  if (i %% 7==0 || grepl("7", i)) {
    print("boom")
  } else {
    print(i)
  }
}

Вот векторизованная версия:

i <- 1:31
ifelse(i %% 7==0 | grepl("7", i), "boom", i)

Для второй части вопроса:

total_players <- 4
player_num <- 3
turns <- 55
i <- 1:turns
allT <- ifelse(i %% 7==0 | grepl("7", i), "boom", i)
myT <- allT[seq(player_num, turns, total_players)]
0 голосов
/ 16 декабря 2018
num_turns=c(1:55)
for(i in seq(1,55)){
  if(i %% 4 == 3 &(i%%7==0 || "7" %in% i)){
    print("boom")
  }else{
     print(i)
  }
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...