Beende Googles Minesweeper-Spiel mit diesem Skript. Notwendige Bibliotheken: numpy , opencv2 , pyautogui .
Laden Sie dieses Projekt mit diesem Befehl herunter:
https://github.com/EnriqueMoran/google-minesweeper-bot.git
Als nächstes installieren Sie die erforderlichen Bibliotheken mit dem folgenden Befehl:
pip install pyautogui opencv-python numpy
Sobald die Installation abgeschlossen ist, klicken Sie mit der rechten Maustaste auf die Datei „minesweeper.py“ und bearbeiten Sie sie mit IDLE. Öffnen Sie das Google Minesweeper-Spiel und stellen Sie sicher, dass das Spielfenster vollständig sichtbar ist. Klicken Sie dann auf Python IDLE und drücken Sie F5.
Hinweis: Wenn Sie das Skript zum ersten Mal ausführen, wird ein neues Fenster geöffnet, das möglicherweise über dem Spielfenster platziert wird. Bewegen Sie es einfach heraus und ändern Sie die Größe.
Wichtig: Wenn Sie die Ausführung des Skripts abbrechen müssen, platzieren Sie die Maus in der oberen linken Ecke Ihres Bildschirms.
Bei jedem Zug wird ein Screenshot erstellt und jede Zelle, die nicht grün ist, wird erkannt (nicht unbekannte Zelle).
Als nächstes wird jede Zelle daraufhin überprüft, ob auf einer ihrer benachbarten Zellen eine Markierung angebracht ist. Der verwendete Algorithmus ist der folgende:
Wenn die Anzahl der markierten angrenzenden Zellen geringer ist als die Punktzahl der überprüften Zelle und die Anzahl der unbekannten angrenzenden Zellen plus markierten Zellen kleiner als die Punktzahl ist, dann setzen Sie eine Markierung auf eine der unbekannten angrenzenden Zellen.
Wenn die Anzahl der markierten benachbarten Zellen gleich der Punktzahl ist und die Anzahl der unbekannten benachbarten Zellen größer als 0 ist, klicken Sie auf eine davon.
Wenn keine der Zellen für eine Aktion gültig ist, wird eine zufällige unbekannte Zelle angeklickt.
Sobald keine Flaggen mehr übrig sind, ist das Spiel beendet und das Skript stoppt. Wenn das Spiel beim Klicken auf eine zufällige Zelle verloren geht und das Punktefenster erkannt wird, stoppt auch das Skript.
Bei Version 1.0 hängt die Leistung vom Geschwindigkeitsparameter ab, der die Zeit festlegt, die das Skript nach dem Klicken auf eine Zelle wartet, um einen neuen Screenshot zu erstellen.
Geschwindigkeit | Nr. Spiele | Leichter Sieg/Niederlage | Normaler Sieg/Niederlage | Harter Sieg/Niederlage | Einfacher Durchschn. Zeit | Normaler Durchschn. Zeit | Schwerer Durchschn. Zeit |
---|---|---|---|---|---|---|---|
0,05 | 10 | 1.9 | 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 | 1.9 | 10/0 | 2/8 | 27.2 | 214,66 | 812,5 |
In Version 1.2 wird der OpenCv2-Vorlagenabgleich nicht mehr verwendet. Die Bewertungen werden aus der Farbe ihrer Pixel ermittelt. Die Geschwindigkeitsleistung wurde auf einfachen und normalen Schwierigkeitsgraden verbessert. Es müssen Regeln hinzugefügt werden, die angewendet werden, wenn ein zufälliges Klicken erforderlich ist.
Geschwindigkeit | Nr. Spiele | Leichter Sieg/Niederlage | Normaler Sieg/Niederlage | Harter Sieg/Niederlage | Einfacher Durchschn. Zeit | Normaler Durchschn. Zeit | Schwerer Durchschn. Zeit |
---|---|---|---|---|---|---|---|
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 |
Fügen Sie Regeln für zufällige Klicks hinzu.