Route_planning_bfs #2
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -6,7 +6,6 @@ from tile import Tile
|
|||||||
|
|
||||||
tiles = []
|
tiles = []
|
||||||
|
|
||||||
|
|
||||||
fieldX = (WIDTH-FIELD_WIDTH)/2
|
fieldX = (WIDTH-FIELD_WIDTH)/2
|
||||||
# in center of the screen
|
# in center of the screen
|
||||||
fieldY = 100
|
fieldY = 100
|
||||||
@ -26,6 +25,7 @@ def createTiles():
|
|||||||
tile.randomizeContent()
|
tile.randomizeContent()
|
||||||
tiles.append(tile)
|
tiles.append(tile)
|
||||||
positionFieldElements()
|
positionFieldElements()
|
||||||
|
return tiles
|
||||||
|
|
||||||
def createField(win):
|
def createField(win):
|
||||||
createTiles()
|
createTiles()
|
||||||
@ -41,3 +41,21 @@ def drawWindow(win):
|
|||||||
createField(win)
|
createField(win)
|
||||||
pygame.display.flip()
|
pygame.display.flip()
|
||||||
|
|
||||||
|
|
||||||
|
def update_tiles(win, tractor):
|
||||||
|
tiles = createTiles()
|
||||||
|
for tile in tiles:
|
||||||
|
if tile.x == tractor.previous_x and tile.y == tractor.previous_y:
|
||||||
|
tile.x = tractor.x
|
||||||
|
tile.y = tractor.y
|
||||||
|
|
||||||
|
if tile.image is not None:
|
||||||
|
new_tile = Tile(tile.x, tile.y)
|
||||||
|
new_tile.image = tile.image
|
||||||
|
|
||||||
|
|
||||||
|
tiles.append(new_tile)
|
||||||
|
|
||||||
|
image = pygame.image.load(tile.image).convert()
|
||||||
|
image = pygame.transform.scale(image, (TILE_SIZE, TILE_SIZE))
|
||||||
|
win.blit(image, (tile.x + fieldX-1, tile.y + fieldY-1))
|
@ -1,5 +1,5 @@
|
|||||||
from crop_protection_product import CropProtectionProduct
|
from crop_protection_product import CropProtectionProduct
|
||||||
from area.constants import TILE_SIZE, DIRECTION_EAST, DIRECTION_SOUTH, DIRECTION_WEST, DIRECTION_NORTH
|
from area.constants import TILE_SIZE, DIRECTION_EAST, DIRECTION_SOUTH, DIRECTION_WEST, DIRECTION_NORTH, GREY
|
||||||
from area.field import fieldX,fieldY
|
from area.field import fieldX,fieldY
|
||||||
import pygame
|
import pygame
|
||||||
|
|
||||||
@ -7,7 +7,7 @@ import pygame
|
|||||||
class Tractor:
|
class Tractor:
|
||||||
x = None
|
x = None
|
||||||
y = None
|
y = None
|
||||||
direction = None #direction takes values in the range of 1 to 4
|
direction = None #direction takes values in the range of 1 to 4 (1->North, 2->East etc...)
|
||||||
image = None
|
image = None
|
||||||
cypermetryna = CropProtectionProduct("pests", "cereal")
|
cypermetryna = CropProtectionProduct("pests", "cereal")
|
||||||
diflufenikan = CropProtectionProduct("weeds", "cereal")
|
diflufenikan = CropProtectionProduct("weeds", "cereal")
|
||||||
@ -20,8 +20,20 @@ class Tractor:
|
|||||||
def __init__(self, x, y, direction):
|
def __init__(self, x, y, direction):
|
||||||
self.x = x
|
self.x = x
|
||||||
self.y = y
|
self.y = y
|
||||||
|
|
||||||
|
self.rect = pygame.Rect(x, y, TILE_SIZE, TILE_SIZE)
|
||||||
|
|
||||||
|
# self.previous_x = x
|
||||||
|
# self.previous_y = y
|
||||||
self.direction = direction
|
self.direction = direction
|
||||||
self.image = pygame.image.load('resources/images/tractor.png').convert_alpha()
|
self.image = pygame.image.load('resources/images/tractor_right.png').convert_alpha()
|
||||||
|
|
||||||
|
if (self.direction==1):
|
||||||
|
self.image = pygame.image.load('resources/images/tractor_up.png').convert_alpha()
|
||||||
|
elif (self.direction==3):
|
||||||
|
self.image = pygame.image.load('resources/images/tractor_down.png').convert_alpha()
|
||||||
|
elif (self.direction==4):
|
||||||
|
self.image = pygame.image.load('resources/images/tractor_left.png').convert_alpha()
|
||||||
|
|
||||||
|
|
||||||
def work_on_field(self, tile, ground, plant1):
|
def work_on_field(self, tile, ground, plant1):
|
||||||
@ -69,16 +81,20 @@ class Tractor:
|
|||||||
|
|
||||||
def move(self):
|
def move(self):
|
||||||
if self.direction == DIRECTION_EAST:
|
if self.direction == DIRECTION_EAST:
|
||||||
self.x = self.x + TILE_SIZE
|
#self.x += TILE_SIZE
|
||||||
|
self.rect.x += TILE_SIZE
|
||||||
|
|
||||||
elif self.direction == DIRECTION_WEST:
|
elif self.direction == DIRECTION_WEST:
|
||||||
self.x = self.x - TILE_SIZE
|
#self.x -= TILE_SIZE
|
||||||
|
self.rect.x -= TILE_SIZE
|
||||||
|
|
||||||
elif self.direction == DIRECTION_NORTH:
|
elif self.direction == DIRECTION_NORTH:
|
||||||
self.y = self.y - TILE_SIZE
|
#self.y -= TILE_SIZE
|
||||||
|
self.rect.y -= TILE_SIZE
|
||||||
|
|
||||||
elif self.direction == DIRECTION_SOUTH:
|
elif self.direction == DIRECTION_SOUTH:
|
||||||
self.y = self.y + TILE_SIZE
|
#self.y += TILE_SIZE
|
||||||
|
self.rect.y += TILE_SIZE
|
||||||
|
|
||||||
|
|
||||||
def rotate_to_right(self):
|
def rotate_to_right(self):
|
||||||
@ -100,7 +116,6 @@ class Tractor:
|
|||||||
def draw_tractor(self, win):
|
def draw_tractor(self, win):
|
||||||
|
|
||||||
imageTractor = pygame.transform.scale(self.image, (TILE_SIZE, TILE_SIZE))
|
imageTractor = pygame.transform.scale(self.image, (TILE_SIZE, TILE_SIZE))
|
||||||
self.x += fieldX
|
win.blit(imageTractor, (self.rect.x, self.rect.y))
|
||||||
self.y += fieldY
|
|
||||||
win.blit(imageTractor, (self.x, self.y))
|
|
||||||
pygame.display.flip()
|
pygame.display.flip()
|
||||||
|
|
||||||
|
@ -2,16 +2,18 @@ import pygame
|
|||||||
import time
|
import time
|
||||||
import random
|
import random
|
||||||
|
|
||||||
from area.constants import WIDTH, HEIGHT, TILE_SIZE
|
from area.constants import WIDTH, HEIGHT, TILE_SIZE, GREY
|
||||||
from area.field import drawWindow
|
from area.field import drawWindow
|
||||||
from area.tractor import Tractor
|
from area.tractor import Tractor
|
||||||
from area.field import tiles
|
from area.field import tiles, fieldX, fieldY
|
||||||
|
from area.field import update_tiles
|
||||||
from ground import Dirt
|
from ground import Dirt
|
||||||
from plant import Plant
|
from plant import Plant
|
||||||
WIN = pygame.display.set_mode((WIDTH, HEIGHT))
|
WIN = pygame.display.set_mode((WIDTH, HEIGHT))
|
||||||
pygame.display.set_caption('Intelligent tractor')
|
pygame.display.set_caption('Intelligent tractor')
|
||||||
|
|
||||||
|
trail = pygame.image.load("resources/images/background.jpg").convert_alpha()
|
||||||
|
trail = pygame.transform.scale(trail, (TILE_SIZE, TILE_SIZE))
|
||||||
def main():
|
def main():
|
||||||
run = True
|
run = True
|
||||||
window = drawWindow(WIN)
|
window = drawWindow(WIN)
|
||||||
@ -24,24 +26,32 @@ def main():
|
|||||||
run = False
|
run = False
|
||||||
|
|
||||||
#small test:
|
#small test:
|
||||||
time.sleep(2)
|
time.sleep(1)
|
||||||
tile1 = tiles[0]
|
tile1 = tiles[0]
|
||||||
p1 = Plant('wheat', 'cereal', random.randint(1,100), random.randint(1,100), random.randint(1,100))
|
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 = Dirt(random.randint(1, 100), random.randint(1,100))
|
||||||
d1.pests_and_weeds()
|
d1.pests_and_weeds()
|
||||||
tile1.ground=d1
|
tile1.ground=d1
|
||||||
|
|
||||||
tractor = Tractor(0*TILE_SIZE, 0*TILE_SIZE, 2)
|
tractor = Tractor(0*TILE_SIZE, 0*TILE_SIZE, 1)
|
||||||
tractor.rotate_to_right()
|
tractor.rotate_to_right()
|
||||||
tractor.move()
|
tractor.rect.x += fieldX
|
||||||
|
tractor.rect.y += fieldY
|
||||||
tractor.draw_tractor(WIN)
|
tractor.draw_tractor(WIN)
|
||||||
|
time.sleep(1)
|
||||||
|
for _ in range(5):
|
||||||
|
WIN.blit(trail, (tractor.rect.x, tractor.rect.y, TILE_SIZE, TILE_SIZE))
|
||||||
|
tractor.move()
|
||||||
|
|
||||||
pygame.display.update()
|
tractor.draw_tractor(WIN)
|
||||||
|
pygame.display.flip()
|
||||||
tractor.work_on_field(tile1, d1, p1)
|
tractor.work_on_field(tile1, d1, p1)
|
||||||
time.sleep(3)
|
time.sleep(2)
|
||||||
print("\n")
|
print("\n")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# in loop move tractor:
|
# in loop move tractor:
|
||||||
|
|
||||||
|
|
||||||
|
BIN
source/resources/images/tractor_down.png
Normal file
BIN
source/resources/images/tractor_down.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 191 KiB |
BIN
source/resources/images/tractor_left.png
Normal file
BIN
source/resources/images/tractor_left.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 193 KiB |
BIN
source/resources/images/tractor_right.png
Normal file
BIN
source/resources/images/tractor_right.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 189 KiB |
BIN
source/resources/images/tractor_up.png
Normal file
BIN
source/resources/images/tractor_up.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 191 KiB |
Loading…
Reference in New Issue
Block a user