def draw_info(batch, window_width, window_height, upper_grid_coord, state): turn = gogame.turn(state) turn_str = 'B' if turn == govars.BLACK else 'W' prev_player_passed = gogame.prev_player_passed(state) game_ended = gogame.game_ended(state) info_label = "Turn: {}\nPassed: {}\nGame: {}".format( turn_str, prev_player_passed, "OVER" if game_ended else "ONGOING") pyglet.text.Label(info_label, font_name='Helvetica', font_size=11, x=window_width - 20, y=window_height - 20, anchor_x='right', anchor_y='top', color=(0, 0, 0, 192), batch=batch, width=window_width / 2, align='right', multiline=True) # Areas black_area, white_area = gogame.areas(state) pyglet.text.Label("{}B | {}W".format(black_area, white_area), font_name='Helvetica', font_size=16, x=window_width / 2, y=upper_grid_coord + 80, anchor_x='center', color=(0, 0, 0, 192), batch=batch, width=window_width, align='center')
def info(self): """ :return: Debugging info for the state """ return { 'turn': gogame.turn(self.state_), 'invalid_moves': gogame.invalid_moves(self.state_), 'prev_player_passed': gogame.prev_player_passed(self.state_), }
def test_batch_canonical_form(self): states = gogame.batch_init_state(2, 7) states[0] = gogame.next_state(states[0], 0) self.assertEqual(states[0, govars.BLACK].sum(), 1) self.assertEqual(states[0, govars.WHITE].sum(), 0) states = gogame.batch_canonical_form(states) self.assertEqual(states[0, govars.BLACK].sum(), 0) self.assertEqual(states[0, govars.WHITE].sum(), 1) self.assertEqual(states[1, govars.BLACK].sum(), 0) self.assertEqual(states[1, govars.WHITE].sum(), 0) for i in range(2): self.assertEqual(gogame.turn(states[i]), govars.BLACK) canon_again = gogame.batch_canonical_form(states) self.assertTrue((canon_again == states).all())
def turn(self): return gogame.turn(self.state_)