Python猜游戏服务器 - 客户端

时间:2017-11-10 13:21:12

标签: python

这里有一个python服务器 - 客户端猜游戏程序。这里我的问题是所有工作但循环不行。更具体地说,我只能从用户输出一个猜测。我只想让用户输入值,何时他找到了正确的答案,程序将关闭。现在我只能因某种原因插入一个值。

服务器:

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()

客户:

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()

1 个答案:

答案 0 :(得分:0)

客户端只需要一个响应侦听器

while running:

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

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