Ich versuche, ein Hangman-Spiel mit Python mit einem einfachen Client und Server zu schreiben. Ich lasse den Server öffnen und lausche auf den Socket und dann lasse ich den Client eine Verbindung zum Server herstellen und eine Nachricht senden und der Server antwortet mit einem geheimen Wort, das durch _ * durch die Buchstabenzählung des geheimen Wortes dargestellt wird.Socket-Programmierung Python während und wenn Probleme
Ich habe ein Hangman-Spiel geschrieben, das keine Sockets verwendet, also habe ich das, aber das Problem ist, ich kann die If-Anweisungen nicht funktionieren. Sie geben entweder nichts zurück oder sie bringen Syntaxfehler. Hier ist der Server, ohne die if-Anweisung
import socket
import random
#Characters and places from HHGTTG to make it a little more difficult
word_list = [ 'agrajag','altairians','android','apple','arthur','beeblebrox',
'betelgeuse','colin','dent','dentrassis','dolphins','eddie','fenchurch',
'ford','galaxy','gargravarr','garkbit','god','golgafrinchans','guide',
'hactar','harmless','hello','hitchhikers','hooloovoo','hyperspace',
'krikkiters','lallafa','laminate','lamuella','magrathea','marvin',
'panic','paranoid','prefect','random','roosta','russell',
'slartibartfast','sorcerer','thor','towel','trillian','vogon','willow',
'zaphod','zarniwoop','zarquon','zem']
lowercase = ['q','w','e','r','t','y','u','i','o','p','l','k','j','h','g','f',
'd','s','a','z','x','c','v','b','n','m']
secret_word = random.choice(word_list)
guesses=0
letters_guessed = []
word = []
#while testing i used this a lot and i have left it in in case you want to cheat as well
#print(secret_word)
for x in range(len(secret_word)):
word.append('_ ')
arthur = ("\n %s"%''.join(word))
def Main():
host = ''
port = 4242
s = socket.socket()
s.bind((host,port))
s.listen(1)
c, addr = s.accept()
print("Connection from: " + str(addr), secret_word)
while True:
data = c.recv(1024).decode('utf-8')
if not data:
break
print("from connected user: " + data)
data = data.upper()
print("sending: " + arthur)
c.send(arthur.encode('utf-8'))
c.close()
if __name__ == '__main__':
Main()
Die if-Anweisung so viele Kopfschmerzen verursacht, ist dies
while True:
data = c.recv(1024).decode('utf-8')
if len(data) == 1:
print ("BlaBlaBla")
else:
print ("Bohoohooho")
Offensichtlich ist das nicht das eigentlich, wenn und sonst Aussagen i im Spiel zu verwenden werde aber es ist mein Test und es funktioniert nicht. Es kommt immer wieder mit Syntaxfehlern, die ich überprüfe und dann
Es gibt nichts falsches in Ihrem zweiten Stück Code falsch. Bist du sicher, dass es der Code hier ist? –
Danke Ich habe es nur sortiert, nichts falsch mit der Syntax überhaupt. Es war das Prog, mit dem ich den Code bearbeitete. – Bridget