From 031b7e41cb72b2732f94d2f368f3b02367b85683 Mon Sep 17 00:00:00 2001 From: Ksan Date: Sun, 21 Dec 2025 18:30:31 +0100 Subject: [PATCH] test --- assets/gameover.png | Bin 0 -> 752 bytes assets/restart.PNG | Bin 0 -> 240 bytes assets/restartt.png | Bin 0 -> 285 bytes assets/tile.png | Bin 0 -> 258 bytes src/minesolver.py | 51 +++++++++++++++++++++++++++++++++++++++++++- 5 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 assets/gameover.png create mode 100644 assets/restart.PNG create mode 100644 assets/restartt.png create mode 100644 assets/tile.png diff --git a/assets/gameover.png b/assets/gameover.png new file mode 100644 index 0000000000000000000000000000000000000000..0d56f2b367b9d1043dad1edc25a526793b337121 GIT binary patch literal 752 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0)|w2N3t3M1Gkf)6ZwbYin?p@k@-tN7MN3*T-pS_^h+ zAt?Alv`~;Qb9R_ycIUbXK}d0y%l*IaFmrc?v7@6SeH4~Xr}a_fl`kzVX=rH32{TtG zOhmrFzpu^BO>Jy!sJpvE1qJ4W85y#4ay<}{udJ-7rlv+^Wo2q^j(cZkPMDD)ODER@ zS@O}*Q8hN!YH+YniG+DqWs=-5BSV%B-LMP($j8UW)!zO?O--iDOSjMkSvquaWXbpT z_A+NzTl-BdEvDC3)8nJ*<;90Jdx7k&Ib9sMaAxGo%gd^+u2wQxq|;N=#RVbL`nnHm z_5%4^bGkTi;mpYA=jRoV$CXO?<@g!|P=;FYIGb7*L-q!T=v>F<|W^R=~>g2?9d+Qd4Aw!l9T^zV@X5{=p zB9ZXU>$?U9OxM?LnG3RX=;8=`S#n4wld7xxqRGk6T3t0A9=e6Vj0{;ibi*!)eC9Z> z($Z4JVlnR{P^habbHa=a+2D+GiO6?$b~H0H<6Y6DIy!!-yxg2HBSV%>t_LFWFsW3^ i`+T)KVdm=mC9U7yHck9;dh($F0000Nn{1`ISV`@iy0XB4ude`@%$AjK*3f|7sn6_|GQ@$xegd`xCFj`d$Y)_ySvfA zO09L>t{)SkJ||_b{b5wzubh>(G>^YmqoLzgi+4z34Ey#Mx*ZaFFZdpv=`Zv2K$ z^>-Hx(iDw&c@pC~JTLURDw;K2me^Na&z)G*pnPjX>FyTSU&&hEc(1>^8^N+=fohMl z(Ob11#oRaR1f3LlDjhi&8nhXtEUdZw&%D);uODbCXLnlCr;ji1-N@r8eZ$gXRko@* bB3D1t?f(5NuHULa*E4v!`njxgN@xNA92jYa literal 0 HcmV?d00001 diff --git a/assets/tile.png b/assets/tile.png new file mode 100644 index 0000000000000000000000000000000000000000..c2e82d5c53657a5b890f82fe53fd08a75fb3ee67 GIT binary patch literal 258 zcmeAS@N?(olHy`uVBq!ia0vp^qChOd!3HFgyvvM%6k~CayA#8@b22Z19F}xPUq=Rp zjs4tz5?O(K&H|6fVg?4j!ywFfJby(BP;k1Zi(`m||Jy4IxmXlMS`+Wzek3ygaDq_c zqRdGr6AZL_d<5hZ)O;;=AIcLj(|PBn|Ht*o<7M7+ia8V$?w4PQs()v}H(`p)^pUXO@geCyN Cw`8aQ literal 0 HcmV?d00001 diff --git a/src/minesolver.py b/src/minesolver.py index 3a02cfc..0dcf86a 100644 --- a/src/minesolver.py +++ b/src/minesolver.py @@ -1,5 +1,9 @@ from enum import IntEnum - +import threading +import sys +import keyboard +import time +import pyautogui as pg class Tile(IntEnum): UNKNOWN = -1 FLAG = -2 @@ -20,9 +24,18 @@ def print_grid(grid): for row in grid: print(" ".join(f"[{cell}]" for cell in row)) +#kill switch +def run_kill_switch(): + while True: + time.sleep(1) + + if keyboard.is_pressed('b'): + print("Stopping...===========================================") + sys.exit() def loadMap(location: str): rows = 0 cols = 0 + with open("map", "r") as f: for i in f: @@ -35,6 +48,9 @@ def loadMap(location: str): return [rows, cols, map] +thread = threading.Thread(target=run_kill_switch) +thread.daemon = True +thread.start() loadedmap = loadMap("map") map = loadedmap[2] @@ -45,5 +61,38 @@ grid = makegrid(loadedmap[0], loadedmap[1]) print_grid(grid) print(map) +restartImage = r'assets\gameover.png' +tileImage = r'assets\tile.png' + +def restartGame(): + + try: + print("reset") + try: + location = pg.locateOnScreen(restartImage) + + pg.click(location) + print("reset") + except: + print("exception in restart") + return + + except: + return False + +print("loop:") +while(True): + try: + restartGame() + if keyboard.is_pressed('b'): + break + tile = pg.locateOnScreen(tileImage) + + + pg.click(tile) + except: + + print("error neki") + break