diff --git a/src/main.py b/src/main.py index 08856f1..3e72348 100644 --- a/src/main.py +++ b/src/main.py @@ -2,6 +2,7 @@ from pathlib import Path import pygame as pg import random + class SimulationState: def __init__(self): self.agent_pos = pg.Vector2(0, 0) @@ -12,12 +13,12 @@ class SimulationState: if self.agent_pos.x < 0: self.agent_pos.x = 0 - elif self.agent_pos.x > self.world_limits.x: + elif self.agent_pos.x >= self.world_limits.x: self.agent_pos.x = self.world_limits.x - 1 if self.agent_pos.y < 0: self.agent_pos.y = 0 - elif self.agent_pos.y > self.world_limits.y: + elif self.agent_pos.y >= self.world_limits.y: self.agent_pos.y = self.world_limits.y - 1 @@ -43,6 +44,8 @@ class Interface: self.clock = pg.time.Clock() self.run_simulation = True + self.debug_mode = False + def processUserInput(self): self.move_agent = pg.Vector2(0, 0) @@ -54,6 +57,20 @@ class Interface: if event.key == pg.K_ESCAPE: self.run_simulation = False break + elif event.key == pg.K_BACKQUOTE: + if not self.debug_mode: + self.debug_mode = True + else: + self.debug_mode = False + elif self.debug_mode: + if event.key == pg.K_RIGHT: + self.move_agent.x = 1 + elif event.key == pg.K_LEFT: + self.move_agent.x = -1 + elif event.key == pg.K_DOWN: + self.move_agent.y = 1 + elif event.key == pg.K_UP: + self.move_agent.y = -1 def processSimulationInput(self): move_x = random.randint(-1, 1) @@ -65,8 +82,10 @@ class Interface: self.simulation_state.updateAgent(self.move_agent) def render(self): - self.window.fill((8, 68, 0)) - + if not self.debug_mode: + self.window.fill((8, 68, 0)) + else: + self.window.fill((68, 8, 0)) agent_pos = self.simulation_state.agent_pos.elementwise() * self.cell_size agent_texture_pos = pg.Vector2(2, 0).elementwise() * self.cell_size @@ -82,7 +101,8 @@ class Interface: def loop(self): while self.run_simulation: self.processUserInput() - self.processSimulationInput() + if not self.debug_mode: + self.processSimulationInput() self.update() self.render() self.clock.tick(6)