2009年10月20日

Rubyの勉強15(さいころ改良完成:公開予告編)

新しいさいころソフトの改良版が完成しました。
少し微調整してから配布する予定です。

ソースの説明は長くなるのでかいつまんで要点だけにしようと思ってます。

ちなみに前々回いろいろやったTabキーによるフォーカスの移動は使わないことにしました。
警告音が消せなかったので……

その代わり「リセットボタン」を増やしました。
押すと入力した箇所すべての値を0にしてくれます。たぶん便利。

__________________________
  def roll(men,kosu)
k = 0
kosu.times do
k += rand(men) + 1
end
case men
when 6
@dice_p[0] = k
@print6_area.text = @dice_p[0]
when 8
@dice_p[1] = k
@print8_area.text = @dice_p[1]
when 10
@dice_p[2] = k
@print10_area.text = @dice_p[2]
else
@dice_p[3] = k
@prints_area.text = @dice_p[3]
end
end

__________________________

Diceクラスに替わって今回用意したメソッドです。
何面体かと個数を引数として受け取ります。

まずinitialize に @dice_p = [0,0,0,0] という配列を用意しました。
この中には六面、八面、十面、その他のさいころ結果が順に格納されます。
「ダイスをふる」実行ボタンを押すとこれを呼び出します。
なので、後で合算するときには
__________________________
  def gs_btn_clicked
t = 0 ; h = 0 ; gsa = 0
t = @gst2_areas.text.chomp.to_i
h = @gsh2_areas.text.chomp.to_i
4.times do |y|
gsa += @dice_p[y]
end
gsa += t -= h
@printgs_area.text = gsa
end

__________________________

このように(4.times do |y|)とブロック付きメソッドで配列の要素を合算する事にしました。
このメソッドは合算するためのボタンを押した時の実行内容です。
ちなみに@gst2_areasは+修正値の入力窓、@gsh2_areasは-修正値の入力窓に設定してます。
見ての通りここの値もちゃんと最後に計算してます。

リセットボタンについては説明しなくても良いと思います。
各入力窓の中身を0にして@dice_p = [0,0,0,0] に戻すだけです。

100%ロールが無かったですか?
他の計算とは独立した存在なんで専用の実行ボタンを押した時に
rand(100) + 1
をするようにしちゃいました。

説明としては以上です。

d_roll2_sp2.jpg
(画面の見本です。動きません)

完成したソフトはexe化した後ゲームカテゴリの記事として後日アップします。

今回もどこか間違ってたら暖かいツッコミをお願いいたします

 
posted by Hol_nice at 22:26| Comment(0) | TrackBack(0) | プログラム | 更新情報をチェックする
この記事へのコメント
コメントを書く
コチラをクリックしてください

この記事へのトラックバック