2017-12-31 227 views
3

私は、11,11,6,4,11,10,6などのシーケンスを持っています。これは、ブラックジャックでプレイヤーの手札に次の可能なカード値をシミュレートします。 、11、22、28: ブラックジャック・エース・シーケンス

これらの数の合計が11以上に蓄積

は、私は、累積和が1

に等しいこの時点の後に生じる11の各値を作成しようとしてい32、...

望ましい結果:11、1、6、4、1、10、6、...ここで

は、私が失敗したとしようとしているものです:

nphand = c(11,11,6,4,11,10,6) 
v=cumsum(nphand) 
p=v[v<=11] 

for (i in (length(p)+1):length(nphand)){ 
    if (nphand[i]==11){ 
     nphand[i]==1 
    } 
} 

任意のヘルプおよび/またはdviceは非常に高く評価されます。

+1

あなたのコードがうまく働いています。あなたが変える必要があるのは、2つ目の部分で1つの記号で二重の等号を変更することだけです。私は、nphand [i] == 1の代わりにnphand [i] = 1を使うことを意味します。 – maydin

答えて

2

これは動作するはずです。

nphand = c(11,11,6,4,11,10,6) 
v=cumsum(nphand) 
p=v[v<=11] 

for (i in 1:length(nphand)){ 
    cards <- nphand[1:i] 
    elevens <- cards[-1] %in% 11 
    if(sum(cards)>=11 & sum(elevens) >=1){ 
    cards[which(elevens) +1] <- 1 
    } 
    nphand[1:i] <- cards 
} 



> nphand 
    [1] 11 1 6 4 1 10 6 

かかわらず動作するはずです、それは最初のカードは以下の11解決策であることに依存しているようにこれが見えます:

nphand = c(2,11,6,4,11,10,6) 
v=cumsum(nphand) 
p=v[v<=11] 

for (i in 1:length(nphand)){ 
    cards <- nphand[1:i] 
    elevens <- cards %in% 11 
    if(sum(cards)>=11 & sum(elevens) >=1){ 
    cards[which(elevens[-1]) + 1] <- 1 
    } 
    nphand[1:i] <- cards 
} 
関連する問題