Почему многопроцессорная обработка открывает несколько окон Pygame, несмотря на то, что они не обрабатывают ничего, связанного с Pygame? - PullRequest
0 голосов
/ 30 октября 2019

Я делаю шахматную программу, используя поиск по дереву Монте-Карло, который в будущем будет управляться нейронной сетью. Проблема на данный момент заключается в том, что, несмотря на все мои усилия по максимизации эффективности системы, движку все еще требуется 3 минуты, чтобы пройти 800 игр, необходимых для поиска. Чтобы бороться с этим, я попытался внедрить в систему многопроцессорность, чтобы она могла играть более чем в одну игру одновременно.

К сожалению, несмотря на то, что мультипроцессор находится в отдельном файле, который импортируется в мою основную функцию, он все еще открывает дополнительные окна Pygame в моей системе меню.

Вот соответствующая часть моего кода:

import multiprocessing
import time
import pygame

pygame.init()
screen = pygame.display.set_mode([800, 400])


def play_game():
    time.sleep(3)
    print("done")


if __name__ == "__main__":

    for i in range(3):
        game1 = multiprocessing.Process(target=play_game)
        game2 = multiprocessing.Process(target=play_game)
        game1.start()
        game2.start()
        game1.join()
        game2.join()

Я ожидал бы, что это откроет окно pygame в начале, затем запустит play_games и оставит только один код pygame. Тем не менее, он открывает два дополнительных окна, по одному для каждого процесса. Почему это так и как я могу предотвратить это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...