This commit is contained in:
v7eZ3t 2021-03-29 13:06:57 +02:00
parent aa9e61f921
commit 91106af2a8
6 changed files with 36 additions and 10 deletions

View File

@ -3,11 +3,12 @@ import random
from Main.Field import Field from Main.Field import Field
from Main.constants import * from Main.constants import *
states = ['toPlow', 'toSeed', 'toFertilize', 'toWater', 'toCut']
def generate(): def generate():
board = [] board = []
for i in range(0, int(HORIZONTAL_TILES_NUMBER)): for i in range(0, int(HORIZONTAL_TILES_NUMBER)):
board.append([]) board.append([])
for j in range(0, int(VERTICAL_TILES_NUMBER)): for j in range(0, int(VERTICAL_TILES_NUMBER)):
board[i].append(Field(int(i * TILE_SIZE), int(j * TILE_SIZE), random.randint(0, 3))) board[i].append(Field(int(i * TILE_SIZE), int(j * TILE_SIZE), random.choice(states)))
return board return board

View File

@ -1,4 +1,4 @@
from Main.TractorLoad import TractorTrailer from Main.TractorLoad import TillageUnitLoad
from Main.constants import HORIZONTAL_TILES_NUMBER, VERTICAL_TILES_NUMBER from Main.constants import HORIZONTAL_TILES_NUMBER, VERTICAL_TILES_NUMBER
@ -37,7 +37,7 @@ class Tractor:
@hitch.setter @hitch.setter
def hitch(self, hitch): def hitch(self, hitch):
if hitch == "Tillage unit" or "Crop Trailer" or TractorTrailer or "Nothing": if hitch == "Tillage unit" or "Crop Trailer" or TillageUnitLoad or "Nothing":
self.__hitch = hitch self.__hitch = hitch
@property @property

21
TractorAction.py Normal file
View File

@ -0,0 +1,21 @@
from Main import TractorLoad
def action(field, tractor):
if tractor.header and tractor.hitch == "Crop Trailer":
return "toPlow"
elif tractor.hitch == "Tillage Unit" and TractorLoad.TillageUnitLoad == "Fertilizer" and field.state == "toFertilize":
return "toSeed"
elif tractor.hitch == "Tillage Unit" and TractorLoad.TillageUnitLoad == "Seeds" and field.state == "toSeed":
return "toWater"
elif tractor.hitch == "Tillage Unit" and TractorLoad.TillageUnitLoad == "Water" and field.state == "toWater":
return "toCut"
elif tractor.hitch == "Tillage Unit" and TractorLoad.TillageUnitLoad == "None":
return "toFertilize"

View File

@ -1,4 +1,4 @@
class TractorTrailer: class TillageUnitLoad:
def __init__(self, __load): def __init__(self, __load):
self.__load = __load self.__load = __load

View File

@ -15,10 +15,13 @@ def drawUI(board, display, tractor, direction):
def drawInfo(display, tractor): def drawInfo(display, tractor):
myfont = pygame.font.SysFont('Comic Sans MS', 30) myfont = pygame.font.SysFont('Comic Sans MS', 30)
text = f"Fuel: {tractor.fuel_tank} \t Hitches: {tractor.hitch} \t Header: {tractor.header} \t Engine working: {tractor.engineWorking}" text = f"Fuel: {tractor.fuel_tank} \t Hitches: {tractor.hitch} \t Header: {tractor.header} \t Engine working: {tractor.engineWorking}"
textsurface = myfont.render(text, False, (0, 0, 0)) textsurface = myfont.render(text, False, (0, 0, 0))
display.blit(textsurface, (50, (DISPLAY_SIZE_VERTICAL - 200))) display.blit(textsurface, (50, (DISPLAY_SIZE_VERTICAL - 200)))
text = f""
textsurface = myfont.render(text, False, (0, 0, 0))
display.blit(textsurface, (50, (DISPLAY_SIZE_VERTICAL - 150)))
def makeField(board, screen: pygame.Surface): def makeField(board, screen: pygame.Surface):
for i in range(int(HORIZONTAL_TILES_NUMBER)): for i in range(int(HORIZONTAL_TILES_NUMBER)):
@ -28,16 +31,16 @@ def makeField(board, screen: pygame.Surface):
pos_x = i * TILE_SIZE + TILE_SIZE // 2 pos_x = i * TILE_SIZE + TILE_SIZE // 2
pos_y = j * TILE_SIZE + TILE_SIZE // 2 pos_y = j * TILE_SIZE + TILE_SIZE // 2
if field.state == 0: if field.state == "toWater":
do_podlania_rect.center = (pos_x, pos_y) do_podlania_rect.center = (pos_x, pos_y)
screen.blit(do_podlania, do_podlania_rect) screen.blit(do_podlania, do_podlania_rect)
elif field.state == 1: elif field.state == "toPlow":
do_zaorania_rect.center = (pos_x, pos_y) do_zaorania_rect.center = (pos_x, pos_y)
screen.blit(do_zaorania, do_zaorania_rect) screen.blit(do_zaorania, do_zaorania_rect)
elif field.state == 2: elif field.state == "toSeed":
do_zasiania_rect.center = (pos_x, pos_y) do_zasiania_rect.center = (pos_x, pos_y)
screen.blit(do_zasiania, do_zasiania_rect) screen.blit(do_zasiania, do_zasiania_rect)
elif field.state == 3: elif field.state == "toCut":
do_zebrania_rect.center = (pos_x, pos_y) do_zebrania_rect.center = (pos_x, pos_y)
screen.blit(do_zebrania, do_zebrania_rect) screen.blit(do_zebrania, do_zebrania_rect)

View File

@ -4,6 +4,7 @@ from pygame import sysfont
from Main import Board, driving, drawUI from Main import Board, driving, drawUI
from Main.Tractor import Tractor from Main.Tractor import Tractor
from Main.TractorAction import action
from Main.constants import * from Main.constants import *
pygame.init() pygame.init()
@ -32,7 +33,7 @@ while working:
if event.type == pygame.KEYDOWN: if event.type == pygame.KEYDOWN:
if event.key == pygame.K_SPACE: if event.key == pygame.K_SPACE:
field = board[tractor.horizontal_index][tractor.vertical_index] field = board[tractor.horizontal_index][tractor.vertical_index]
field.state = 4 field = action(field, tractor)
horizontal_change, vertical_change = driving.manualTurning(event, tractor.horizontal_index, horizontal_change, vertical_change = driving.manualTurning(event, tractor.horizontal_index,
tractor.vertical_index, horizontal_change, tractor.vertical_index, horizontal_change,
vertical_change) vertical_change)