Example #1
0
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')
Example #2
0
 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_),
     }
Example #3
0
    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())
Example #4
0
 def turn(self):
     return gogame.turn(self.state_)