Spiel: Kleines FakeHackprogramm Frage

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Gary123456
User
Beiträge: 318
Registriert: Dienstag 26. Februar 2013, 18:39

Hi,

Code: Alles auswählen

#Spiel

def Hilfe():
    print("Mit Hilfe dieses Programm werden sie hacken! INFO: Das ist ein Spiel und kein echtes Hackprogramm!")

def Hacken():
    print("Hello World")
    

def StarteSpiel():
    HilfeAbfrage=int(input("Falls Sie Hilfe brauchen, drücken Sie die 1.")
    if HilfeAbfrage==1:
        return Hilfe()
    else:
        SpielAbfrage=int(input("Wollen Sie wirklich hacken? Falls ja, drücken sie 1."))
        if SpielAbfrage==1:
            return Hacken()
        else:
            print("Das Spiel wird jetzt beendet")
            
        

Registrieren=int(input("Falls Sie sich registrieren möchten, drücken sie 1."))

AlleBenutzer=[]
AllePasswort=[]

if Registrieren==1:
    Nbenutzer=input("Geben Sie den gewünschten Benutzernamen ein:")
    Npasswort=input("Geben Sie das gewünschte Passwort ein:")
    AlleBenutzer.append(Nbenutzer)
    AllePasswort.append(Npasswort)
else:
    benutzer=input("Geben Sie Ihren Benutzernamen ein:")
    passwort=input("Geben Sie Ihr Passwort ein:")
    
if AlleBenutzer[0]==Nbenutzer and AllePasswort[0]==Npasswort:
    StarteSpiel()
    

print(AlleBenutzer)
print(AllePasswort)
Um mich bisschen warm zu halten, habe ich das geschrieben. Nun kommt ein Fehler: invalid syntax in dieser Zeile: if HilfeAbfrage==1:

Warum nur?
BlackJack

@Gary123456: Kontrollier mal die Klammern in der Zeile davor.

Passwort und Benutzer gehören jeweils zusammen, deshalb sollte man die nicht ”parallel” in verschiedenen Datenstrukturen speichern. Da das eine Abbildung ist, Benutzer zu Passwort, und es einen Benutzer nur einmal geben darf, wäre ein Wörterbuch hier auch die bessere Datenstruktur.

Edit: Die ``return``-Anweisungen in `StarteSpiel()` machen keinen Sinn, da die dort aufgerufenen Funktionen nichts (explizit) zurück geben und auch beim Aufrufer überhaupt nichts mit dem (sinnfreien) Rückgabewert gemacht wird.

Ausserdem gibt es so etwas wie Namenskonventionen: Style Guide for Python Code.
Gary123456
User
Beiträge: 318
Registriert: Dienstag 26. Februar 2013, 18:39

Ich sollte mich umbringen.

Ja return ist wirklich sinnlos. Danke trotzdem!
Gary123456
User
Beiträge: 318
Registriert: Dienstag 26. Februar 2013, 18:39

EDIT:Lösung schon gefunden!
Gary123456
User
Beiträge: 318
Registriert: Dienstag 26. Februar 2013, 18:39

OK dann doch noch eine Frage. Will in meinem Programm einen Timer einbauen. Nun habe ich die Module Time und Threads etwas angeschaut.

Das mit dem Modul threads funkt nicht so richtig:

Code: Alles auswählen

def hello():
    print "hello, world"

t = Timer(30.0, hello)
t.start() # after 30 seconds, "hello, world" will be printed
1. kommt da eine Fehlermeldung. (Verständlich)

Somit habe ich den Code etwas umgeformt.

Code: Alles auswählen

import threading

def hello():
    print("hello, world")

t = threading.Timer(30.0, hello())
t.start() # after 30 seconds, "hello, world" will be printed
Nach 30 sek sollte er HelloWorld printen lassen. Das tut er jedoch nicht.

Wie kann ich einen sicheren und zuverlässigen Timer einbauen. Im Modul time finde ich keine Timer Funktion, oder bin ich blind?
BlackJack

@Gary123456: Vom ersten zum zweiten Beispiel hast Du die Argumente verändert. Der Timer braucht eine Funktion als Argument und nicht `None` was Du im zweiten Beispiel übergibst, weil das nämlich der Rückgabewert Deiner Funktion ist.

Und dann musst Du dafür sorgen, dass der Hauptthread auch solange läuft bis die 30 Sekunden um sind. Sonst bricht das Programm sofort ab und beendet auch den Thread in dem der Timer läuft. Du könntest am Programmende zum Beispiel auf den Timer warten. Dazu haben `Thread`-Exemplare eine `join()`-Methode.
Gary123456
User
Beiträge: 318
Registriert: Dienstag 26. Februar 2013, 18:39

Danke! Habe jetzt eine Lösung gefunden!
Gary123456
User
Beiträge: 318
Registriert: Dienstag 26. Februar 2013, 18:39

Und Programm fertig geproggt.

Hier der Source Code:

Code: Alles auswählen

#Spiel
import os
import signal
import threading 

def Gestohlene_Daten():

     datei2=open("Daten.txt","w")

     datei2.write("Ebay - Passwort: Hekdlaien33 ")
     datei2.write("FB - Passwort: ji87z78zhihg76 ")
     datei2.write("READY")

     datei2.close()

     print("Das Spiel ist jetzt beendet")
     os.kill(os.getpid(),signal.CTRL_C_EVENT)
     


def TimerFunction2():
     print("Daten erfolgreich gestohlen!")
     Gestohlene_Daten()

def Phase2():
     print("Es werden Dateien gestohlen! Haben Sie etwas Geduld!")
     t2=threading.Timer(6.0,TimerFunction2)
     t2.start()

def TimerFunction():
     print("Verbindung erfolgreich aufgenommen!")
     Phase2()

def Phase1():
     print("Verbindung wird aufgenommen!")
     t=threading.Timer(5.0,TimerFunction) #Timer!
     t.start()    

def Hilfe():
     print("Mit Hilfe dieses Programm werden sie hacken! INFO: Das ist ein Spiel und kein echtes Hackprogramm!")

def Hacken():
     print("Hier werden zuerst Infos über den Angreifer erfasst und diese in ein sogenanntes Logfile eingetragen!")

     O_Name=input("Geben Sie hier den Namen des Opfers ein! (Vor- und Nachname!)")
     O_IP=input("Geben Sie hier die IP des Opfers ein!")
     A_Port=input("Geben Sie hier die Portnummer ein, über die Sie hacken möchten!")

     Datei=open("Logfile.txt","w")
     #Inhalt der Datei 
     Datei.write("Name des Opfers ")
     Datei.write(O_Name)
     Datei.write("IP des Opfers ")
     Datei.write(O_IP)
     Datei.write("Über welchem Port: ")
     Datei.write(A_Port)

     Datei.close()

     OA_Abfrage=input("Wollen sie wirklich hacken? 1 für ja!")

     if OA_Abfrage=="1":
          print("Der Computer wird jetzt gehackt. Gedulden Sie sich bitte etwas!")
          Phase1()
     else:
          print("Sie haben nichts eingegeben!")
          
              

    

def StarteSpiel():

          HilfeAbfrage=input("Falls Sie Hilfe brauchen, drücken Sie die 1.")

          if HilfeAbfrage=="1":
               Hilfe()
          else:
               SpielAbfrage=input("Wollen Sie wirklich hacken? Falls ja, drücken sie 1.")
               if SpielAbfrage=="1":
                    Hacken()
               elif SpielAbfrage==None:
                    print("Das Spiel wird jetzt beendet")
                    os.kill(os.getpid(),signal.CTRL_C_EVENT)


            
        

Registrieren=input("Falls Sie sich registrieren möchten, drücken sie 1.")

    
AlleBenutzer=[]
AllePasswort=[]

if Registrieren=="1":
     Nbenutzer=input("Geben Sie den gewünschten Benutzernamen ein:")
     Npasswort=input("Geben Sie das gewünschte Passwort ein:")
     AlleBenutzer.append(Nbenutzer)
     AllePasswort.append(Npasswort)
elif Registrieren==None:
     benutzer=input("Geben Sie Ihren Benutzernamen ein:")
     passwort=input("Geben Sie Ihr Passwort ein:")

try:
     if AlleBenutzer[0]==Nbenutzer and AllePasswort[0]==Npasswort:
          StarteSpiel()
except:
     print("User nicht registriert oder anderer Fehler!")
     os.kill(os.getpid(),signal.CTRL_C_EVENT)
BlackJack

@Gary123456: Was soll denn dieser `os.kill()`-Unsinn? Es gibt `sys.exit()`.

Statt `threading` hätte hier auch ein einfaches `time.sleep()` zum warten gereicht und weniger Funktionen. Wobei die Funktionen hier eher wie Sprungmarken und die Aufrufe als GOTO-Ersatz aussehen. So sah Spaghetticode in den 80ern aus.

Warum ist da eine 2 an `datei2` in `Gestohlene_Daten`?

Im Zusammenhang mit Dateien sollte man die ``with``-Anweisung verwenden.

Abkürzungen sollte man vermeiden. Wenn man `Opfer` meint, sollte man nicht nur `O` schreiben. Das es eine Namenskonvention in Python gibt, habe ich glaube ich schon einmal geschrieben, oder? Gedenkst Du auch irgendwann einmal Dich daran zu halten?
Gary123456
User
Beiträge: 318
Registriert: Dienstag 26. Februar 2013, 18:39

Hi,

Du meinst das: https://pypi.python.org/pypi/pep8/1.4.3

Um das zu installieren benötigt man normalerweise Adminrechte, die ich nicht habe. Die Adminrechte besitzt zurzeit mein Vater. Da müsste ich ihn mal holen, damit er das Passwort eingibt.

Und nein, ich habe es nicht ignoriert. Keine Sorge.
Was soll denn dieser `os.kill()`-Unsinn? Es gibt `sys.exit()`.
Um dieses os.kill habe ich mich informiert. Das geht auch problemlos.

Ich habe den Code etwas gekürzt, jedoch hält der sich noch nicht an die PEP 8 Richtlinien. Werde mich jetzt gleich mit dem da (http://wiki.python-forum.de/PEP%208%20% ... setzung%29) beschäftigen. Und dann gibt es auch neuen Code. Ich werde selbstverstädnlich auch so schnell wie möglich das Programm dazu installieren.

Code: Alles auswählen

#Spiel
import os
import signal
import time 


def Phase1():


     print("Verbindung wird aufgenommen!")

     time.sleep(10.0)
     print("Verbindung aufgenommen!")
     print("Es werden Dateien gestohlen! Haben Sie etwas Geduld!")

     time.sleep(10.0)
     print("Daten erfolgreich gestohlen")

     datei=open("Daten.txt","w")

     datei.write("Ebay - Passwort: Hekdlaien33 ")
     datei.write("FB - Passwort: ji87z78zhihg76 ")
     datei.write("READY")

     datei.close()

     print("Das Spiel ist jetzt beendet")

     os.kill(os.getpid(),signal.CTRL_C_EVENT)
     

def Hilfe():
     print("Mit Hilfe dieses Programm werden sie hacken! INFO: Das ist ein Spiel und kein echtes Hackprogramm!")

def Hacken():
     print("Hier werden zuerst Infos über den Angreifer erfasst und diese in ein sogenanntes Logfile eingetragen!")

     Opfer_Name=input("Geben Sie hier den Namen des Opfers ein! (Vor- und Nachname!)")
     Opfer_IP=input("Geben Sie hier die IP des Opfers ein!")
     Angreifer_Port=input("Geben Sie hier die Portnummer ein, über die Sie hacken möchten!")

     Datei=open("Logfile.txt","w")
     #Inhalt der Datei 
     Datei.write("Name des Opfers ")
     Datei.write(Opfer_Name)
     Datei.write("IP des Opfers ")
     Datei.write(Opfer_IP)
     Datei.write("Über welchem Port: ")
     Datei.write(Angreifer_Port)

     Datei.close()

     OA_Abfrage=input("Wollen sie wirklich hacken? 1 für ja!")

     if OA_Abfrage=="1":
          print("Der Computer wird jetzt gehackt. Gedulden Sie sich bitte etwas!")
          Phase1()
     else:
          print("Sie haben nichts eingegeben!")
          
              

    

def StarteSpiel():

          HilfeAbfrage=input("Falls Sie Hilfe brauchen, drücken Sie die 1.")

          if HilfeAbfrage=="1":
               Hilfe()
          else:
               SpielAbfrage=input("Wollen Sie wirklich hacken? Falls ja, drücken sie 1.")
               if SpielAbfrage=="1":
                    Hacken()
               elif SpielAbfrage==None:
                    print("Das Spiel wird jetzt beendet")
                    os.kill(os.getpid(),signal.CTRL_C_EVENT)


            
        

Registrieren=input("Falls Sie sich registrieren möchten, drücken sie 1.")

    
AlleBenutzer=[]
AllePasswort=[]

if Registrieren=="1":
     Nbenutzer=input("Geben Sie den gewünschten Benutzernamen ein:")
     Npasswort=input("Geben Sie das gewünschte Passwort ein:")
     AlleBenutzer.append(Nbenutzer)
     AllePasswort.append(Npasswort)
elif Registrieren==None:
     benutzer=input("Geben Sie Ihren Benutzernamen ein:")
     passwort=input("Geben Sie Ihr Passwort ein:")

try:
     if AlleBenutzer[0]==Nbenutzer and AllePasswort[0]==Npasswort:
          StarteSpiel()
except:
     print("User nicht registriert oder anderer Fehler!")
     os.kill(os.getpid(),signal.CTRL_C_EVENT)

   
          
    

    



BlackJack

@Gary123456: Ich meine kein Programm sondern einfach den Style Guide for Python Code. Da kann man sich auch ohne Softwareunterstützung dran halten, man muss nur die Namen den Konventionen entsprechend schreiben.

Ob das mit `os.kill()` geht oder nicht ist nicht die Frage, sondern dass das unnötig kompliziert und verwirrend ist. Die Funktion um den laufenden Prozess zu beenden ist nun einmal `sys.exit()` und nicht dem eigenen Prozess vorzuspielen jemand hätte es von aussen mit einem Signal abgebrochen.
Gary123456
User
Beiträge: 318
Registriert: Dienstag 26. Februar 2013, 18:39

http://wiki.python-forum.de/PEP%208%20% ... setzung%29 Und das ist die deutsche Version, habe ich recht?

Code: Alles auswählen

import sys
print("Hello World")
sys.exit()
Kommt folgende Fehlermeldung:

Code: Alles auswählen

Traceback (most recent call last):
  File "C:/Users/Gerrit/Desktop/test2.py", line 3, in <module>
    sys.exit()
SystemExit
Ich habe keine Ahnung, was da scheif läuft. Bzw. Ich kann die Fehlermeldung nicht interpretieren :)
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

@PEP8 Uebersetzung, das ist zumindest eine Uebersetzung davon, ja.

`sys.exit()` ~ `raise SystemExit()` eigentlich solltest du hier aber keinen Traceback bekommen, kann es sein, dass du das Skript aus einer IDE startest?
Gary123456
User
Beiträge: 318
Registriert: Dienstag 26. Februar 2013, 18:39

Ja war wieder mal so dumm, und habe das aus dem IDE gestartet. Dummer Fehler! Aber trotzdem vielen Dank.

Neuer Code:

Code: Alles auswählen

#Spiel
import sys
import signal
import time 


def Phase1():


     print("Verbindung wird aufgenommen!")

     time.sleep(10.0)
     print("Verbindung aufgenommen!")
     print("Es werden Dateien gestohlen! Haben Sie etwas Geduld!")

     time.sleep(10.0)
     print("Daten erfolgreich gestohlen")

     datei=open("Daten.txt","w")

     datei.write("Ebay - Passwort: Hekdlaien33 ")
     datei.write("FB - Passwort: ji87z78zhihg76 ")
     datei.write("READY")

     datei.close()

     print("Das Spiel ist jetzt beendet")

     sys.exit()
     

def Hilfe():
     print("Mit Hilfe dieses Programm werden sie hacken! INFO: Das ist ein Spiel und kein echtes Hackprogramm!")

def Hacken():
     print("Hier werden zuerst Infos über den Angreifer erfasst und diese in ein sogenanntes Logfile eingetragen!")

     Opfer_Name=input("Geben Sie hier den Namen des Opfers ein! (Vor- und Nachname!)")
     Opfer_IP=input("Geben Sie hier die IP des Opfers ein!")
     Angreifer_Port=input("Geben Sie hier die Portnummer ein, über die Sie hacken möchten!")

     Datei=open("Logfile.txt","w")
     #Inhalt der Datei 
     Datei.write("Name des Opfers ")
     Datei.write(Opfer_Name)
     Datei.write("IP des Opfers ")
     Datei.write(Opfer_IP)
     Datei.write("Über welchem Port: ")
     Datei.write(Angreifer_Port)

     Datei.close()

     OA_Abfrage=input("Wollen sie wirklich hacken? 1 für ja!")

     if OA_Abfrage=="1":
          print("Der Computer wird jetzt gehackt. Gedulden Sie sich bitte etwas!")
          Phase1()
     else:
          print("Sie haben nichts eingegeben!")
          
              

    

def StarteSpiel():

          HilfeAbfrage=input("Falls Sie Hilfe brauchen, drücken Sie die 1.")

          if HilfeAbfrage=="1":
               Hilfe()
          else:
               SpielAbfrage=input("Wollen Sie wirklich hacken? Falls ja, drücken sie 1.")
               if SpielAbfrage=="1":
                    Hacken()
               elif SpielAbfrage==None:
                    print("Das Spiel wird jetzt beendet")
                    sys.exit()


            
        

Registrieren=input("Falls Sie sich registrieren möchten, drücken sie 1.")

    
AlleBenutzer=[]
AllePasswort=[]

if Registrieren=="1":
     Nbenutzer=input("Geben Sie den gewünschten Benutzernamen ein:")
     Npasswort=input("Geben Sie das gewünschte Passwort ein:")
     AlleBenutzer.append(Nbenutzer)
     AllePasswort.append(Npasswort)
elif Registrieren==None:
     benutzer=input("Geben Sie Ihren Benutzernamen ein:")
     passwort=input("Geben Sie Ihr Passwort ein:")

try:
     if AlleBenutzer[0]==Nbenutzer and AllePasswort[0]==Npasswort:
          StarteSpiel()
except:
     print("User nicht registriert oder anderer Fehler!")
     sys.exit()
Werde mir jetzt die PEP8 Richtlinien ausdrucken!
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

`with` hat nichts mit PEP8 zu tun und ist die vllt wichtigste Empfehlung von BlackJack gewesen, setz sie doch bitte um.

Daneben ist `pep8` ein einfaches Python-Programm und muss nicht "installiert" werden.
Gary123456
User
Beiträge: 318
Registriert: Dienstag 26. Februar 2013, 18:39

Werde ich machen.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Noch ein kleiner Tipp: Für so langen Code verwende doch gist.github.org o.ä. Bei Github kannst Du sogar Änderungen am Code hinter demselben Link erstellen. Alternativ haben wir hier im Forum selber ein Pastebin (s.o. in der Menüleiste der Seite).
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Gary123456
User
Beiträge: 318
Registriert: Dienstag 26. Februar 2013, 18:39

Mit Pastebin habe ich es grade versucht. Komme damit nicht klar. Da werden iwie noch extra Einrückungen gemacht, die ich nicht will.

Daher nochmals hier der Code:

Code: Alles auswählen

# A little game
import sys
import signal
import time 


def phase1():


    print("Verbindung wird aufgenommen!")

    time.sleep(10.0)
    print("Verbindung aufgenommen!")
    print("Es werden Dateien gestohlen! Haben Sie etwas Geduld!")

    time.sleep(10.0)
    print("Daten erfolgreich gestohlen")

    datei = open("Daten.txt", "w")

    datei.write("Ebay - Passwort: Hekdlaien33 ")
    datei.write("FB - Passwort: ji87z78zhihg76 ")
    datei.write("READY")

    datei.close()

    print("Das Spiel ist jetzt beendet")
    sys.exit()
     

def hilfe():
     
    print("Mit Hilfe dieses Programm werden sie hacken! INFO: Das ist ein Spiel und kein echtes Hackprogramm!")


def hacken():
     

    print("Hier werden zuerst Infos über den Angreifer erfasst und diese in ein sogenanntes Logfile eingetragen!")

    opfer_Name = input("Geben Sie hier den Namen des Opfers ein! (Vor- und Nachname!)")
    opfer_IP = input("Geben Sie hier die IP des Opfers ein!")
    angreifer_Port = input("Geben Sie hier die Portnummer ein, über die Sie hacken möchten!")
    
    datei2 = open("Logfile.txt", "w")
    #content of the file
    datei2.write("Name des Opfers ")
    datei2.write(opfer_Name)
    datei2.write("IP des Opfers ")
    datei2.write(opfer_IP)
    datei2.write("Über welchem Port: ")
    datei2.write(angreifer_Port)

    datei2.close()
    
    oa_abfrage = input("Wollen sie wirklich hacken? 1 für ja!")

    if oa_abfrage == "1":       

        print("Der Computer wird jetzt gehackt. Gedulden Sie sich bitte etwas!")
        phase1()

    else:

        print("Sie haben nichts eingegeben!")
          
              

    

def starte_spiel():
    hilfe_abfrage = input("Falls Sie Hilfe brauchen, drücken Sie die 1.")


    if hilfe_abfrage == "1":
         hilfe()

    else:
            

        spiel_abfrage = input("Wollen Sie wirklich hacken? Falls ja, drücken sie 1.")

        if spiel_abfrage == "1":
            hacken()

        elif spiel_abfrage == None:
            print("Das Spiel wird jetzt beendet")
            sys.exit()

        

registrieren = input("Falls Sie sich registrieren möchten, drücken sie 1.")

    

alle_benutzer = []
alle_passwort = []


if registrieren == "1":
         
    neuer_benutzer = input("Geben Sie den gewünschten Benutzernamen ein:")
    neues_passwort = input("Geben Sie das gewünschte Passwort ein:")
    alle_benutzer.append(neuer_benutzer)
    alle_passwort.append(neues_passwort)

elif registrieren == None:
     
    benutzer = input("Geben Sie Ihren Benutzernamen ein:")
    passwort = input("Geben Sie Ihr Passwort ein:")


try:

    if alle_benutzer[0] == neuer_benutzer and alle_passwort[0] == neues_passwort:
        starte_spiel()

except:

    print("User nicht registriert oder anderer Fehler!")
    sys.exit()



Ist es von der Lesbarkeit besser? Habe mich, denke ich, an alle PEP8 Richtlinien gehalten.

Und ich möchte nochmals with ansprechen. Habe hier was gefunden: http://openbook.galileocomputing.de/pyt ... 13_008.htm Kapiere das nur nicht. Kann mir jemand das in kurzen Sätzen erklären?
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Du solltest mit vier Spaces einrücken - dann gibt es auch keine Probleme in Pastebins ;-)

In Deinem Code sind noch viel zu viele Leerzeichen enthalten.

Vom Galileo-Openbook wird hier im Forum abgeraten. Mindestens das Kapitel über OOP ist Schrott.

Was genau kapierst Du denn an ``with`` nicht?
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Gary123456
User
Beiträge: 318
Registriert: Dienstag 26. Februar 2013, 18:39

In Deinem Code sind noch viel zu viele Leerzeichen enthalten.

Leerzeichen? Meinst Du Leerzeilen oder wirklich Leerzeichen? :lol:
Was genau kapierst Du denn an ``with`` nicht?
Praktisch das ganze. Ich weiß einfach nicht, wie man sowas bildet.
Du solltest mit vier Spaces einrücken - dann gibt es auch keine Probleme in Pastebins ;-)
Bei mir sind Standard 4 Leerzeichen.

Ich habe den Code umgeformt, ist jetzt etwas kürzer:

Code: Alles auswählen

# A little game
import sys
import signal
import time 


def phase1():
    print("Verbindung wird aufgenommen!")
    time.sleep(10.0)
    print("Verbindung aufgenommen!")
    print("Es werden Dateien gestohlen! Haben Sie etwas Geduld!")
    time.sleep(10.0)
    print("Daten erfolgreich gestohlen")
    datei = open("Daten.txt", "w")
    datei.write("Ebay - Passwort: Hekdlaien33 ")
    datei.write("FB - Passwort: ji87z78zhihg76 ")
    datei.write("READY")
    datei.close()
    print("Das Spiel ist jetzt beendet")
    sys.exit()


def hilfe():     
    print("Mit Hilfe dieses Programm werden sie hacken! INFO: Das ist ein Spiel und kein echtes Hackprogramm!")


def hacken():
    print("Hier werden zuerst Infos über den Angreifer erfasst und diese in ein sogenanntes Logfile eingetragen!")
    opfer_Name = input("Geben Sie hier den Namen des Opfers ein! (Vor- und Nachname!)")
    opfer_IP = input("Geben Sie hier die IP des Opfers ein!")
    angreifer_Port = input("Geben Sie hier die Portnummer ein, über die Sie hacken möchten!")
    datei2 = open("Logfile.txt", "w")
    #content of the file
    datei2.write("Name des Opfers ")
    datei2.write(opfer_Name)
    datei2.write("IP des Opfers ")
    datei2.write(opfer_IP)
    datei2.write("Über welchem Port: ")
    datei2.write(angreifer_Port)
    datei2.close()  
    oa_abfrage = input("Wollen sie wirklich hacken? 1 für ja!")
    if oa_abfrage == "1":       
        print("Der Computer wird jetzt gehackt. Gedulden Sie sich bitte etwas!")
        phase1()
    else:
        print("Sie haben nichts eingegeben!")             

def starte_spiel():
    hilfe_abfrage = input("Falls Sie Hilfe brauchen, drücken Sie die 1.")
    if hilfe_abfrage == "1":
         hilfe()
    else:           
        spiel_abfrage = input("Wollen Sie wirklich hacken? Falls ja, drücken sie 1.")
        if spiel_abfrage == "1":
            hacken()
        elif spiel_abfrage == None:
            print("Das Spiel wird jetzt beendet")
            sys.exit()


registrieren = input("Falls Sie sich registrieren möchten, drücken sie 1.")
alle_benutzer = []
alle_passwort = []


if registrieren == "1":         
    neuer_benutzer = input("Geben Sie den gewünschten Benutzernamen ein:")
    neues_passwort = input("Geben Sie das gewünschte Passwort ein:")
    alle_benutzer.append(neuer_benutzer)
    alle_passwort.append(neues_passwort)
elif registrieren == None:     
    benutzer = input("Geben Sie Ihren Benutzernamen ein:")
    passwort = input("Geben Sie Ihr Passwort ein:")


try:
    if alle_benutzer[0] == neuer_benutzer and alle_passwort[0] == neues_passwort:
        starte_spiel()
except:
    print("User nicht registriert oder anderer Fehler!")
    sys.exit()
Antworten