Re: Spiel: Kleines FakeHackprogramm Frage
Verfasst: Samstag 16. März 2013, 18:47
Werde ich machen.
Seit 2002 Diskussionen rund um die Programmiersprache Python
https://www.python-forum.de/
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()
In Deinem Code sind noch viel zu viele Leerzeichen enthalten.
Praktisch das ganze. Ich weiß einfach nicht, wie man sowas bildet.Was genau kapierst Du denn an ``with`` nicht?
Bei mir sind Standard 4 Leerzeichen.Du solltest mit vier Spaces einrücken - dann gibt es auch keine Probleme in Pastebins
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()
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")
with open("Daten.txt", "w") as datei:
datei.write("Ebay - Passwort: Hekdlaien33 ")
datei.write("FB - Passwort: ji87z78zhihg76 ")
datei.write("READY")
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!")
with open("info.txt", "w") as datei2:
#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)
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()
Code: Alles auswählen
if __name__ == '__main__':
main()
Den try-Block habe ich jetzt mal ganz rausgenommen.Dein try-except-Block am Ende ist noch zu weit gefasst. Solltest du mal ein Fehler in deinen Code einbauen, wird dir in Zukunft nur angezeigt werden: Ein Fehler ist aufgetreten, statt einer richtigen Fehlermeldung. Außerdem ist das sys.exit() am Ende unnötig.
Gemacht.Deine Zeilen sind noch zu lang. Außerdem "sollen" (SHOULD) alle Bezeichner möglichst Englisch sein (hilfe -> help, hacken -> hack, ...) (und SHOULD heißt, dass du es wirklich tun solltest).
Noch nie davon gehört. Was macht diese main?Und es wäre schöner, wenn du alles nach deinen Funktionsdefinitionen in eine Funktion main() packen könntest, die du dann mit
Habe das jetzt auch besser gelöst!Außerdem sollten Funktionen möglichst keine Nebeneffekte haben. Das Beenden des Programms ist aber so ein Nebeneffekt. Schöner wäre es, wenn du die Funktion einfach mit "return" beenden würdest. So kannst du zum Beispiel auch nach dem Spiel noch irgendwas anderes drucken oder so.
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")
with open("Daten.txt", "w") as file:
file.write("Ebay - Passwort: Hekdlaien33 ")
file.write("FB - Passwort: ji87z78zhihg76 ")
file.write("READY")
print("Das Spiel ist jetzt beendet")
def help_game():
print("Mit Hilfe dieses Programm werden sie hacken!")
def hack():
print("Logfileerstellung")
victim_name = input("Geben Sie hier den Namen des Opfers ein!")
victim_ip = input("Geben Sie hier die IP des Opfers ein!")
attacker_port = input("Geben Sie hier die Portnummer ein.")
with open("info.txt", "w") as file2:
#content of the file
file2.write("Name des Opfers ")
file2.write(victim_name)
file2.write("IP des Opfers ")
file2.write(victim_ip)
file2.write("Über welchem Port: ")
file2.write(attacker_port)
oa_query = input("Wollen sie wirklich hacken? 1 für ja!")
if oa_query == "1":
print("Der Computer wird jetzt gehackt.")
return phase1()
else:
print("Sie haben nichts eingegeben!")
sys.exit()
def start_game():
help_query = input("Falls Sie Hilfe brauchen, drücken Sie die 1.")
if help_query == "1":
help_game()
else:
game_query = input("Wollen Sie wirklich hacken? Falls ja, drücken sie 1.")
if game_query == "1":
return hack()
else:
sys.exit()
register = input("Falls Sie sich registrieren möchten, drücken sie 1.")
all_user = []
all_password = []
if register == "1":
new_user = input("Geben Sie den gewünschten Benutzernamen ein:")
new_password = input("Geben Sie das gewünschte Passwort ein:")
all_user.append(new_user)
all_password.append(new_password)
else:
sys.exit()
if all_user[0] == new_user and all_password[0] == new_password:
start_game()
Solltest Du aber besserGary123456 hat geschrieben: Ich werde das nicht einbauen,
BlackJack hat Dir doch zig Gründe *für* den Einsatz davon genannt...Gary123456 hat geschrieben: da ich keinen blassen Schimmer habe, wofür das da ist und wofür das nützlich sein soll. Entschuldige.
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")
with open("Daten.txt", "w") as file:
file.write("Ebay - Passwort: Hekdlaien33 ")
file.write("FB - Passwort: ji87z78zhihg76 ")
file.write("READY")
print("Das Spiel ist jetzt beendet")
def help_game():
print("Mit Hilfe dieses Programm werden sie hacken!")
def hack():
print("Logfileerstellung")
victim_name = input("Geben Sie hier den Namen des Opfers ein!")
victim_ip = input("Geben Sie hier die IP des Opfers ein!")
attacker_port = input("Geben Sie hier die Portnummer ein.")
with open("info.txt", "w") as file2:
#content of the file
file2.write("Name des Opfers ")
file2.write(victim_name)
file2.write("IP des Opfers ")
file2.write(victim_ip)
file2.write("Über welchem Port: ")
file2.write(attacker_port)
oa_query = input("Wollen sie wirklich hacken? 1 für ja!")
if oa_query == "1":
print("Der Computer wird jetzt gehackt.")
return phase1()
else:
print("Sie haben nichts eingegeben!")
sys.exit()
def start_game():
help_query = input("Falls Sie Hilfe brauchen, drücken Sie die 1.")
if help_query == "1":
help_game()
else:
game_query = input("Wollen Sie wirklich hacken? Falls ja, drücken sie 1.")
if game_query == "1":
return hack()
else:
sys.exit()
def main():
register = input("Falls Sie sich registrieren möchten, drücken sie 1.")
all_user = []
all_password = []
if register == "1":
new_user = input("Geben Sie den gewünschten Benutzernamen ein:")
new_password = input("Geben Sie das gewünschte Passwort ein:")
all_user.append(new_user)
all_password.append(new_password)
else:
sys.exit()
if all_user[0] == new_user and all_password[0] == new_password:
start_game()
if __name__ == '__main__':
main()
Ja, der Thread hier wird durch die ellenlangen Code-Passagen stark unterbrochen. Wie ich Dir schon empfahl, solltest Du das besser in Pastebins auslagern (in Zukunft). Speziell bei gist.github.com hättest Du jetzt für jedes Update einfach dein Gist überarbeiten können.Gary123456 hat geschrieben: Sonst noch was auszusetzen?
Habe es jetzt editiert.Ziemlich viele Leerzeilen.
Werde mir das jetzt mal anschauen. Ich denke, dass das letzte Mal wegen des neuen Editors was schiefgelaufen ist. Werde das jetzt berücksichtigen.Ja, der Thread hier wird durch die ellenlangen Code-Passagen stark unterbrochen. Wie ich Dir schon empfahl, solltest Du das besser in Pastebins auslagern (in Zukunft). Speziell bei gist.github.com hättest Du jetzt für jedes Update einfach dein Gist überarbeiten können.
Warum nicht? Ist es besser/übersichtlicher, wenn man für jede Aktion eine eigene Funktion aufbaut? Dann wären das aber recht viele Funktionen.Ok, also generell vermischst Du viel zu sehr Logik mit Darstellung bzw. Benutzerinteraktion. Wieso muss das Speichern von Werten direkt in derselben Funktion stehen, wie die Eingabe durch den Benutzer?
Werde versuchen, da eine bessere Lösung zu finden.Vieles lässt sich auch besser kapseln, etwa die immer ähnlichen Menü-Fragmente. Mal willst Du nur Ja oder Nein, mal 1 oder 2 usw. Das kann man sicherlich besser generalisieren.