フォーダイス(フォーカード)とフルハウス

投稿者:    mini とりか 投稿日:2013/02/18 09:23

フォーダイス
b = 0 #サイコロ数値の中身
Q = 0 #役成立カウント
while b < 7 && Q < 4
 Q = 0 #カウントリセット
 a = 0 #調べるダイスの番号
 while a < 5
  if getVariable("ダイス")[a] == b
   Q = Q + 1
   q = getVariable("ダイス")[a]
  end
  a = a + 1
 end
 b = b + 1
end
if Q >= 4
 D3 = q * 4 + 15
else
 D3 = 0
end


フルハウス
b = 0 #サイコロ数値の中身
Q = 0 #スリーカード成立カウント
while b < 7 && Q < 3
 Q = 0 #カウントリセット
 a = 0 #調べるダイスの番号
 while a < 5
  if getVariable("ダイス")[a] == b
   Q = Q + 1
   q = getVariable("ダイス")[a]
  end
  a = a + 1
 end
 b = b + 1
end
e = 0 #サイコロ数値の中身その2
W = 0 #ワンペア成立のカウント
while e < 7 && W < 2
 W = 0 #カウントリセット
 s = 0 #調べるダイスの番号
 while s < 5
  if e == q #スリーカード部分の検索避け
  else
   if getVariable("ダイス")[s] == e 
    W = W + 1
    y = getVariable("ダイス")[s]
   end
  end 
  s = s + 1
 end
 e = e + 1
end
if Q >= 3 && W >= 2
 D4 = q * 3 + (y * 2) + 15
else
 D4 = 0
end


QとWのカウントリセットしてなかったせいでおかしな数値が出てた可能性
&& Q < ■ の位置によるループ脱出ミス等
多分これで動きそうな予感

計算量というか繰り返し回数は6×5で30回以下見つかったら終了なので
フォーダイスは30~4回、フルハウスは60~10回程度

演算プログラムよりも計算量削減プログラムの方が難しいという面白げな状態
削減すれば推定でフォーダイスは10~9回、フルハウスは25~15回ちょっとなのでいい感じ
計算量削減なんて動けば問題ないなら別に作る必要はないナー

コメントする

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

コメント一覧

  1 mini 闇さん(投稿日:2013/02/18 13:12, 履歴)
このスクリプトを借りさせていただきます

なんかスクリプトはほとんどとりかさんの物を使っているような・・・
    mini とりか(投稿日:2013/02/18 13:23, 履歴)
実はちょっとしか違わないからおk(`・ω・´)
  1 mini 闇さん(投稿日:2013/02/18 13:30, 履歴)
現在の状況だと430行中55行がとりかさんのスクリプトです
約7.82%がとりかさん・・・・