data_string = pickle.dumps(new_game) input[1].send(data_string) input[2].send(data_string) input[1].send(data_string) while True: var += 1 print(var % 2 + 1) s = input[var % 2 + 1] while True: # waiting for receive move data = s.recv(10240) lista = pickle.loads(data) # try to make move if new_game.make_move(var % 2 + 1, lista[1], lista[0]): if (new_game.check_win(var % 2 + 1)): s.send(str.encode("won")) elif (new_game.check_draw()): s.send(str.encode("draw")) else: s.send(str.encode("pass")) data_string = pickle.dumps(new_game) break else: s.send(str.encode("This field is already occupied")) #actualize both boards input[1].send(data_string) input[2].send(data_string)