なぜか脱線中ですごろくの仕組みについて考えていきます。
でもそれだけなのは申し訳ないので実は完成している人工無脳(試作)のチラ見せだけしておきます。
kani3が無脳です。
すごく出来が悪いのでソースは晒しません。
実際は改良していくうちにぐちゃぐちゃのスパゲッティになってしまったので、最初から整理しなおして書き直すつもりでいます。
ちなみに形態素解析は使ってません。自前の仕組みである程度の言葉を拾ってます。
ただし完成度が低いので仕組みを補うための辞書も必要なのが現状です。
話を今回のテーマ「すごろく」に戻します。
VisualuRuby計画(仮称)だけでなんとかしたいので、まずは画面を作ってマスとコマを配置して
その上でコマを動かすところまでやります。
今回使うマスとコマの画像です。必要なら保存して使ってください。
(画面の見本です、動きません)
まずはソースです。
__________________________
#! ruby -Ks
require 'vr/vruby'
require 'vr/vrcontrol'
class SgorokuForm < VRForm
include VRDrawable
def initialize
#各マスの座標
@m_z = [[10,10],[70,10],[130,10],[190,10],[250,10]]
@koma_z = [10,10] #コマのX.Y座標
end
def construct
self.caption = 'sugoroku.ver.0'
@font = @screen.factory.newfont('MS Pゴシック',12)
#マスとコマの画像の読み込み(maskomフォルダから読み込み)
@masu= SWin::Bitmap.loadFile("maskom/masu_b1.bmp")
@koma = SWin::Bitmap.loadFile("maskom/cara1.bmp")
addControl(VRButton, 'susume_btn', '進む',110,100,
30,20)
@susume_btn.setFont(@font)
end
def self_paint
(@m_z.size).times do |z|
drawBitmap @masu,@m_z[z][0],@m_z[z][1]
end
drawBitmap @koma,@koma_z[0],@koma_z[1]
end
def susume_btn_clicked
if @koma_z[0] != 250
@koma_z[0] += 60
else
@koma_z[0] = 250
end
self.refresh
end
end
VRLocalScreen.start(SgorokuForm,100,100,350,180)
__________________________
今回は画像をまとめて(maskom)という名前のフォルダに収めて読み込みのときはそこから呼び出してます。
マスはひとつの画像を並べて連続したマスにしてます。
self_paintメソッド内のブロックに注意してみてください。マスの増減の変更に対応できるようにしてます。
とりあえず今回はボタンを押すとコマがひとマスづつ移動します。
座標に+=60づつ(マスの幅が60ピクセル)していくだけです。
ただしそれだと押し続けるとコマがマスの外へ出て、画面の外へも出て行ってしまいますから、
if文でX座標が250(最後のマスの座標)でなければ+=60して
それ以外(X座標が250)ならばそれ以上は動かないようにしてます。
今回はここまでです。
今回もどこか間違ってたら暖かいツッコミをお願いいたします。