ストレートのスクリプト(質問掲示板

投稿:   1 mini 闇さん 投稿: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になるので
ストレートがそろっても揃っていない事になります

コメントする

コメントするには、ログインする必要があります。

コメント一覧

    mini とりか(投稿日:2013/01/30 00:16, 履歴)
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

end






CheckST の値を5から4に減らすと
セミストレート[1,2,3,4][2,3,4,5][3,4,5,6]にも応用可能ではないかと思われる
動作未確認
    mini とりか(投稿日:2013/01/30 00:24, 履歴)
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




簡単な処理に修正した、これなら分かりやすく動くと思う
ついでにセミストレートを検知してくれるはず
    mini とりか(投稿日:2013/01/30 00:30, 履歴)
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("ストレートはそろっていない")
end



bの初期値が誤っていたので修正
さらにおかしな動作をしそうな変数を消しました
数値の動きも手計算で確認したのでたぶんコレで動くと思われます
頑張ってくださいー
    mini とりか(投稿日:2013/01/30 00:44, 履歴)
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




ストレート検出に致命的なバグがあったので修正しました
これで最終版になると思います
  1 mini 闇さん(投稿日:2013/01/30 17:24, 履歴)
ありがとうございます