class Framework: QUEUE_SIZE = 100 CHECK_SUBPROCESS_STATE_IN_SECONDS = 0.5 MAX_HANGING_TIME = 3.0 def __init__(self, profiling=False): self.logger = logging.getLogger(self.__class__.__name__) self.profiling = profiling self.game_state = Manager().dict() self.field = Manager().dict() self.ai_queue = Queue(maxsize=Framework.QUEUE_SIZE) self.referee_queue = Queue(maxsize=Framework.QUEUE_SIZE) self.ui_send_queue = Queue(maxsize=Framework.QUEUE_SIZE) self.ui_recv_queue = Queue(maxsize=Framework.QUEUE_SIZE) self.engine_watchdog = Manager().Value('f', time.time()) self.engine = Engine(self) self.coach_watchdog = Manager().Value('f', time.time()) self.coach = Coach(self) def start(self): self.engine.start() self.coach.start() sleep = create_fps_timer(Framework.CHECK_SUBPROCESS_STATE_IN_SECONDS) try: while self.coach.is_alive() and self.engine.is_alive(): sleep() except SystemExit: pass except KeyboardInterrupt: self.logger.debug('Interrupted.') except BrokenPipeError: self.logger.exception('A connection was broken.') except: self.logger.exception('An error occurred.') finally: self.stop_game() def stop_game(self): self.logger.critical('Framework stopped.') try: os.kill(self.engine.pid, signal.SIGINT) except ProcessLookupError: pass try: os.kill(self.coach.pid, signal.SIGINT) except ProcessLookupError: pass sys.exit()
def test_get_logs(): e = Engine() e.print_v("test1", "test2") e.print_v("test3") logs = e.get_logs() assert logs == "test1 test2\ntest3" logs = e.get_logs(sep="_") assert logs == "test1 test2_test3"
def __init__(self, profiling=False): self.logger = logging.getLogger(self.__class__.__name__) self.profiling = profiling self.game_state = Manager().dict() self.field = Manager().dict() self.ai_queue = Queue(maxsize=Framework.QUEUE_SIZE) self.referee_queue = Queue(maxsize=Framework.QUEUE_SIZE) self.ui_send_queue = Queue(maxsize=Framework.QUEUE_SIZE) self.ui_recv_queue = Queue(maxsize=Framework.QUEUE_SIZE) self.engine_watchdog = Manager().Value('f', time.time()) self.engine = Engine(self) self.coach_watchdog = Manager().Value('f', time.time()) self.coach = Coach(self)
def test_print_v(capsys): with capsys.disabled(): e = Engine() e.verbose = True e.print_v("test") captured = capsys.readouterr() assert captured.out == "test; \n" e.verbose = False e.print_v("second_test") captured = capsys.readouterr() assert captured.out == "" logs = e.log assert logs[2:] == ['test; ', 'second_test; ']
def test_react_to_keyword(): e = Engine() e.reactive_keyword = ["apple", "banana"] verif = e.react_to_keyword("apple") assert verif == True verif = e.react_to_keyword("ban") assert verif == True verif = e.react_to_keyword("bananana") assert verif == False
width = 1280 height = 720 screen = pygame.display.set_mode((width, height)) white = (255, 255, 255) screen.fill((white)) running = True sc = Screen(width, height) clock = pygame.time.Clock() camera = Camera(None, 0, 0, -100, width / 2, height / 2) engine = Engine(sc, camera, Light(1, 1, 1)) camera.engine = engine engine.addComponent(Axis(engine, 1000)) #nastavenim hodnoty promenne col se zviditelni hranicni kostky col = (145, 20, 200) #engine.addComponent(Cube(engine, -50,0,0,30,col)) #engine.addComponent(Cube(engine, 50,0,0,30,col)) engine.addComponent(Cube(engine, 0, -50, 0, 30, col)) #engine.addComponent(Cube(engine, 0,50,0,30,col)) engine.addComponent(Pyramid(engine, 0, 20, 0, 1, 1, "rainbow", True)) for i in range(0, 10): #cb = DuhovyBoxik(engine,i*3-10,20,0,1,"rainbow", True) cb = Creature(engine, 0, i * 6 + 40, 0, (255, 0, 255))
width = 1280 height = 720 screen = pygame.display.set_mode((width, height)) color = (255, 255, 255) screen.fill((color)) running = True sc = Screen(width, height, color) clock = pygame.time.Clock() camera = Camera(None, 0, 0, -20, width / 2, height / 2) engine = Engine(sc, camera, Light(1, 1, 1)) camera.engine = engine engine.addComponent(Axis(engine, 1000)) #cube = Cube(engine, 0, 0, 0, 1, "rainbow", False) engine.addComponent(Cube(engine, 0, 0, 0, 1, "rainbow", False)) #K - pyramida poskoci nahoru #L - pyramida poskoci "doprava" #J - pyramida poskoci "doleva" engine.addComponent(Pyramid(engine, 0, 10, 0, 1, -1, (255, 0, 0), True)) engine.addComponent(Cube(engine, 0, -20, 0, 10, (255, 255, 255), False)) while running: tm = time.time()
from Engine.engine import Engine from Engine.vector import Vector from Engine.object import Object from Engine.objects.cube import Cube from Engine.objects.pyramid import Pyramid from Engine.objects.penguin import Penguin from Engine.objects.terrain import Terrain import time import random engine = Engine() cube1 = Cube(Vector(-5, -5, 0), 1) #engine.addObject(cube1) pyramid = Pyramid(Vector(-5, 0, 0), 2, color=(200, 30, 30)) #engine.addObject(pyramid) #loadedObject = Object(Vector(0, 0, -10)) #loadedObject.loadMesh("Engine/meshes/penguin.json") #engine.addObject(loadedObject) penguin = Penguin(Vector(0, 0, -10), 1, engine) #engine.addObject(penguin) terrain = Terrain(Vector(0, 0, -10), scale=1, width=20, height=20) engine.addObject(terrain) heights = [] for x in range(100):
width = 1280 height = 720 screen = pygame.display.set_mode((width, height)) color = (255, 255, 255) screen.fill((color)) running = True sc = Screen(width, height, color) clock = pygame.time.Clock() camera = Camera(None, 0, 0, -50, width / 2, height / 2) engine = Engine(sc, camera, Light(1, 1, 1)) camera.engine = engine engine.addComponent(Axis(engine, 1000)) #engine.addComponent(Cube(engine, 0, 0, 0, 1, "rainbow", False)) for x in range(-10, 10): for y in range(-10, 10): z = x + y engine.addComponent(Cube(engine, x, z, y, 0.5, (255, 0, 0), False)) while running: tm = time.time() try:
width = 1280 height = 720 screen = pygame.display.set_mode((width, height)) color = (255, 0, 120) screen.fill((color)) running = True sc = Screen(width, height, color) clock = pygame.time.Clock() camera = Camera(None, 0, 0, -20, width / 2, height / 2) engine = Engine(sc, camera, Light(1, 1, 1)) camera.engine = engine cube = Cube(engine, 0, -5, 0, 1, "rainbow", False) engine.addComponent(cube) bc = Image.open("Snejky\\background_test.png") pixels = bc.convert("RGB").load() mk = MakeVideo() up = True frameNumber = 0 fps = 60 seconds = 1
width = 1280 height = 720 screen = pygame.display.set_mode((width, height)) white = (255, 255, 255) screen.fill(white) running = True sc = Screen(width, height, (179, 229, 252)) clock = pygame.time.Clock() camera = Camera(None, 0, 0, -400, width / 2, height / 2) engine = Engine(sc, camera, Light(1, 1, 1)) camera.engine = engine #engine.addComponent(Axis(engine, 1000)) #cube = Cube(engine, 0, 0, 0, 1, "rainbow", False) """engine.addComponent(DuhovyBoxik(engine, 0,0,0,1,"rainbow", True)) engine.addComponent(DuhovyBoxik(engine, 10,0,0,1,"rainbow", True)) engine.addComponent(DuhovyBoxik(engine, -20,10,0,1,"rainbow", True))""" col = None #(145,20,200) engine.addComponent(Cube(engine, -600, 0, 0, 300, col)) engine.addComponent(Cube(engine, 600, 0, 0, 300, col)) engine.addComponent(Cube(engine, 0, -400, 0, 300, (104, 159, 56))) engine.addComponent(Cube(engine, 0, 0, -600, 300, col)) engine.addComponent(Cube(engine, 0, 0, 600, 300, col))
def test_purify_name(): e = Engine() purified = e.purify_name("test") assert purified == "test" purified = e.purify_name("test>test|test<test?test!test") assert purified == "test_test_test_test_test_test"