import pygame # wersja 1.05 from Main import Board, driving, drawUI from Main.Tractor import Tractor from Main.TractorAction import action, chooseToolset from Main.TractorLoad import TillageUnit from Main.constants import * from Main.driving import autodrive, isComebackTime pygame.init() display = pygame.display.set_mode((DISPLAY_SIZE_HORIZONTAL, DISPLAY_SIZE_VERTICAL)) pygame.display.set_caption('Tractor') working = True cruiseControl = True autoAction = True autonomousDrive = True comeback = False lastDirection = "RIGHT" direction = "RIGHT" hitchCounter = 0 loadCounter = 0 toolCounter = 0 board = Board.generate() tractor = Tractor(horizontal_index=-0, vertical_index=0, hitch="nothing", header=False) tillageUnit = TillageUnit("Nothing") tractor.turnOnEngine() clock = pygame.time.Clock() while working: for event in pygame.event.get(): if event.type == pygame.QUIT: working = False if event.type == pygame.KEYDOWN: if event.key == pygame.K_SPACE: field = board[tractor.horizontal_index][tractor.vertical_index] field.state = action(field, tractor) if event.key == pygame.K_q: hitchCounter = (hitchCounter + 1) % 3 if hitchCounter == 0: tractor.hitch = "Crop Trailer" if hitchCounter == 1: tractor.hitch = tillageUnit if hitchCounter == 2: tractor.hitch = "Nothing" if event.key == pygame.K_w: if tractor.header: tractor.header = False else: tractor.header = True if event.key == pygame.K_e: loadCounter = (loadCounter + 1) % 4 if loadCounter == 0: tillageUnit.load = "Nothing" elif loadCounter == 1: tillageUnit.load = "Seeds" elif loadCounter == 2: tillageUnit.load = "Water" elif loadCounter == 3: tillageUnit.load = "Fertilizer" direction = driving.manualTurning(event, tractor) print(tractor.horizontal_index, " ", tractor.vertical_index) field = board[tractor.horizontal_index][tractor.vertical_index] if autoAction: if tractor.horizontal_index == 0 and tractor.vertical_index == 0: toolCounter = (toolCounter + 1) % 5 tractor, tillageUnit = chooseToolset(tractor, tillageUnit, toolCounter) tractor.fill_tank() field.state = action(field, tractor) print(direction) tractor.drive(driving.cruiseControl(tractor, direction, cruiseControl)) if direction != "STOP": lastDirection = direction else: direction = lastDirection direction = autodrive(tractor, autonomousDrive, direction, comeback) comeback, direction = isComebackTime(tractor, direction, comeback) drawUI.drawUI(board, display, tractor, direction, tillageUnit, field) clock.tick(FPS) tractor.reduce_fuel() pygame.quit() quit()