Wenn...dann....

Code-Stücke können hier veröffentlicht werden.
Antworten
sasori99
User
Beiträge: 9
Registriert: Sonntag 2. August 2020, 13:00

Hallo Zusammen,

seit meinem 1. und bisher einzigen Beitrag habe ich fleißig gelesen und mein damaliges Problem ein klein wenig vereinfacht ;-)

Mein Problem aktuell ist, dass xcor maximal 800 sein darf und danach ycor um 10 erhöht werden muss. Danach muss xcor wieder bei 0 anfangen.

Wie kann ich dies bei mir einbauen?
Ich hatte es mit while xcor <= versucht, allerdings macht er dann einfach mit 810 weiter....

try:
while True:
try:
p.click(847, 475, 1,)
time.sleep(0.1)
p.hotkey('backspace', 'backspace', 'backspace')
time.sleep(0.1)
p.write(str(xcor))
p.click(962, 470, 1)
p.hotkey('backspace', 'backspace', 'backspace')
time.sleep(0.1)
p.write(str(ycor))
time.sleep(0.1)
p.click(1048, 619, 1,)
time.sleep(1)
xcor = xcor + 10

except p.FailSafeException:
print('Bot has been stopped.')
exit()


Danke für eure Hilfe!
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

Das ist kein gültiges Python, weil zum inneren try-Block ein except oder finallly fehlt. xcor und ycor weden nicht initilisiert. while ist die falsche Schleifenart.
Was Du brauchst sind zwei verschachtelte for-Schleifen.
sasori99
User
Beiträge: 9
Registriert: Sonntag 2. August 2020, 13:00

Das ist der ganze Code, der bei mir läuft.

import pyautogui as p
from pygame import mixer
import time

p.FAILSAFE = True

mixer.init()
ding = mixer.Sound('resources/sounds/ding.wav')

kaesten = 2

xcor = 750
ycor = 1

neueZeile = xcor <= 800

except TypeError:
p.alert(text='Du hast etwas falsches eingegeben!', title='Error!')
exit()
except Exception as e:
p.alert(text='Error: ' + e, title='Error!')
exit()



try:
while True:
try:
p.click(847, 475, 1,)
time.sleep(0.1)
p.hotkey('backspace', 'backspace', 'backspace')
time.sleep(0.1)
p.write(str(xcor))
p.click(962, 470, 1)
p.hotkey('backspace', 'backspace', 'backspace')
time.sleep(0.1)
p.write(str(ycor))
time.sleep(0.1)
p.click(1048, 619, 1,)
time.sleep(1)
xcor = xcor + 10

except p.FailSafeException:
print('Bot has been stopped.')
exit()

except KeyboardInterrupt:
print('Bot has been stopped.')

mixer.quit()
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@sasori99: Der läuft so sicher nicht, denn die Einrückung ist an mehreren Stellen kaputt. Und ich meine damit nicht die Darstellung im Beitrag wo die komplett fehlt, sondern die Einrückung die tatsächlich im Code vorhanden ist.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
sasori99
User
Beiträge: 9
Registriert: Sonntag 2. August 2020, 13:00

Sorry das war mein 2. und letzter Eintrag in das Forum.
Ich kopiere hier den Code ein und das Forum rückt die Zeilen zusammen.

Es kümmert sich niemand um die Frage. Nur darum, was wie wo wann hätte wäre und wenn.... Schlimmer als im Facebook.
Tschüss bin weg.
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

Darum ging es ja gar nicht, sondern darum, dass Du behauptest, der Code würde laufen, es aber nicht tut. Da kann man nur schlecht helfen, wenn wir nicht vom selben Code reden. Außerdem habe ich Dir die Lösung gesagt, man benutzt for-Schleifen. Wenn Du statt Hilfe annehmen, beleidigt sein willst, wird Dich hier niemand abhalten.
Benutzeravatar
sparrow
User
Beiträge: 4164
Registriert: Freitag 17. April 2009, 10:28

@sasori99: Code im Forum immer zwischen Code-Tags schreiben, damit die Einrückung erhalten bleibt. Die erscheinen automatisch, wenn man den </>-Button im "Vollständigen Editor & Vorschau" drückt. Dazwischen gehört dann dein Code.

Ich mache das mal für deinen Code:

Code: Alles auswählen

import pyautogui as p
from pygame import mixer
import time

p.FAILSAFE = True

mixer.init()
ding = mixer.Sound('resources/sounds/ding.wav')

    kaesten = 2

    xcor = 750
    ycor = 1

    neueZeile = xcor <= 800

except TypeError:
    p.alert(text='Du hast etwas falsches eingegeben!', title='Error!')
    exit()
except Exception as e:
    p.alert(text='Error: ' + e, title='Error!')
    exit()



try:
    while True:
        try:
            p.click(847, 475, 1,)
            time.sleep(0.1)
            p.hotkey('backspace', 'backspace', 'backspace')
            time.sleep(0.1)
            p.write(str(xcor))
            p.click(962, 470, 1)
            p.hotkey('backspace', 'backspace', 'backspace')
            time.sleep(0.1)
            p.write(str(ycor))
            time.sleep(0.1)
            p.click(1048, 619, 1,)
            time.sleep(1)
            xcor = xcor + 10

except p.FailSafeException:
        print('Bot has been stopped.')
        exit()

except KeyboardInterrupt:
    print('Bot has been stopped.')

mixer.quit()
Das ändert aber nichts daran, dass dein Code nicht läuft, weil die Einrückungen nicht stimmen.
Du schreibst aber, dass er läuft.
Benutzeravatar
webbygirl21
User
Beiträge: 7
Registriert: Donnerstag 12. November 2020, 12:21

Hi! Also verstehen kann man die Leute teilweise schon. Zu oft hätte man gerne eine Antwort von sparrow, bekommt aber eine von _blackjack_ ... euch beide hier nur exemplarisch und natürlich ist das nur meine persönliche Meinung. Ich bin neu hier und fühle mich bisher ganz wohl, verstehe aber auch den genervten User teilweise
Home is where my computer is. :mrgreen:
Graffito
Benutzeravatar
snafu
User
Beiträge: 6731
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Das Ding ist, dass der Threadersteller sich selbst auch nur auf die Kritik am Code (bzw Hinweis darauf, dass der so nicht laufen kann) konzentriert hat. Wenn man konkrete Fragen zum Hinweis mit den for-Schleifen hat, dann hätte man die auch einfach stellen können...
Antworten