Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 从一个列表中减去另一个列表_R - Fatal编程技术网

R 从一个列表中减去另一个列表

R 从一个列表中减去另一个列表,r,R,我正试图“模拟”一场扑克游戏。首先,我创建了一个包含52张卡的数据框。因此,我使用了三列:Cardvalue、Cardcolor和Rank(1-52) 现在,两名玩家每五张牌抽一张,并且拥有最高牌(等级)的玩家赢得游戏。所以我写了一个叫做“扑克”的函数,定义了两个玩家,每个玩家从牌堆中抽出5张牌 问题是,如果玩家1已经得到了这7颗钻石,那么玩家2也可以得到它。我的想法是从牌组中减去玩家一的结果,这样就只能抽出剩余的牌了——但每次我出现错误时,类型列表都是无效的。我希望你能帮助我!非常感谢你 po

我正试图“模拟”一场扑克游戏。首先,我创建了一个包含52张卡的数据框。因此,我使用了三列:Cardvalue、Cardcolor和Rank(1-52)

现在,两名玩家每五张牌抽一张,并且拥有最高牌(等级)的玩家赢得游戏。所以我写了一个叫做“扑克”的函数,定义了两个玩家,每个玩家从牌堆中抽出5张牌

问题是,如果玩家1已经得到了这7颗钻石,那么玩家2也可以得到它。我的想法是从牌组中减去玩家一的结果,这样就只能抽出剩余的牌了——但每次我出现错误时,类型列表都是无效的。我希望你能帮助我!非常感谢你

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"))}

扑克我会用另一种方式试试。您只需要修复cardRank列(不确定如何确定)


cardValue欢迎来到SO。请提供所需信息和预期输出。这不是虚张声势;)请注意,可以像下面这样简单地创建cv:
cv
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"))} 
cardValue <- rep(1:13, 4)
cardSuit <-
c(rep("diamond", 13),
  rep("heart", 13),
  rep("spade", 13),
  rep("club", 13))

cardColor <- c(rep("red", 26), rep("black", 26))

cardRank <- 1:52


winnerList <- c()

simulateGames <- function(iterations) {
for (it in 1:iterations) {
    cards <- data.frame(cardValue, cardSuit, cardColor, cardRank)

    player1Cards <- cards[sample(nrow(cards), 5),]

    cards <-
        cards[!rownames(cards) %in% rownames(player1Cards),]

    player2Cards <- cards[sample(nrow(cards), 5),]

    winnerList <-
        c(winnerList, ifelse(
            max(player1Cards$cardRank) > max(player2Cards$cardRank),
            1,
            2
        ))

}
winnerList
}

simulateGames(1000)