このスクリプトを使用して Google のマインスイーパー ゲームをクリアしてください。必要なライブラリ: numpy 、 opencv2 、 pyautogui 。
次のコマンドを使用してこのプロジェクトをダウンロードします。
https://github.com/EnriqueMoran/google-minesweeper-bot.git
次に、次のコマンドを使用して必要なライブラリをインストールします。
pip install pyautogui opencv-python numpy
インストールが完了したら、mineweaker.py ファイルを右クリックし、IDLE で編集します。 Google マインスイーパー ゲームを開き、ゲーム ウィンドウが完全に表示されていることを確認してから、[Python IDLE] をクリックして F5 キーを押します。
注:初めてスクリプトを実行すると、ゲーム ウィンドウの上に新しいウィンドウが開きます。そのウィンドウを外に移動してサイズを変更するだけです。
重要:スクリプトの実行を中止する必要がある場合は、画面の左上隅にマウスを置きます。
移動するたびにスクリーンショットが撮影され、緑色ではない各セル (未知のセル) が認識されます。
次に、各セルは、隣接するセルのいずれかにフラグが設定されているかどうかチェックされます。使用されるアルゴリズムは次のとおりです。
フラグが設定された隣接セルの数がチェックされたセルのスコアより少なく、未知の隣接セルとフラグが設定されたセルの数がスコアより小さい場合、未知の隣接セルのいずれかにフラグを置きます。
フラグが設定された隣接セルの数がスコアと等しく、不明な隣接セルの数が 0 より大きい場合は、それらのいずれかをクリックします。
どのセルもアクションに対して有効でない場合は、ランダムな未知のセルがクリックされます。
フラグがなくなるとゲームが終了し、スクリプトが停止します。ランダムなセルをクリックしてゲームに負けた場合、スコアウィンドウが認識されていれば、スクリプトも停止します。
v1.0 のパフォーマンスは、新しいスクリーンショットを撮るためにセルをクリックした後にスクリプトが待機する時間を設定する速度パラメータに依存します。
スピード | N°ゲーム | 簡単な勝ち負け | 通常の勝敗 | 厳しい勝利/敗北 | 簡単な平均時間 | 通常の平均時間 | ハード平均時間 |
---|---|---|---|---|---|---|---|
0.05 | 10 | 9/1 | 5/5 | 3/7 | 27.55 | 258.6 | 854 |
0.10 | 10 | 8/2 | 8/2 | 0/10 | 28.875 | 235.83 | - |
0.15 | 10 | 9/1 | 10/0 | 2/8 | 27.2 | 214.66 | 812.5 |
v1.2 では、opencv2 テンプレート マッチングは使用されなくなりました。スコアはピクセルの色から取得されます。イージーおよびノーマル難易度でのスピード性能が向上しました。ランダムにクリックする必要がある場合に適用するルールを追加する必要があります。
スピード | N°ゲーム | 簡単な勝ち負け | 通常の勝敗 | 厳しい勝利/敗北 | 簡単な平均時間 | 通常の平均時間 | ハード平均時間 |
---|---|---|---|---|---|---|---|
0.015 | 10 | 8/2 | 4/6 | 0/10 | 11.25 | 42 | - |
0.05 | 10 | 7/3 | 5/5 | 1/9 | 11.28 | 44.6 | 113 |
ランダムクリックのルールを追加します。