Я пытаюсь «симулировать» игру в покер. Сначала я создал колоду из 52 карт в качестве фрейма данных. Поэтому я использовал три столбца: Cardvalue, Cardcolor и Rank (1-52).
Теперь два игрока берут каждые пять карт - и игрок с самой высокой картой (рангом) выигрывает игру. Поэтому я написал функцию «покер» и определил двух игроков, каждый из которых берет по 5 карт из колоды.
Проблема в том, что игрок 2 также может взять 7 алмазов, если игрок 1 уже получил его. Моя идея состояла в том, чтобы вычесть результаты первого игрока из колоды, чтобы можно было извлечь только оставшиеся карты - но каждый раз, когда я получаю сообщение об ошибке, список типов недействителен. Я надеюсь, что вы можете мне помочь! Большое вам спасибо!
poker <- function() {deckmat3 player1 <- deckmat3[sample(nrow(deckmat3),5),] player2 <- deckmat3[sample(nrow(deckmat3),5),] return(ifelse(max(player1$rank) > max(player2$rank),"player1","player2"))}
моя идея была:
poker <- function() {poker <- function() {deckmat3 player1 <- deckmat3[sample(nrow(deckmat3),5),] player2 <- deckmat3[deckmat3$player1][sample(nrow(deckmat3),5),] return(ifelse(max(player1$rank) > max(player2$rank),"player1","player2"))}
Но это не работает: /
Edit:.
Надеюсь, могу предоставить полезные данные:
Вектор для значений карт cv:
cv <-rep (2,4), представитель (3,4), представитель (4,4), представитель (5,4), представитель (6,4), представитель (7,4), представитель ( 8,4), Rep (9,4), Rep (10,4), Rep (11,4), Rep (12,4), Rep (13,4), Rep (14,4)) </p>
Dataframe deckmat3:
deckmat3 <- data.frame (cardvalue = c (cv), cardcolor = c ("Diamond", "Club", "Heart", "Spade"), rank = 1: 52) </p>
Затем я добавляю данные в функцию «покер», о которой я упоминал выше. Результаты для игрока 1 и для игрока 2 представляют собой два подсписка из исходного фрейма данных deckmat3 с 5 строками. Проблема в том, что игрок 2 может взять карты, которые уже были извлечены игроком 1. Это означает, что подсписок «игрок 1» должен быть вычтен из «deckmat3» ... и это проблема. Я не могу удалить список из списка: (