重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

ポーカーをしたあとにダブルアップをするのですが、7以下が出たらhigh、8以上が出たらlowのボタンを押したいのですが、出たトランプの数を画像認識で確認して変数に数値をいれて条件にあったボタンを画像認識でクリックという動作はどのようにすればいいのでしょうか。
一応自分で書いてみたのが↓になります。ifb文とif文の違いがよくわからずサイトを見ながら書いたのでめちゃくちゃかもしれませんがよろしくお願いします。どう書けばいいのかと出来れば訂正をしていただければ助かります。お願いします。

ifb CHKIMG("heart-3.bmp")
val = 3
endif

ifb (val < 7)
if CHKIMG("high.bmp")
BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y)
else
if CHKIMG("low.bmp")
BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y)
endif

A 回答 (2件)

>if、ifbに対して必ずendifで一つのif,ifbを閉じなければいけないという認識でいいんでしょうか?はっきりとは覚えていないのですが


はい、その通りです。
但し、下記の1行でIFを使用するケースでは、ENDIFは不要です。
IF 条件 THEN 真の処理 [ELSE 偽の処理] ・・・・1行でIFを記述([]内省略可能)
    • good
    • 0
この回答へのお礼

わかりました。ありがとうございます。
ほかにも問題がちょくちょく出てきちゃっているのですがif文を使って全体的に書き直してみます。それで問題が解決すればいいのですが・・・

お礼日時:2016/07/12 20:49

構文的には以下のようになります。


---------------------------------------------
ifb CHKIMG("heart-3.bmp")
val = 3
endif

ifb (val < 7)
if CHKIMG("high.bmp")
BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y)
endif //これを追加
else
if CHKIMG("low.bmp")
BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y)
endif
endif //これを追加
---------------------------------------------

//これを追加 ・・・のコメントがある行を追加してください。

尚、high.bmpなどの画像ファイルは、このスクリプトが存在するフォルダと同じフォルダに置いてください。
もし、フォルダがことなる場合は、"c:\test\high.bmp" のように絶対パスで指定してください。
又、この画像ファイルは24ビットのビットマップであることが必要と思われます。(ヘルプには記述されていませんが・・・)
下記URL参照
http://matome.naver.jp/odai/2142741595874523301

追伸1:
if (val<7)は
7以下であれば、
if (val <= 7)が正しいです。

追伸2:
ifとifbの違いですが、
1行で全てを記述する場合は、ifが使用できます。
if 条件 then 処理1 [else 処理2]  ・・・正しい構文([]内は省略可能)
ifb 条件 then 処理1 [else 処理2]  ・・・誤った構文

上記のように1行で記述しない場合は、ifでもifbのどちらでもかまいません。

不明点があれば補足してください。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
if、ifbに対して必ずendifで一つのif,ifbを閉じなければいけないという認識でいいんでしょうか?はっきりとは覚えていないのですが

対応するendifが見つかりません。
ifbに対するなんたらかんたら

上記のどちらかのようなエラーメッセージが出ていたのですがそれがよくわからなかったです。

今回教えていただいたことを生かして少しずつ完成に近づけたいと思います。ありがとうございました。

お礼日時:2016/07/11 21:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!