Compare commits

..

No commits in common. "f2539c9fd0e069dd59e97e4d21ca85843dd3b7a2" and "24fe7c40fcdd6e7d3f2624c13ea7f29d9ba5753c" have entirely different histories.

6 changed files with 39 additions and 72 deletions

1
.gitignore vendored
View File

@ -1,2 +1 @@
__pycache__/ __pycache__/
.idea/

17
App.py
View File

@ -5,22 +5,22 @@ import Pole
import time import time
import displayControler as dCon import displayControler as dCon
import Image import Image
import Osprzet
pygame.init() pygame.init()
screen = pygame.display.set_mode((dCon.getScreenWidth(), dCon.getScreenHeihgt())) screen = pygame.display.set_mode((dCon.getScreenWidth(), dCon.getScreenHeihgt()))
#Tractor creation
traktor=Tractor.Tractor(0,0,screen)
image_loader=Image.Image() image_loader=Image.Image()
image_loader.load_images() image_loader.load_images()
pole=Pole.Pole(screen,image_loader) pole=Pole.Pole(screen,image_loader)
pole.draw_grid() #musi byc tutaj wywołane ponieważ inicjalizuje sloty do slownika
#Tractor creation
traktor_slot = pole.get_slot_from_cord((0, 0))
traktor = Tractor.Tractor(traktor_slot, screen, Osprzet.plug)
def init_demo(): #Demo purpose def init_demo(): #Demo purpose
pole.draw_grid()
traktor.draw_tractor() traktor.draw_tractor()
time.sleep(2) time.sleep(2)
pole.randomize_colors() pole.randomize_colors()
@ -34,6 +34,7 @@ def init_demo(): #Demo purpose
def init(demo): def init(demo):
screen.fill(Colors.WHITE)
pygame.display.update() pygame.display.update()
if(demo==True): if(demo==True):
init_demo() init_demo()
@ -41,10 +42,8 @@ def init(demo):
def demo_move(): def demo_move():
current_slot = traktor.slot pole.get_slot_from_cord((traktor.x_axis,traktor.y_axis)).redraw_image()
if current_slot: traktor.random_move()
current_slot.redraw_image() # Przerysowanie obrazu dla aktualnego slotu
traktor.random_move(pole)

View File

@ -1,14 +0,0 @@
class Osprzet:
akcja = None
def __init__(self, id, marka, model):
self.id = id
self.marka = marka
self.model = model
plug = Osprzet(1,'Bomet', 'U031')
siewnik = Osprzet(2, "Amazone", "12001-C")
rozsiewacz = Osprzet(3, 'John Deere', 'TF 1500')
opryskiwacz = Osprzet(4, 'John Deere', 'M720')
header = Osprzet(5, 'John Deere', 'X350R')
#jak istnieją jakieś bardziej profesjonalne nazwy czy lepsze to śmiało zmieńcie

View File

@ -43,11 +43,3 @@ class Pole:
def change_color_of_slot(self,coordinates,color): #Coordinates must be tuple (x,y) (left top slot has cord (0,0) ), color has to be from defined in Colors.py or custom in RGB value (R,G,B) def change_color_of_slot(self,coordinates,color): #Coordinates must be tuple (x,y) (left top slot has cord (0,0) ), color has to be from defined in Colors.py or custom in RGB value (R,G,B)
self.get_slot_from_cord(coordinates).color_change(color) self.get_slot_from_cord(coordinates).color_change(color)
def get_neighbor(self, slot, dx, dy):
neighbor_x = slot.x_axis + dx
neighbor_y = slot.y_axis + dy
return self.get_slot_from_cord((neighbor_x, neighbor_y))
def is_valid_move(self, coordinates):
return coordinates in self.slot_dict

View File

@ -9,7 +9,6 @@ class Slot:
def __init__(self,x_axis,y_axis,color,screen,image_loader): def __init__(self,x_axis,y_axis,color,screen,image_loader):
self.x_axis=x_axis self.x_axis=x_axis
self.y_axis=y_axis self.y_axis=y_axis
self.plant_image = None
self.plant=color #TODO CHANGE IT BY HOOKING PLANT CLASS self.plant=color #TODO CHANGE IT BY HOOKING PLANT CLASS
self.screen=screen self.screen=screen
self.field=pygame.Rect(self.x_axis*dCon.CUBE_SIZE,self.y_axis*dCon.CUBE_SIZE,dCon.CUBE_SIZE,dCon.CUBE_SIZE) self.field=pygame.Rect(self.x_axis*dCon.CUBE_SIZE,self.y_axis*dCon.CUBE_SIZE,dCon.CUBE_SIZE,dCon.CUBE_SIZE)
@ -32,9 +31,7 @@ class Slot:
self.set_image() self.set_image()
def set_image(self): def set_image(self):
if self.plant_image is None: self.screen.blit(self.plant,(self.x_axis*dCon.CUBE_SIZE,self.y_axis*dCon.CUBE_SIZE))
self.plant_image = self.image_loader.return_random_plant()
self.screen.blit(self.plant_image, (self.x_axis * dCon.CUBE_SIZE, self.y_axis * dCon.CUBE_SIZE))
pygame.draw.rect(self.screen,Colors.BLACK,self.field,BORDER_THICKNESS) pygame.draw.rect(self.screen,Colors.BLACK,self.field,BORDER_THICKNESS)

View File

@ -2,47 +2,41 @@ import pygame
import random import random
import displayControler as dCon import displayControler as dCon
import Slot import Slot
import Osprzet
class Tractor: class Tractor:
def __init__(self,slot,screen, osprzet): def __init__(self,x_axis,y_axis,screen):
self.x_axis=x_axis
self.y_axis=y_axis
self.tractor_image = pygame.image.load('images/traktor.png') self.tractor_image = pygame.image.load('images/traktor.png')
self.tractor_image = pygame.transform.scale(self.tractor_image, (dCon.CUBE_SIZE, dCon.CUBE_SIZE)) self.tractor_image = pygame.transform.scale(self.tractor_image, (dCon.CUBE_SIZE, dCon.CUBE_SIZE))
self.screen=screen self.screen=screen
self.slot=slot self.slot=None
self.osprzet = osprzet
def draw_tractor(self): def draw_tractor(self):
self.screen.blit(self.tractor_image, (self.slot.x_axis*dCon.CUBE_SIZE,self.slot.y_axis*dCon.CUBE_SIZE)) self.screen.blit(self.tractor_image, (self.x_axis*dCon.CUBE_SIZE,self.y_axis*dCon.CUBE_SIZE))
pygame.display.update() pygame.display.update()
def move_tractor(self, pole, direction): def move_tractor(self,x):
next_slot = None if(x==0):
if direction == "right" and pole.is_valid_move((self.slot.x_axis + 1, self.slot.y_axis)): if(dCon.isValidMove(self.x_axis + 1, self.y_axis)):
next_slot = pole.get_neighbor(self.slot, 1, 0) print("Ruch w prawo")
elif direction == "left" and pole.is_valid_move((self.slot.x_axis - 1, self.slot.y_axis)): self.x_axis=self.x_axis+1
next_slot = pole.get_neighbor(self.slot, -1, 0) elif(x==1):
elif direction == "down" and pole.is_valid_move((self.slot.x_axis, self.slot.y_axis + 1)): if(dCon.isValidMove(self.x_axis - 1, self.y_axis)):
next_slot = pole.get_neighbor(self.slot, 0, 1) print("Ruch w lewo")
elif direction == "up" and pole.is_valid_move((self.slot.x_axis, self.slot.y_axis - 1)): self.x_axis=self.x_axis-1
next_slot = pole.get_neighbor(self.slot, 0, -1) elif(x==2):
if(dCon.isValidMove(self.x_axis, self.y_axis + 1)):
if next_slot: print("Ruch w dol")
self.slot = next_slot self.y_axis=self.y_axis+1
elif(x==3):
if(dCon.isValidMove(self.x_axis, self.y_axis - 1)):
print("Ruch w gore")
self.y_axis=self.y_axis-1
self.draw_tractor() self.draw_tractor()
def random_move(self, pole):
directions = ["right", "left", "down", "up"]
direction = random.choice(directions)
self.move_tractor(pole, direction)
def random_move(self):
x=random.randint(0,3)
self.move_tractor(x)
#to tak zrobiłam już na później, może się przyda
def change_osprzet(self, new_osprzet):
self.osprzet = new_osprzet
def print_osprzet_info(self):
if self.osprzet is not None:
print("Wyposazenie:", self.osprzet.marka, self.osprzet.model)
else:
print("Brak")