MCPcopy Index your code
hub / github.com/battlecode/battlecode-2018 / get_next_message

Method get_next_message

battlecode-manager/server.py:369–423  ·  view source on GitHub ↗

Returns the json loaded object of the next string that is sent over the socket Returns: An object, for our purposes this will be a dictionary, of the json loaded string

(self)

Source from the content-addressed store, hash-verified

367 raise IOError("reached socket EOF before finding newline")
368
369 def get_next_message(self) -> object:
370 '''
371 Returns the json loaded object of the next string that is sent over the
372 socket
373
374 Returns:
375 An object, for our purposes this will be a dictionary, of the json
376 loaded string
377 '''
378
379 recv_socket = self.request
380 game = self.game
381
382 logging.debug("Client %s: Waiting for next message", self.client_id)
383 try:
384 data = self.read_line()
385 except (StopIteration, IOError):
386 print("{} has not sent message for {} seconds, assuming they're dead".format(
387 self.game.get_player(self.client_id)['player'],
388 TIMEOUT
389 ))
390 recv_socket.close()
391 if bc.Team.Red == self.game.get_player(self.client_id)['player'].team:
392 self.game.winner = 'player2'
393 elif bc.Team.Blue == self.game.get_player(self.client_id)['player'].team:
394 self.game.winner = 'player1'
395 else:
396 if self.game.connected_players[0] == self.game.connected_players[1]:
397 print("Determining match by coin toss.")
398 self.game.winner = 'player1' if random.random() > 0.5 else 'player2'
399 else:
400 self.game.winner = 'player1' if self.game.connected_players[0] > self.game.connected_players[1] else 'player2'
401 self.game.disconnected = True
402 self.game.game_over = True
403 raise TimeoutError()
404 except KeyboardInterrupt:
405 recv_socket.close()
406 if bc.Team.Red == self.game.get_player(self.client_id)['player'].team:
407 self.game.winner = 'player2'
408 elif bc.Team.Blue == self.game.get_player(self.client_id)['player'].team:
409 self.game.winner = 'player1'
410 else:
411 if self.game.connected_players[0] == self.game.connected_players[1]:
412 print("Determining match by coin toss.")
413 self.game.winner = 'player1' if random.random() > 0.5 else 'player2'
414 else:
415 self.game.winner = 'player1' if self.game.connected_players[0] > self.game.connected_players[1] else 'player2'
416 self.game.disconnected = True
417 self.game.game_over = True
418 raise KeyboardInterrupt()
419
420 data = data.decode("utf-8").strip()
421 return data
422 #unpacked_data = json.loads(data)
423 #return unpacked_data
424
425 def send_message(self, obj: object) -> None:
426 '''

Callers 1

player_handlerMethod · 0.95

Calls 6

read_lineMethod · 0.95
TimeoutErrorClass · 0.85
debugMethod · 0.80
formatMethod · 0.80
get_playerMethod · 0.80
randomMethod · 0.80

Tested by

no test coverage detected