金庫に鍵を。

投稿者:      2 mini eider 投稿日:2011/05/03 18:17

Wikiを参考に画面クリックで数値認識っぽいものを作ってみたけどね、
うまく動かないなぁ。
def f(a,b)
# X軸の判定関数
 return (425 +(29 * b) - a) * (a - (28 * b) - 444)
end
def g(a,b)
# Y軸の判定関数
 return (246 +(37 * b) - a) * (a - (38 * b) - 270)
end

startInput()

#一桁目
loop = true
while loop
 while hasInput()
 if isMouseDown()
  pos = getMousePosition()
    if f(pos[0],0) >= 0 && g(pos[1],0) >= 0
   pass1 = 1
loop = false
    elsif f(pos[0],1) >= 0 && g(pos[1],0) >= 0
   pass1 = 2
loop = false
    elsif f(pos[0],2) >= 0 && g(pos[1],0) >= 0
   pass1 = 3
loop = false
    elsif f(pos[0],0) >= 0 && g(pos[1],1) >= 0
   pass1 = 4
loop = false
    elsif f(pos[0],1) >= 0 && g(pos[1],1) >= 0
   pass1 = 5
loop = false
    elsif f(pos[0],2) >= 0 && g(pos[1],1) >= 0
   pass1 = 6
loop = false
    else 
    end
  else
  end
 end 
waitTime(30)
end

二桁目、三桁目は一桁目をコピーしてpass1をpass2、3に変えて使うつもりだけど、
やっぱり普通に選択肢で選択にしようかねぇ?

コメントする

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

コメント一覧

Logo mini hightoller(投稿日:2011/05/04 11:29, 履歴)
自分なりにあとで消化してみよう。
SCBで使いたい機能だ。
      2 mini eider(投稿日:2011/05/04 03:54, 履歴)
おぉ、助かります。動きましたです。
次のパス合否判定も苦戦しましたけども。
あとはアイテム取得画像表示で完成かな。ありがとうございます。

最初のユーザー定義の関数は上に凸の二次関数です。
f(a,0)≧0 になるのは 425≦a≦444 って感じです。g(a,b)も同じような計算です。
四角いボタンですもので。
んで、入力認識を開始して、マウスクリック時にposからXY座標をとって判定、認識です。

円ならたぶんこうなりますね。
h(x,y,a,b)=(x-("基準X"+a*"右ずれ値"))^2+(y-("基準Y"+b*"下ずれ値"))^2-("半径")^2
h(x,y,a,b)≦0 の時に認識。

場合によってずれの部分は配列を使ったほうがいいかもね。
Nyan mini rurun9(投稿日:2011/05/04 02:18, 履歴)
if~end間には、とくに処理がないならelseは確かに不要ですよ。

動かないのはたぶん、while hasInput()~endのループ中にtakeInput()を書いていないから。
オイラには一体何の計算がなされているのか謎ですがw
Logo mini hightoller(投稿日:2011/05/03 22:55, 履歴)
触ったことない関数、なんとなくしかわからんのでせが、
ifとendの間の[else\n]はいらない子の予感。