R - пропущенные значения в новом созданном списке в цикле for - PullRequest
0 голосов
/ 29 августа 2018

Я пытаюсь написать блэкджек-код на R. Так как я новичок в этом языке, я сталкиваюсь с некоторыми трудностями. Я уже написал две разные функции, чтобы раздать первые 2 карты каждому игроку и подсчитать общее количество очков для каждой. Теперь я хочу написать функцию, основанную на результатах второй функции, чтобы решить, должен ли игрок взять другую карту или нет с некоторыми условиями. Вот код:

    bj_add_card <-  function(hand) {

      hand <- bj_simplified(hand)
      m_hand <- matrix(unlist(hand), ncol = 3, byrow = TRUE)
      sums <- m_hand[,3]
      sum_players <- as.vector(as.numeric(sums[-1]))
      sum_dealer <- as.numeric(tail(sums), 1)
      add_card <- vector("list")

      for (i in seq_along(sum_players)) {
        if(sum_players[i] <= 11) {
          add_card[i] <- sample(Spielkarten, 1)
        }
        else if(sum_players[i] >= 17) {
          add_card[i] <- "stay"
        }
        else if(11 > sum_players[i] && sum_players[i] < 17) {     
           if(sum_players[i] == 12 && sum_dealer == 4 || 5 || 6) {
           add_card[i] <- "stay"
           }
           else if(sum_players[i] == 12 && sum_dealer != 4 || 5 || 6) {
              add_card[i] <- sample(Spielkarten, 1)
           }
           else if(sum_players[i] == 13 || 14 || 15 || 16 && sum_dealer == 
                    2||3||4||5||6||7||8||9||10) {
              add_card[i] <- "stay"
           }
           else if(sum_players[i] == 13 || 14 || 15 || 16 && sum_dealer != 
                    2||3||4||5||6||7||8||9||10) {
              add_card[i] <- sample(Spielkarten, 1)
           }
       }
     }

     return(add_card)
    }


    bj_add_card(6)

Я действительно не вижу проблемы. Каждый раз, когда я вызываю эту функцию, выводом является список (как и должно быть) с различным количеством аргументов, но он не всегда совпадает с номером ввода, хотя и должен. Иногда это дает мне «NULL» в качестве вывода без какой-либо причины. Я думаю, что это проблема перезаписи, но я не могу понять, где проблема. Есть идеи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...