2016-11-28 151 views
0

我正在创建我自己的井字游戏。SOCKETS(网络) - TicTacToe游戏

在这个阶段,我试图给它增加一个网络功能,这将允许在同一网络中的两个玩家 - 但在不同的设备上 - 相互对抗。

我试图做的第一件事情之一是通过服务器发送游戏给客户端,但在这种情况下,功能游戏()(它运行整个游戏)在服务器端打开,而不是客户端。

特别突出显示代码的最后部分(主要功能)!

任何帮助?

def Main(): 
    host = "127.0.0.1" 
    port = 5000 

    mySocket = socket.socket() 
    mySocket.bind((host,port)) 

    mySocket.listen(1) 
    conn, addr = mySocket.accept() 
    print ("Connection from: " + str(addr)) 
    while True: 
      data = conn.recv(1024).decode() 
      if not data: 
        break 
      print ("from connected user: " + str(data)) 

      data = game 
      print ("sending: ") 
      conn.send(data().encode()) 

    conn.close() 

if __name__ == '__main__': 
    Main() 

回答

0

首先,您需要一个游戏类来取代游戏功能。然后,客户端和服务器(假设你想在客户端和服务器之间进行游戏)应该保持一个Game实例。这样,当客户端移动时,它可以更新自己的Game实例,并将更新发送到服务器。服务器可以做同样的事情来保持游戏的进行。
无论如何,这个repo可能会帮助你解决这个问题。它没有很好地完成,即使没有错误处理。但它的游戏功能可以工作。