コード例 #1
0
 def test_detect_enemy_complicated_cactus_3(self):
     img = cv2.imread(f'../snapshots/complicated/cactus3.png')
     img_np = np.array(img)
     gray = utils.to_gray(img_np)
     phase = game_status.get_phase(gray)
     enemies, _ = enemy_detector.find_enemies(gray, phase)
     self.assertEqual(1, len(enemies))
コード例 #2
0
    def test_detect_enemy_complicated_1(self):
        enemy_files = ['bird.png', 'bird2.png', 'bird3.png', 'bird4.png', 'cactus.png', 'cactus2.png']

        for enemy_file in enemy_files:
            img = cv2.imread(f'../snapshots/complicated/{enemy_file}')
            img_np = np.array(img)
            gray = utils.to_gray(img_np)
            phase = game_status.get_phase(gray)
            enemies, _ = enemy_detector.find_enemies(gray, phase)
            self.assertEqual(1, len(enemies))
コード例 #3
0
 def test_game_phase_2_1(self):
     img = cv2.imread('../snapshots/black_background_template.png')
     img_np = np.array(img)
     gray = utils.to_gray(img_np)
     phase = game_status.get_phase(gray)
     self.assertEqual(2, phase)
コード例 #4
0
 def test_game_phase_2_2(self):
     img = cv2.imread('../snapshots/phase2/enemy/enemy1.png')
     img_np = np.array(img)
     gray = utils.to_gray(img_np)
     phase = game_status.get_phase(gray)
     self.assertEqual(1, phase)
コード例 #5
0
ファイル: game_runner.py プロジェクト: juanroldanbrz/dinobot
model = learning_model_service.find_one(processed=False, generation=generation)
game_runner = GameRunner(model)
print(f'Loading model: {model.model_id}')
game_runner.start()

phase = 1
i = 0
while True:
    img = ImageGrab.grab(bbox=screen_template.to_tuple(), childprocess=False)
    img_np = np.array(img)
    img_np = utils.resize_to_rectangle(img_np, screen_template)

    full_gray_np = utils.to_gray(img_np)

    # Detect enemies
    phase = game_status.get_phase(full_gray_np)

    # now = time()
    #
    # if now - start_time > 55:
    #     print('Printing snapshot')
    #     cv2.imwrite(f'save/{i}.png', full_gray_np)
    #     i += 1

    enemies, _ = enemy_detector.find_enemies(utils.to_gray(img_np), phase)

    game_runner.play(enemies, enemy_segment_template.shape())
    game_status_str = game_status.get_game_status(utils.to_gray(img_np))

    if game_status_str == 'game_over':
        game_runner.terminate()