2023-03-07 12:28:13 +01:00
|
|
|
import pygame
|
2023-03-19 21:00:49 +01:00
|
|
|
import sys
|
2023-03-25 12:33:24 +01:00
|
|
|
import random
|
2023-04-22 21:31:19 +02:00
|
|
|
from settings import screen_height, screen_width, SIZE, SPECIES, block_size, tile, road_coords, directions
|
2023-03-25 12:33:24 +01:00
|
|
|
from src.map import drawRoads, seedForFirstTime
|
|
|
|
from src.Tractor import Tractor
|
|
|
|
from src.Plant import Plant
|
2023-04-22 21:31:19 +02:00
|
|
|
from src.bfs import BFS
|
2023-03-07 12:28:13 +01:00
|
|
|
|
2023-03-15 19:58:49 +01:00
|
|
|
# pygame initialization
|
2023-03-07 12:28:13 +01:00
|
|
|
pygame.init()
|
2023-03-25 12:33:24 +01:00
|
|
|
clock = pygame.time.Clock()
|
2023-03-26 12:00:34 +02:00
|
|
|
#pygame.mouse.set_visible(False)
|
2023-03-19 21:00:49 +01:00
|
|
|
|
2023-03-25 12:33:24 +01:00
|
|
|
#GAME SCREEN
|
|
|
|
screen = pygame.display.set_mode(SIZE)
|
|
|
|
pygame.display.set_caption("Traktor_interaktor")
|
|
|
|
background = pygame.image.load("assets/farmland.jpg")
|
|
|
|
background = pygame.transform.scale(background,SIZE)
|
|
|
|
screen.fill((90,50,20))
|
|
|
|
background.fill((90,50,20))
|
|
|
|
background = drawRoads(background)
|
2023-03-07 12:28:13 +01:00
|
|
|
|
2023-03-25 12:33:24 +01:00
|
|
|
for line in range(26):
|
2023-04-22 21:31:19 +02:00
|
|
|
pygame.draw.line(background, (0, 0, 0), (0, line * block_size), (screen_width, line * block_size))
|
|
|
|
pygame.draw.line(background, (0, 0, 0), (line * block_size, 0), (line * block_size, screen_height))
|
2023-03-25 12:33:24 +01:00
|
|
|
|
|
|
|
#TRACTOR
|
2023-04-22 21:31:19 +02:00
|
|
|
tractor = Tractor('oil','manual', 'fuel', 'fertilizer1', 20)
|
2023-03-25 12:33:24 +01:00
|
|
|
tractor_group = pygame.sprite.Group()
|
|
|
|
tractor_group.add(tractor)
|
|
|
|
|
|
|
|
#PLANTS
|
|
|
|
plant_group = pygame.sprite.Group()
|
|
|
|
plant_group = seedForFirstTime()
|
2023-03-07 12:28:13 +01:00
|
|
|
|
2023-04-22 21:31:19 +02:00
|
|
|
#
|
|
|
|
tractor_move = pygame.USEREVENT + 1
|
|
|
|
pygame.time.set_timer(tractor_move, 800)
|
|
|
|
moves = []
|
|
|
|
goal_bfs = BFS()
|
|
|
|
destination = (random.randrange(0, 936, 36), random.randrange(0, 900, 36))
|
|
|
|
print("Destination: ", destination)
|
|
|
|
moves = goal_bfs.search(
|
|
|
|
[tractor.rect.x, tractor.rect.y, directions[tractor.rotation]], destination)
|
|
|
|
|
|
|
|
|
2023-03-25 12:33:24 +01:00
|
|
|
if __name__ == "__main__":
|
|
|
|
running = True
|
|
|
|
|
|
|
|
while running:
|
|
|
|
for event in pygame.event.get():
|
|
|
|
if event.type == pygame.QUIT:
|
|
|
|
running = False
|
|
|
|
pygame.quit()
|
|
|
|
sys.exit()
|
2023-03-26 12:00:34 +02:00
|
|
|
if event.type == pygame.KEYDOWN:
|
|
|
|
if event.key==pygame.K_RETURN:
|
|
|
|
tractor.collect(plant_group)
|
|
|
|
if event.key == pygame.K_ESCAPE:
|
|
|
|
running = False
|
2023-04-22 21:31:19 +02:00
|
|
|
if event.type == tractor_move:
|
|
|
|
if len(moves) != 0:
|
|
|
|
step = moves.pop()
|
|
|
|
tractor.movement(step[0])
|
|
|
|
|
|
|
|
|
|
|
|
Tractor.movement_using_keys(tractor)
|
2023-03-25 12:33:24 +01:00
|
|
|
screen.blit(background,(0,0))
|
|
|
|
plant_group.draw(screen)
|
2023-04-22 21:31:19 +02:00
|
|
|
tractor_group.draw((screen))
|
2023-03-25 12:33:24 +01:00
|
|
|
tractor_group.update()
|
2023-03-26 12:00:34 +02:00
|
|
|
pygame.display.flip()
|
|
|
|
clock.tick(60)
|