2016-11-28 198 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可能會幫助你解決這個問題。它沒有很好地完成,即使沒有錯誤處理。但它的遊戲功能可以工作。