Python Scrip Tasteneingabe zum Spiel?

Hallo, ich probiere mich grade im Programmieren.
aus spaß/versuch wollte ich eine Geschick spiel automatisierten
Aber ich bekomme es einfach nicht hin, dass das Scrip die tastenbefehle zum spiel sendet aber genau das passiert nicht.
wen ich es in einer Text Datei probiere klappts.
Script:

import cv2
import numpy as np
import pyautogui
import time
# Funktion zum Erstellen eines Screenshots eines bestimmten Bereichs
def take_screenshot(region=None):
  try:
    screenshot = pyautogui.screenshot(region=region)
    screenshot = cv2.cvtColor(np.array(screenshot), cv2.COLOR_RGB2BGR)
    return screenshot
  except Exception as e:
    print(f"Fehler beim Erstellen des Screenshots: {e}")
    return None
# Funktion zum Finden einer Vorlage in einem Screenshot
def find_template(screenshot, template_path, threshold=0.8):
  try:
    template = cv2.imread(template_path, 0)
    if template is None:
      print(f"Vorlage konnte nicht geladen werden: {template_path}")
      return False
    screenshot_gray = cv2.cvtColor(screenshot, cv2.COLOR_BGR2GRAY)
    result = cv2.matchTemplate(screenshot_gray, template, cv2.TM_CCOEFF_NORMED)
    min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(result)
    if max_val >= threshold:
      print(f"Vorlage {template_path} gefunden bei {max_loc}, mit Wert {max_val}")
      return True
  except cv2.error as e:
    print(f"OpenCV Fehler beim Finden der Vorlage: {e}")
  except Exception as e:
    print(f"Allgemeiner Fehler beim Finden der Vorlage: {e}")
  return False
# Hauptfunktion für die Automatisierung
def play_waveshaper(region):
  shapes_templates = {
    'triangle_down': r'C:\Users\nilsw\Pictures\Screenshots\triangle_down_template.png',
    'triangle_up': r'C:\Users\nilsw\Pictures\Screenshots\triangle_up_template.png',
    'square_up': r'C:\Users\nilsw\Pictures\Screenshots\square_up_template.png',
    'square_down': r'C:\Users\nilsw\Pictures\Screenshots\square_down_template.png'
  }
  shapes_keys = {
    'triangle_down': 'Q', # Tastenbelegung für Dreieck Runter
    'triangle_up': 'E',  # Tastenbelegung für Dreieck Hoch
    'square_up': 'W',   # Tastenbelegung für Viereck Hoch
    'square_down': 'S'   # Tastenbelegung für Viereck Runter
  }
  try:
    while True:
      screenshot = take_screenshot(region)
      if screenshot is None:
        print("Screenshot ist None, versuche es erneut.")
        continue
      found = False
      for shape, template_path in shapes_templates.items():
        if find_template(screenshot, template_path):
          if shape in shapes_keys:
            key = shapes_keys[shape]
            print(f"Muster {shape} gefunden und die Taste {key} wird gedrückt.")
            pyautogui.press(key)
            time.sleep(0.1) # Kurze Verzögerung nach Tastendruck
            found = True
      if found:
        # Füge hier weitere Aktionen hinzu, die ausgeführt werden sollen, wenn ein Muster gefunden wurde
        time.sleep(1) # Beispiel für eine Pause, bevor der nächste Screenshot gemacht wird
      else:
        time.sleep(0.1) # Warte eine kurze Zeit, bevor der nächste Screenshot gemacht wird
  except KeyboardInterrupt:
    print("Automatisierung gestoppt")
  except Exception as e:
    print(f"Ein Fehler ist aufgetreten: {e}")
if __name__ == "__main__":
  region = (0, 0, 1279, 1389) # Region, die den gesamten Bildschirm abdeckt
  print(f"Überwachte Region: {region}")
  play_waveshaper(region)
cmd, Code, Programmiersprache, Python
Martingale Strategie Bot programmieren mit Python?

Ich bin gerade dabei einen Bot für ein Demo Casino spiel zu programmieren aber bekomme es nicht richtig zum laufen. Es geht darum, eine bestimmte Roulette Strategie zu automatisieren. Es wird am Anfang auch Schwarz gesetzt und wenn das Roulette Rad leztendlich Schwarz trifft ist auf dem bildschirm ein Gewinn screen der die farbe RGB: (255, 214, 93) hat. wenn dieser auftaucht soll das ganze skript von vorne laufen und wieder nur einmal Geld einsetzen. Wenn aber der screen nicht kommt und die farbe demnach anders ist so soll der einsatz mit lost() verdoppelt werden. jedoch erkennt das skript die farbe irgendwie nie und überspringt daher fälschlicher Weise auf else. Danke für jede Hilfe.

from pyautogui import *
import pyautogui
import time
import keyboard
import numpy as np
import random
import win32api, win32con

time.sleep(3)

def click(x,y):
    win32api.SetCursorPos((x,y))
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,0,0)
    time.sleep(0.1)
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,0,0)

def lost():
    time.sleep(11)
    click(1193,1018)
    time.sleep(random.uniform(0.9,1.3))
    click(1350,1003)
def win():
    time.sleep(11)
    click(888, 887)
    time.sleep(random.uniform(0.9,1.3))
    click(1350, 1003)
def win_orig():
    click(888, 887)
    time.sleep(random.uniform(0.9,1.3))
    click(1350, 1003)
win_orig()
while keyboard.is_pressed('q') == False:
    time.sleep(18.5)
    if pyautogui.pixel(865, 483) [2] == 93:
        win()
        continue
    else:
        lost()
        continue
programmieren, Bot, Code, Programmiersprache, Python, Tkinter, Pycharm

Meistgelesene Beiträge zum Thema Python