ここから本文です

UWSCについて質問です。 3つの画像 A,B,Cがあるとします。 一定期間に一回3...

x_t********さん

2019/4/1900:10:48

UWSCについて質問です。

3つの画像 A,B,Cがあるとします。
一定期間に一回3つのうちランダムで1つが画面上に表示されます。

画像認識にて表示される画像を認識して、同じ画像が3回連続で表示されるまで待機し、3回連続で表示されたら操作を実行する。というプログラムを作りたいのですが、どうすればよろしいでしょうか

この質問は、活躍中のチエリアン・専門家に回答をリクエストしました。

閲覧数:
46
回答数:
1
お礼:
250枚

違反報告

ベストアンサーに選ばれた回答

uso********さん

2019/4/1912:22:35

前提
・A.bmp, B.bmp, C.bmp の画像ファイルを仮定
・同時に複数の画像の出現は未考慮
・3回連続=ずっと表示されっ放しでは無く、
消えてから 再度 表示の挙動を仮定
[一つの画像が表示されっ放しで3Turn
(1Turnの期間は不明)分の時間経過、な
状態は未考慮]
※前提が異なる場合、コードも要修正

私ならこう書く、という一例[※未テスト]

bmp=Split("@ A B C") //画像ファイル名[@は未使用ダミー]//
n=ReSize(bmp) //画像の個数
Dim ino[n],cif[n]
SetClear(ino,-1)
While True
  cif[0]=-1 //-1:画像無し を仮定//
  For i=1 To n //全画像の表示チェック//
    cif[i]=ChkImg(bmp[i])
    If cif[i] Then cif[0]=i //発見画像No//
  Next
  Ifb 0<cif[0] Then //画像発見?//
    For i=1 To n; ino[i]=ino[i-1]; Next
    ino[0]=cif[0] //ino[0]:最新,ino[1]:一つ前,ino[2]:二つ前、、、
    For i=1 To n-1
      If ino[0]<>ino[i] Then Break
    Next //過去n個の表示画像の同一性チェック//
    If n<=i Then
      //ino[0]番目の画像がn個 連続表示された//
    EndIf
    While ChkImg(bmp[cif[0]])
      Sleep(1/64) //表示画像の非表示待ち//
    WEnd
  EndIf
  Sleep(1/64)
WEnd

この回答は投票によってベストアンサーに選ばれました!

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる