#!/usr/bin/python3 import pygame from config import * from app.board import Board from app.tractor import Tractor class App: def __init__(self): self.__running = True self.__screen = None self.__clock = None self.__board = Board() self.__tractor = Tractor(self.__board) def initialize(self): pygame.init() pygame.display.set_caption(CAPTION) self.__screen = pygame.display.set_mode((WIDTH, HEIGHT)) self.__clock = pygame.time.Clock() def event_handler(self, event: pygame.event.Event): if event.type == pygame.QUIT: self.__running = False def loop_handler(self): self.__board.draw(self.__screen) self.__tractor.draw(self.__screen) def keys_pressed_handler(self): keys = pygame.key.get_pressed() if keys[pygame.K_UP]: self.__tractor.move_up() print(self.__tractor) if keys[pygame.K_DOWN]: self.__tractor.move_down() print(self.__tractor) if keys[pygame.K_LEFT]: self.__tractor.move_left() print(self.__tractor) if keys[pygame.K_RIGHT]: self.__tractor.move_right() print(self.__tractor) if keys[pygame.K_w]: self.__tractor.move() print(self.__tractor) if keys[pygame.K_h]: self.__tractor.harvest() if keys[pygame.K_v]: self.__tractor.sow() if keys[pygame.K_n]: self.__tractor.hydrate() if keys[pygame.K_f]: self.__tractor.fertilize() if keys[pygame.K_l]: self.__tractor.rotate_left() if keys[pygame.K_r]: self.__tractor.rotate_right() def update_screen(self): pygame.display.flip() def quit(self): pygame.quit() def run(self): self.initialize() while self.__running: self.__clock.tick(FPS) for event in pygame.event.get(): self.event_handler(event) self.keys_pressed_handler() self.loop_handler() self.update_screen() self.quit()