2017-11-10 6 views
1

Nun, hier ist ein Python-Server - Client raten Spiel Programm.Well hier mein Problem ist, dass alles funktioniert, aber die Schleife nicht.More spezifisch kann ich nur eine Vermutung vom Benutzer.Ich möchte nur die Benutzer, um Werte einzugeben und wenn er die richtige Antwort findet, wird das Programm geschlossen. Jetzt kann ich aus irgendeinem Grund nur einen Wert einfügen.Python Erraten Spiel Server-Client

Server:

import socket 
import random 


s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) 
s.bind(("192.168.1.3",9000)) 
s.listen(5) 

(c,a) = s.accept() 
print ("Received connection from", a) 

Hello=c.recv(10000).decode() 

print(Hello) 

greetings="Greetings!" 
c.send((greetings+"\r\n").encode()) 

game=c.recv(10000).decode() 
print (game) 

ready="Ready For The Guess Game!" 
c.send((ready+"\r\n").encode()) 

random_number = random.randint(1, 20) 

running = 1 

while running: 
    guess=c.recv(10000).decode() 
    guess=int(guess) 
    print(guess) 

    if guess <= random_number - 3: 

     far_message="Far!" 
     c.send((far_message+"\r\n").encode()) 

    if guess >= random_number + 3: 

     far_message="Far!" 
     c.send((far_message+"\r\n").encode()) 

    if guess == random_number - 2 or guess == random_number + 2 or guess == random_number + 1 or guess == random_number - 1: 

     close_message="close!" 
     c.send((close_message+"\r\n").encode()) 


    if (guess==random_number): 

     correct_message="Correct!" 
     c.send((correct_message+"\r\n").encode()) 
     running=0 

c.close() 

Und der Kunde:

import socket 
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) 
s.connect(('192.168.1.3',9000)) 

Hello="Hello" 

s.send((Hello +"\r\n").encode()) 

greetings=s.recv(10000).decode() 
print(greetings) 

game="Guess Game Please" 
s.send((game +"\r\n").encode()) 

game=s.recv(10000).decode() 
print (game) 


running=1 
while running: 

    guess = input("Enter your guess: ") 

    s.send(guess.encode()) 

    close_message = s.recv(10000).decode() 
    print (close_message) 

    far_message = s.recv(10000).decode() 
    print(far_message) 

    correct_message = s.recv(10000).decode() 

    print(correct_message) 
    running=0 




s.close() 
+0

Welche Fehler sehen Sie? Ich würde empfehlen, die Zeilenvorschübe '\ r \ n' aus den Nachrichten wegzulassen. –

+0

Ich habe den Code irgendwie gemacht, aber jetzt habe ich ein anderes Problem mit meinen Funktionen – dennoukos

+0

Spezifischer funktionieren die Schleifen nicht – dennoukos

Antwort

0

Sie benötigen nur eine Antwort Zuhörer auf der Client-Seite

while running: 

    guess = input("Enter your guess: ") 
    s.send(guess.encode()) 

    response = s.recv(10000).decode() 
    print(response) 
    if response.startswith("Correct"): 
     running = 0 
+0

Ok ich liebe dich echt <3 – dennoukos

+0

Du kannst die Antwort mit dem Häkchen neben dem Beitrag akzeptieren;) –