ストレートのスクリプト(質問掲示板)
投稿:
闇さん
投稿:2013/01/28 16:22:28(最新:2013/01/30 17:24:30)
b=1
Q=0
W=0
while b < 7
a=0
while a < 5
if getVariable("ダイス")[a]==b
W=Q-1
if Q==W
Q=Q+1
end
end
a=a+1
end
b=b+1
end
if Q>4
speak("ストレートが揃っている")
else
speak("ストレートはそろっていない")
end
配列getVariable("ダイス")の0~5に1~6の数がランダムで入る時
配列getVariable("ダイス")が順不同で[1,2,3,4,5]もしくは[2,3,4,5,6]がそろったらストレートがそろっている事にしたいのですが
それとセミストレート[1,2,3,4][2,3,4,5][3,4,5,6]にも応用できるようにしたいです
このスクリプトだとQが常に-1になるので
ストレートがそろっても揃っていない事になります
コメントする
コメントするには、ログインする必要があります。
Q=0 W=0 X=0 Y=0 CheckST = 5 #何連続の数字か b=6 while b > 0 a=0 W=0 while a < 5 if getVariable("ダイス")[a]==b W=1 end a=a+1 end if W==1 X=X+1 Y=b else X=0 end b=b-1 end b=Y if X == CheckST while b < 7 a=0 while a < 5 if getVariable("ダイス")[a]==b Q=Q+1 end end a=a+1 end b=b+1 end if Q>4 speak("ストレートが揃っている") else speak("ストレートはそろっていない") end endCheckST の値を5から4に減らすと
セミストレート[1,2,3,4][2,3,4,5][3,4,5,6]にも応用可能ではないかと思われる
動作未確認
Q=0 W=0 CheckST = 5 #何連続の数字か b=6 while b < 7 a=0 W=0 while a < 5 if getVariable("ダイス")[a]==b W=1 end a=a+1 end if W==1 Q=Q+1 else Q=0 end b=b+1 end if Q==CheckST speak("ストレートが揃っている") end if Q==CheckST - 1 speak("セミストレート!!!") else speak("ストレートはそろっていない") end簡単な処理に修正した、これなら分かりやすく動くと思う
ついでにセミストレートを検知してくれるはず
Q=0 W=0 b=1 while b < 7 a=0 W=0 while a < 5 if getVariable("ダイス")[a]==b W=1 end a=a+1 end if W==1 Q=Q+1 else Q=0 end b=b+1 end if Q==5 speak("ストレートが揃っている") end if Q==4 speak("セミストレート!!!") else speak("ストレートはそろっていない") endbの初期値が誤っていたので修正
さらにおかしな動作をしそうな変数を消しました
数値の動きも手計算で確認したのでたぶんコレで動くと思われます
頑張ってくださいー
Q=0 W=0 X=0 b=1 while b < 7 a=0 W=0 while a < 5 if getVariable("ダイス")[a]==b W=1 end a=a+1 end if W==1 Q=Q+1 X=Q else if X < Q X=Q end Q=0 end b=b+1 end if X==5 speak("ストレートが揃っている!!!!!") end if X==4 speak("セミストレート!!!!") end if X==3 speak("三連続!!!") else speak("ストレートはそろっていない") endストレート検出に致命的なバグがあったので修正しました
これで最終版になると思います