Traktor/source/main.py

71 lines
2.0 KiB
Python
Raw Normal View History

2024-03-07 18:01:12 +01:00
import pygame
2024-03-25 01:03:25 +01:00
import time
import random
2024-03-07 18:01:12 +01:00
2024-04-10 01:52:13 +02:00
from area.constants import WIDTH, HEIGHT, TILE_SIZE, GREY
2024-03-07 18:01:12 +01:00
from area.field import drawWindow
2024-04-14 17:20:27 +02:00
from area.tractor import Tractor, do_actions
2024-04-10 01:52:13 +02:00
from area.field import tiles, fieldX, fieldY
2024-04-14 14:29:11 +02:00
from area.field import get_tile_coordinates
2024-03-25 01:03:25 +01:00
from ground import Dirt
from plant import Plant
2024-04-14 14:29:11 +02:00
from bfs import graphsearch, Istate, succ
2024-03-07 18:01:12 +01:00
WIN = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption('Intelligent tractor')
2024-04-14 17:20:27 +02:00
2024-03-07 18:01:12 +01:00
def main():
run = True
window = drawWindow(WIN)
pygame.display.update()
2024-04-09 15:02:58 +02:00
2024-04-14 14:29:11 +02:00
#getting coordinates of a certain tile - test:
tile_index=399
2024-04-14 14:29:11 +02:00
tile_x, tile_y = get_tile_coordinates(tile_index)
if tile_x is not None and tile_y is not None:
print(f"Coordinates of tile {tile_index} are: ({tile_x}, {tile_y})")
else: print("Such tile does not exist")
2024-04-14 17:20:27 +02:00
#graphsearch activation:
2024-04-14 14:29:11 +02:00
istate = Istate(170, 100, 2)
goaltest = []
goaltest.append(tile_x)
2024-04-14 17:20:27 +02:00
goaltest.append(tile_y)
moves = (graphsearch(istate, succ, goaltest))
print(moves)
2024-04-14 14:29:11 +02:00
#main loop:
2024-03-07 18:01:12 +01:00
while run:
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
2024-04-14 14:29:11 +02:00
#small test of work_on_field method:
2024-04-10 01:52:13 +02:00
time.sleep(1)
2024-03-25 01:03:25 +01:00
tile1 = tiles[0]
p1 = Plant('wheat', 'cereal', random.randint(1,100), random.randint(1,100), random.randint(1,100))
d1 = Dirt(random.randint(1, 100), random.randint(1,100))
d1.pests_and_weeds()
tile1.ground=d1
2024-04-09 15:02:58 +02:00
2024-04-14 17:20:27 +02:00
#movement based on route-planning test:
tractor = Tractor(0*TILE_SIZE, 0*TILE_SIZE, 2)
2024-04-10 01:52:13 +02:00
tractor.rect.x += fieldX
2024-04-14 17:20:27 +02:00
tractor.rect.y += fieldY
2024-04-09 15:02:58 +02:00
tractor.draw_tractor(WIN)
2024-04-10 01:52:13 +02:00
time.sleep(1)
if moves != False:
2024-04-14 17:20:27 +02:00
do_actions(tractor, WIN, moves)
tractor.work_on_field(tile1, d1, p1)
time.sleep(2)
print("\n")
2024-04-10 01:52:13 +02:00
2024-03-25 01:03:25 +01:00
2024-04-09 15:02:58 +02:00
# in loop move tractor:
2024-03-07 18:01:12 +01:00
main()