Warum Funktioniert mein Python Programm nicht, obwohl es fehlerfrei ist?

Hallo,

ich möchte so ein Wahl spiel in Python machen, wo das Programm dir Antworten vorschlägt und du sie dann eingeben musst usw. ...

Das Problem aber ist das das Programm nicht ausgeführt wird, obwohl es Fehlerfrei ist. Es kommt übrigens auch keine Fehlermeldung.

das Programm wird einfach gekillt, nachdem ich bei Laserschneider die 1 eingebe.(Die 1 steht ja auch für den Laserschneider)

Übrigens: was ep1wam1 und so weiter bedeutet, steht ganz am Anfang des Codex.

Vielen Dank im voraus!

FormulaSun12

Der Codex:

# ep = Episode
# wam = wahlmöglichkeiten
# wa = Wahl
# er = erneut
# sf = sicherheitsnachfrage


from time import sleep


episode1 = True
episode2 = False


def ep1wam1():
        ep1wam1 = int(input ("Laserschneider; Jet Pack; Untererde-Loch-graber-Maschiene; Einfach an der Tür Klopfen (1=Laserschneider)"))


# Begrüßung


name = input ("Name?") # Frägt nach Namen
print ("Wilkommen", name, ",")
print ("Beantworte die Fragen mit den angegebenen Antworten. Die angegebenen Antworten sind in Klammern")
sleep (1.0)
input ("Drücken sie eine Taste um fortzufahren!")
print ("Spiel Ladet, bitte warten...")
sleep (3.0)


# Episodenauswahl


episode = int(input ("Episodenauswahl, bitte wählen sie einen Episod! (1);(2)"))


# Wenn Episode 1 wurde ausgewählt und episode1 ist True dann:


if episode1 == True and episode == 1:
    print ("EPISODE 1")
    sleep (1.5)
    print ("20. JUNI 2022")
    sleep (1.5)
    print ("DU STEHST VOR EINEM RIESEGNEN, GUT BEWACHTEN GELDSPEICHER WO DU EINBRECHEN WILLST!")
    sleep (1.5)
    print()
    print ("WÄHLE EINEN DIESER SACHEN UND PROBIERE REINZUKOMMEN! ABER PASS AUF! DAS GEBÄUDE WIR SEHR STRENG ÜBERWACHT! VIEL GLÜCK!")
    print ()
    sleep (1.5)
    ep1wam1()



    # Wenn der Laserschneider ausgewählt wurde:
    if ep1wam1 == 1:
        print ("Die Maschine schneidet einen großen Loch in die Wand.")
        sleep(1.5)
        print ("Das hätte prima funktioniert wenn das ausgeschneidete Teil nicht auf dich draufgefallen wäre :/")
        sleep(1.5)
        print ("FAIL!")
        ep1wam1wa1er = int(input ("Erneut versuchen? (1 für ja);(2 für nein)"))


        if ep1wam1wa1er == 1:
            ep1wam1()
            
        elif ep1wam1wa1er == 2:
            ep1wam1wa1sf = int (input ("Das Spiel hört hier auf. Bist du sicher das du verlassen möchtest? Das Spiel Speichert NICHT! (1=ja);(2=nein)"))


            if ep1wam1wa1sf == 1:
                ep1wam1()
                
            elif ep1wam1wa1sf == 2:
                quit()




# Wenn Episode 2 noch nicht freigeschalten ist dann:


elif episode2 == False and episode == 2:
    print ("Diese Episode ist noch gesperrt! Schliese erst die Anderen ab!")

programmieren, Python, Python 3
Pygame: Rechteck mit Hitbox erstellen?

Angenommen, ich habe so ein Programm:

Der Spieler kann sich auf der X- und Y-Koordinate frei bewegen. Naja, nicht komplett frei. Der Spieler muss immer vollständig auf dem Screen sein. Dazu habe ich eingestellt, dass die Velocity (=Geschwindigkeit) nur die Position des Spielers verändert, wenn sich die Koordinaten des Spielers, und vorallem der player.rect (Rechteck), sich auf dem Screen befinden. Wenn er also außerhalb war, wurde die Geschwindigkeit zwar berechnet, hatte aber keine Auswirkungen auf seine Koordinaten und somit bewegte er sich einfach nicht mehr weiter. Hierbei ist wichtig: Die beiden Koordinaten (x & y) sind voneinander unabhängig! Wenn sich der Spieler also beispielsweise links am Rand befindet, kann er sich zwar nicht mehr nach links bewegen, jedoch kann er immernoch nach unten und oben gehen (X-Achse).

Soweit, so gut. Jetzt will das gleiche machen, nur für ein anderes pygame.rect (Rechteck). Hierbei ist der zentrale Unterschied, dass sich der Spieler hier nicht, wie beim Screen, nicht aus dem Bereich bewegen darf, sondern er darf hier nicht den Bereich betreten. Dafür gibt es ja die Funktion pygame.rect.colliderect(). Die sagt, ob sich die beiden pygame.rect's überschneiden, also kollidieren. Das Problem jedoch, ich komme nicht auf die Idee, wie ich die Koordinaten voneinder unabhängig machen kann.

Angenommen, mein Spieler würde sich jetzt hier befinden:

Wie soll ich im Programm klarmachen, ob der Spieler von oben oder von links kommt? Und überhaupt, woher soll ich mir das klarmachen? Das kann man ja nicht sagen, woher er gekommen ist, er könnte ja auch von rechts gekommen sein. Diese Methode, wie beim screen würde hier also nicht funktionieren.

Hat jemand eine Idee, wie ich das sonst machen könnte? Bringen mir die Velocities vielleicht etwas?

Falls jemand eine Idee hat: Ich brauche jetzt nicht unbedingte einen Code, ich bräuchte nur ein Konzept, was ich dann auch selber umsetzen kann.

Danke im Vorraus!

Bild zum Beitrag
Computer, Mathematik, Python, Pygame
Wie kann ich button Ausrichten (Python)?

Ich wollte in folgendem Code den Button abstand entfernen, damit diese nicht so eine große lücke haben.

from tkinter import *
import random
from tkinter import messagebox

root = Tk()
root.title('Lock')
root.geometry('400x780')

one_btn = Button(root, text='1', command=one_btn_press, activebackground='#3a3b3c', background='#2a2b2c', fg='#7a7b7c', height='3', width=10)
two_btn = Button(root, text='2', command=two_btn_press, activebackground='#3a3b3c', background='#2a2b2c', fg='#7a7b7c', height='3', width=10)
three_btn = Button(root, text='3', command=three_btn_press, activebackground='#3a3b3c', background='#2a2b2c', fg='#7a7b7c', height='3', width=10)
four_btn = Button(root, text='4', command=four_btn_press, activebackground='#3a3b3c', background='#2a2b2c', fg='#7a7b7c', height='3', width=10)
five_btn = Button(root, text='5', command=five_btn_press, activebackground='#3a3b3c', background='#2a2b2c', fg='#7a7b7c', height='3', width=10)
six_btn = Button(root, text='6', command=six_btn_press, activebackground='#3a3b3c', background='#2a2b2c', fg='#7a7b7c', height='3', width=10)
seven_btn = Button(root, text='7', command=seven_btn_press, activebackground='#3a3b3c', background='#2a2b2c', fg='#7a7b7c', height='3', width=10)
eight_btn = Button(root, text='8', command=eight_btn_press, activebackground='#3a3b3c', background='#2a2b2c', fg='#7a7b7c', height='3', width=10)
nine_btn = Button(root, text='9', command=nine_btn_press, activebackground='#3a3b3c', background='#2a2b2c', fg='#7a7b7c', height='3', width=10)
plus_btn = Button(root, text='+', command=plus_btn_press, activebackground='#3a3b3c', background='#2a2b2c', fg='#7a7b7c', height='3', width=10)
minus_btn = Button(root, text='-', command=minus_btn_press, activebackground='#3a3b3c', background='#2a2b2c', fg='#7a7b7c', height='3', width=10)
mult_btn = Button(root, text='*', command=mult_btn_press, activebackground='#3a3b3c', background='#2a2b2c', fg='#7a7b7c', height='3', width=10)
div_btn = Button(root, text='/', command=div_btn_press, activebackground='#3a3b3c', background='#2a2b2c', fg='#7a7b7c', height='3', width=30)
square_btn = Button(root, text='^', command=square_btn_press, activebackground='#3a3b3c', background='#2a2b2c', fg='#7a7b7c', height='3', width=30)



one_btn.grid(row=0, column=0, pady=0, padx=0)
two_btn.grid(row=0, column=1, pady=0, padx=0)
three_btn.grid(row=0, column=2, pady=0, padx=0)
four_btn.grid(row=1, column=0, pady=0, padx=0)
five_btn.grid(row=1, column=1, pady=0, padx=0)
six_btn.grid(row=1, column=2, pady=0, padx=0)
seven_btn.grid(row=2, column=0, pady=0, padx=0)
eight_btn.grid(row=2, column=1, pady=0, padx=0)
nine_btn.grid(row=2, column=2, pady=0, padx=0)
plus_btn.grid(row=0, column=3, pady=0, padx=0)
minus_btn.grid(row=1, column=3, pady=0, padx=0)
mult_btn.grid(row=2, column=3, pady=0, padx=0)
div_btn.grid(row=3, column=1, pady=0, padx=0)
square_btn.grid(row=3, column=2, pady=0, padx=0)


root.call('wm', 'attributes', '.', '-topmost', '1')
root.mainloop()
programmieren, Python
Chrome Driver | Python | Ubuntu?

Hey,

wenn ich versuche den Chromedriver mit Selenium und Python zu starten bekomme ich den Fehler:

[WDM] - ====== WebDriver manager ======
[WDM] - Current google-chrome version is 102.0.5005
[WDM] - Get LATEST chromedriver version for 102.0.5005 google-chrome
[WDM] - Driver [/root/.wdm/drivers/chromedriver/linux64/102.0.5005.61/chromedriver] found in cache
test2.py:41: DeprecationWarning: use options instead of chrome_options
  driver = webdriver.Chrome(chrome_options=options, service=Service(ChromeDriverManager().install()))
Traceback (most recent call last):
  File "test2.py", line 117, in <module>
    webscraperopen()
  File "test2.py", line 41, in webscraperopen
    driver = webdriver.Chrome(chrome_options=options, service=Service(ChromeDriverManager().install()))
  File "/usr/local/lib/python3.8/dist-packages/selenium/webdriver/chrome/webdriver.py", line 70, in __init__
    super(WebDriver, self).__init__(DesiredCapabilities.CHROME['browserName'], "goog",
  File "/usr/local/lib/python3.8/dist-packages/selenium/webdriver/chromium/webdriver.py", line 92, in __init__
    RemoteWebDriver.__init__(
  File "/usr/local/lib/python3.8/dist-packages/selenium/webdriver/remote/webdriver.py", line 275, in __init__
    self.start_session(capabilities, browser_profile)
  File "/usr/local/lib/python3.8/dist-packages/selenium/webdriver/remote/webdriver.py", line 365, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
  File "/usr/local/lib/python3.8/dist-packages/selenium/webdriver/remote/webdriver.py", line 430, in execute
    self.error_handler.check_response(response)
  File "/usr/local/lib/python3.8/dist-packages/selenium/webdriver/remote/errorhandler.py", line 247, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally.
  (unknown error: DevToolsActivePort file doesn't exist)
  (The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
Linux, Python

Meistgelesene Beiträge zum Thema Python