自動的にLabVIEWで金を受け取る領収書に「国民の夢の家」のゲームを達成

最後の数週間、非常に人気の携帯ゲームは、「夢の家の国」と呼ば 私は電話で1日か2日を再生し、二つの問題が見つかりました:

1.領収書は、その手にしながら、ただ、固定ルート上で指をスライドさせ、金があまりにも退屈受信しました

2.人々は、高速チップを追いつくキャッチする方法(もちろん、特定の戦略が必要です)

私はこのゲームをプレイするだけでなく、友人で1位が、第三に落ち、本当に終わったが、若い三〇から四日間。

 

物事のLabVIEWのビジョン内部の最近の研究では、ちょうどあなたが赤い封筒の多くを得ることができたときにプログラムアップと夜に寝る前に実行されているが、朝起きてみましょうことができ、金貨プログラムを収集し、自動的に領収書を書くことができるようにしたいです。ちょうどそれを行います!

フレームデザイン

全体的なアイデアは、商品が上記の訓練何を識別するための画像認識アルゴリズムを使用して、そこに対応する建物に商品を輸送することです。

ショットの研究の後、ゲームには、次のような特徴を持っていることがわかりました。

1.列車が5未満でそれぞれ一般に、約90年代まで、商品の各出荷のための3つ、商品の数量までのためにとどまるたびに

貨物上記2.小さな列車がランダムにいくつかのインセンティブをドロップします(その後、私は私が実際に戦略を持っているが、私は検討する気にしないでください私の同僚に言いました)

建物の上3.金を収穫することができ、ランダム報酬(赤、青スターコイン、貢献を)落とします

 

上記の3つの点を踏まえ、我々はフレームワークを設計することができます。

ループがループ4Sを実行するように設定されている間、商品の自動収集がここに金を受け取っ保つように、すべての1.まず、whileループを実行してきました

2.次に、いくつかのモジュール有するwhileループ:画像取得を、貨物(収率金)を取り扱い、認識を標的とします。

 

画像取得

そこには実際のマシンではありませんが、それはまた、ADBをサポートしているので、ここで私たちは、このゲームではBlueStacksエミュレータ実行している「夢の家の国」を使用し、それは非常に便利になります。

最初に私は、あなたのデスクトップ上に開いている、とAndroidエミュレータは、ゲームの一部がスクリーンショットを引き出すために、デスクトップ全体をキャプチャするには、LabVIEWを使用することを考えました。だから私はまた、達成しようとしましたが、ゲームのパターン部から撤退するので効果は、良くありません、そして解像度のAndroidエミュレータは同じではありません、それは圧縮を行うためのシミュレータのディスプレイのサイズを言うことです。

だから私は、ADBショットを簡単に直接使用することは、完成したマップのスプレッドPCをカットし、その後の分析を行います。ADBのスクリーンショットのコマンドリファレンスこの記事:https://www.cnblogs.com/guoguojiang/p/10347211.html

ADB(/sdcard/screen.png -p ADBシェルSCREENCAP)によって送信された1テーマコマンド

テーマPC上で送信2. ADBコマンド(ADBプル/sdcard/screen.png)

  

3. PNGファイルにローカルオープンAPIの視力、およびその後の画像処理部を通過させるための準備。全体のコードは次のようなものです:

  

ただ上を通過4.画像を削除します。

ターゲットを特定します

LabVIEWツールキットのビジョンでは、パターンマッチングのための特別なAPIは、私は、関連するAPIと一致したテンプレートを使用する前に、私はここで選んだ、そこにあります。APIは、ビジョンキットはまた、例えばが付属しているので、最も簡単な手順は、最初のテンプレートを使用することを学ぶために、そして何のテンプレート情報が存在しない、ターゲット数字を識別することで、それらを使用することは容易であるが、これについての詳細には触れません。

 1.まず、PNGファイルとして保存され、取り出したパターン部分のすべての機能を別のテンプレートをカット。一部の機能がランダムマップの異なる区画におけるいくつかのショットよりも多くを必要とする、テンプレートパターンの異なる区画が若干異なって、キャリッジのキャビンの三つのセクションのいずれかに表示されることがありますことに留意されたいです。

  

2.(負荷は+非常にゆっくりと学ぶため、最初の負荷が良いですので、テンプレート)アルゴリズム全体のプロセスは、テンプレートのすべての最初のロードにあり、その後、グループは、テンプレートを見つけた場合は、画像取得のための幾何学的テンプレートマッチングを行う、スライドさせることを置きますそこに建物を対応します。テンプレートが見つからない場合は、建物のどこ金貨を集めます。

例えば、ROIは、電車の周りの小さな領域に設定されている。ここ最適化アルゴリズムにはいくつかの方法があり、この範囲を大幅にきちんと削減されます。このマッチングアルゴリズムによって、モジュールの後ろに渡すために物資を輸送、商品の座標を求めることができます。コード下の図は、ダースの図面テンプレートのシート、および当社のゲームのスクリーンショットを入力し、出力はより良いストレージを実現対応する座標(建物の座標を見つけるために、建物を容易にすることである商品や貨物の検出位置の指標であります、およびインデックス)は、1つのハッシュマップへの1つであると考えることができます。ここでテンプレートに900点以上のスコア(一致度が高い0-1000マッチングスコアとの間の、より高い)が検出されます。

  

荷役(金貨のコレクション)

 商品はx-y座標を取得するため、貨物の取り扱いは、非常にシンプルで、かつ対応する座標を構築するXY、次のようなコマンドは、ADBだろう。

ADBシェル入力スワイプ250 250 300 300

 

商品の不在見つけ、あなたは金貨を収集するために行くことができる、あなたはまた、ADBコマンドを送信しますが、連続充電金9つの建物を必要とすることができ、あなたはコマンドキューADBを使用することができ、第九の最初の建物から転落し、その後、戻って最初に。

 

結果

結果は、このビデオを見ることができます実際には、アップ実行ADBコマンドが非常に遅いですが、私は(4S)を設定ループレートよりも大きいですが、それはそうなりたいです。

https://v.youku.com/v_show/id_XNDQwNDY2Mzg0MA==.html?spm=a2hzp.8244740.0.0

夜は100赤い封筒を行うことができるだろう、おそらく敗北貢献は本当に小さな列車の供給クォータがあると考えることはできません。

 

 

 スプレッド

1.ので、単純に自動的に開くプログラムの赤い封筒を作った、あまりにも疲れてマニュアルを開くには、200 +赤い封筒、赤い封筒があるでしょう2泊しました。アイデアは、非常に簡単ですクリックのタイミングをシミュレートするだけでなく、赤、開いた本の様々なサポートするので、多くの労力を節約ADBコマンドを使用することです。

 

2ショットトラブルの多くあるので、預金ボックステンプレートを描画するための小さなツールを書くことは簡単にすることができますので。

 

 

 そこに新たな要求は、それの後にあり、その後、新しい機能にそれを継続した場合。コードはひどくつまり、それは、共有してください間に合わせることができ、書かれています。

おすすめ

転載: www.cnblogs.com/sonwendi/p/11716667.html