我想創建一個執行以下操作的賭博游戲:
這是一張彩票,要求 01 到 43 之間的 5 個號碼和 01 到 16 之間的附加號碼;我的想法是我給出我的 6 個數字,它會告訴我我是否贏了。
為此,請使用此代碼
Lotery = function(a,b,c,d,e,f){
NumeroAleatorio <- matrix(1:6, ncol = 6)
NumeroAleatorio[1] <- sample (1:43, 1, replace= FALSE)
for (i in 2:6) {
if(i!=6){
NumeroAleatorio[i] <- sample (1:43, 1, replace= FALSE)
if(i == 2){
while(NumeroAleatorio[i] == NumeroAleatorio[1] ){
NumeroAleatorio[i] <- sample (1:43, 1, replace= FALSE)
}
}else{
if(i == 3 ){
while(NumeroAleatorio[i] == NumeroAleatorio[1] || NumeroAleatorio[i] == NumeroAleatorio[2]){
NumeroAleatorio[i] <- sample (1:43, 1, replace= FALSE)
}
}else{
if(i == 4 ){
while(NumeroAleatorio[i] == NumeroAleatorio[1] || NumeroAleatorio[i] == NumeroAleatorio[2] || NumeroAleatorio[i] == NumeroAleatorio[3]){
NumeroAleatorio[i] <- sample (1:43, 1, replace= FALSE)
}
}else{
if(i == 5 ){
while(NumeroAleatorio[i] == NumeroAleatorio[1] || NumeroAleatorio[i] == NumeroAleatorio[2] || NumeroAleatorio[i] == NumeroAleatorio[3] || NumeroAleatorio[i] == NumeroAleatorio[4] ){
NumeroAleatorio[i] <- sample (1:43, 1, replace= FALSE)
}
}
}
}
}
}else{
NumeroAleatorio[6] <- sample (1:16, 1, replace= FALSE)
}
}
ContA<-0
ContB<-0
ContC<-0
ContD<-0
ContE<-0
ContF<-0
for(p in 1:6){
if(NumeroAleatorio[p] == a){
ContA<-ContA 1
}
if(NumeroAleatorio[p] == b){
ContB<-ContB 1
}
if(NumeroAleatorio[p] == c){
ContC<-ContC 1
}
if(NumeroAleatorio[p] == d){
ContD<-ContD 1
}
if(NumeroAleatorio[p] == e){
ContE<-ContE 1
}
if(NumeroAleatorio[p] == f){
ContF<-ContF 1
}
}
if(ContA==0 || ContB==0 || ContC==0 || ContD==0 || ContE==0 || ContF==0){
return(data.frame("Resultado", NumeroAleatorio, "Numero escogido", a, b, c, d, e, f, "No Ganaste"))
}else{
return(data.frame("Resultado", NumeroAleatorio, "Numero escogido", a, b, c, d, e, f, "Ganaste"))
}
}
Lotery(20,15,3,45,9,8)
它似乎有效,但我想知道我是否可以讓事情變得更簡單,因為我認為代碼太長了。
uj5u.com熱心網友回復:
我可能沒有遵循您的代碼,但看起來您隨機選擇了 6 個數字并將它們與提交的數字進行比較。前 5 個都不應該匹配,但第 6 個可以匹配前 5 個中的一個。如果這是正確的,那么這將生成隨機 6 個數字:
NumeroAleatorio <- c(sample.int(43, 5, replace=FALSE), sample.int(16, 1))
要將其與提交的值進行比較,只需使用
NumeroAleatorio == comp
所有 FALSE 表示不匹配。任何 TRUE 值都表示在該位置匹配。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/442025.html
