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