作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在R中创建一个二十一点模拟器。下面的代码成功创建了我想要的纸牌。 (对于那些玩游戏的人,稍后我将讨论Ace的值(value))。
我的问题是,有没有更好的方法来创建不涉及while循环和double for循环的套牌?我对double for循环有更多的疑问。由于创建的套牌数量是可变的,因此while循环可能是不可避免的。
我还初始化了一个空的数据帧,我知道这不是最佳实践,但是,在这种情况下,数据集非常小,以至于不会影响性能。
最后,R中是否有等效的i++?我也一直在用Java编程,已经习惯了。
谢谢。
createDeck <- function(totalNumOfDecks = 2)
{
suits <- c("Diamonds", "Clubs", "Hearts", "Spades")
cards <- c("Ace", "Deuce", "Three", "Four","Five",
"Six", "Seven", "Eight", "Nine", "Ten",
"Jack", "Queen", "King")
values <- c(0,2,3,4,5,
6,7,8,9,10,
10,10,10)
deck <- data.frame(Suit=character(0), Card=character(0), Value=numeric(0))
numOfDecks = 1
while (numOfDecks <= totalNumOfDecks){
for (i in suits){
for (j in cards){
deck <- rbind.data.frame(deck, cbind.data.frame(j, i, values[match(j, cards)]))
}
}
numOfDecks = numOfDecks + 1
}
print(deck)
}
最佳答案
expand.grid
函数应该会有所帮助:
# Define suits, cards, values
suits <- c("Diamonds", "Clubs", "Hearts", "Spades")
cards <- c("Ace", "Deuce", "Three", "Four","Five", "Six", "Seven", "Eight", "Nine", "Ten", "Jack", "Queen", "King")
values <- c(0, 2:9, rep(10, 4))
totalNumOfDecks <- 2
# Build deck, replicated proper number of times
deck <- expand.grid(cards=cards, suits=suits)
deck$value <- values
deck <- deck[rep(seq(nrow(deck)), totalNumOfDecks),]
expand.grid
会计算出所有牌和西服的配对。
value
变量是通过为每个西装回收
value
向量而创建的。最后,
rep(seq(nrow(deck)))
将第1-52行重复适当的次数,以获取您的牌组的多个副本。
关于r - 在不使用while和double for循环的情况下在R中创建一副纸牌,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24685024/
我已经创建了我的牌组,可以处理每张牌和一套花色,直到没有牌为止。对于我的项目,我需要将它分成 3 个类,其中包括一个驱动程序类。我首先创建了一个包含所有内容的类,所以我知道如何让它全部工作。 publ
嘿伙计们,我正在学习我的第一个 Java 类(class),但在尝试编译该程序时遇到了错误代码。我附加了这两门类(class),希望他能帮助我找到错误。这是我收到的错误: Error: constru
这个问题在这里已经有了答案: How to randomly shuffle a deck of cards among players? (3 个答案) 关闭 4 年前。 我一直在尝试学习 Pyt
我是一名优秀的程序员,十分优秀!