diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..81d39d3 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,2 @@ +# Default ignored files +/workspace.xml \ No newline at end of file diff --git a/.idea/ProjektAI.iml b/.idea/ProjektAI.iml new file mode 100644 index 0000000..9c88284 --- /dev/null +++ b/.idea/ProjektAI.iml @@ -0,0 +1,11 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..105ce2d --- /dev/null +++ b/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..ef004d1 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..fb0e061 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..9661ac7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Projekt “Automatyczny kelner ”.pdf b/Projekt “Automatyczny kelner ”.pdf deleted file mode 100644 index d35dabd..0000000 Binary files a/Projekt “Automatyczny kelner ”.pdf and /dev/null differ diff --git a/Raport - _Automatyczny kelner_.pdf b/Raport - _Automatyczny kelner_.pdf new file mode 100644 index 0000000..4bd29e7 Binary files /dev/null and b/Raport - _Automatyczny kelner_.pdf differ diff --git a/kelner/.idea/kelner.iml b/kelner/.idea/kelner.iml index 9c88284..f79b4ad 100644 --- a/kelner/.idea/kelner.iml +++ b/kelner/.idea/kelner.iml @@ -2,7 +2,7 @@ - + diff --git a/kelner/.idea/workspace.xml b/kelner/.idea/workspace.xml index 5b2d667..ee3e0fa 100644 --- a/kelner/.idea/workspace.xml +++ b/kelner/.idea/workspace.xml @@ -1,16 +1,8 @@ - - - - + - - - - - @@ -115,6 +108,11 @@ + + + + + 1584889744892 @@ -182,8 +180,8 @@ file://$PROJECT_DIR$/src/managers/DrawableCollection.py - 69 - @@ -196,6 +194,6 @@ - + \ No newline at end of file diff --git a/kelner/images/Backgroud.png b/kelner/images/Backgroud.png new file mode 100644 index 0000000..91b5444 Binary files /dev/null and b/kelner/images/Backgroud.png differ diff --git a/kelner/images/Untitleda.png b/kelner/images/Untitleda.png new file mode 100644 index 0000000..f9f1991 Binary files /dev/null and b/kelner/images/Untitleda.png differ diff --git a/kelner/images/check.png b/kelner/images/check.png new file mode 100644 index 0000000..5058027 Binary files /dev/null and b/kelner/images/check.png differ diff --git a/kelner/images/drive-download-20200405T181945Z-001.zip b/kelner/images/drive-download-20200405T181945Z-001.zip new file mode 100644 index 0000000..72d8b64 Binary files /dev/null and b/kelner/images/drive-download-20200405T181945Z-001.zip differ diff --git a/kelner/images/kelner.png b/kelner/images/kelner.png new file mode 100644 index 0000000..6e0d499 Binary files /dev/null and b/kelner/images/kelner.png differ diff --git a/kelner/images/ksiazka.png b/kelner/images/ksiazka.png new file mode 100644 index 0000000..3cf2a19 Binary files /dev/null and b/kelner/images/ksiazka.png differ diff --git a/kelner/images/kurczak.png b/kelner/images/kurczak.png new file mode 100644 index 0000000..22af728 Binary files /dev/null and b/kelner/images/kurczak.png differ diff --git a/kelner/images/piwo.png b/kelner/images/piwo.png new file mode 100644 index 0000000..96a207f Binary files /dev/null and b/kelner/images/piwo.png differ diff --git a/kelner/images/plate.png b/kelner/images/plate.png new file mode 100644 index 0000000..6f5173c Binary files /dev/null and b/kelner/images/plate.png differ diff --git a/kelner/images/stol.png b/kelner/images/stol.png new file mode 100644 index 0000000..bc1e476 Binary files /dev/null and b/kelner/images/stol.png differ diff --git a/kelner/images/wiking_blond.png b/kelner/images/wiking_blond.png new file mode 100644 index 0000000..ebc4b63 Binary files /dev/null and b/kelner/images/wiking_blond.png differ diff --git a/kelner/images/wiking_rudy.png b/kelner/images/wiking_rudy.png new file mode 100644 index 0000000..0c2e26c Binary files /dev/null and b/kelner/images/wiking_rudy.png differ diff --git a/kelner/images/wiking_rudy2.png b/kelner/images/wiking_rudy2.png new file mode 100644 index 0000000..702e5e8 Binary files /dev/null and b/kelner/images/wiking_rudy2.png differ diff --git a/kelner/main.py b/kelner/main.py index f99915b..255061b 100644 --- a/kelner/main.py +++ b/kelner/main.py @@ -7,14 +7,15 @@ from src.components.Table import Table from src.managers.TaskManager import TaskManager #create screen consts -CellSize = 50 #pixel size of 1 square cell in the grid +CellSize = 100 #pixel size of 1 square cell in the grid GridCountX = 15 #number of columns in grid -GridCountY = 11 #number of rows in grid +GridCountY = 9 #number of rows in grid ScreenWidth = CellSize * GridCountX #screen width in pixels ScreenHeight = CellSize * GridCountY #screen height in pixels +Offset = 50 #initialize background -gridBoard = GridBoard(ScreenWidth, ScreenHeight, CellSize) +gridBoard = GridBoard(ScreenWidth+200, ScreenHeight+200, CellSize) #initialize drawable objects manager drawableManager = DrawableCollection() diff --git a/kelner/src/components/GridBoard.py b/kelner/src/components/GridBoard.py index 222260b..8f848fc 100644 --- a/kelner/src/components/GridBoard.py +++ b/kelner/src/components/GridBoard.py @@ -9,6 +9,7 @@ class GridBoard: self.__height = height self.__cellSize = cellSize self.__screen = pygame.display.set_mode((width, height)) # initialize screen + self.Offset = 50 #fills the screen with white and draws grid def reinitialize(self): diff --git a/kelner/src/components/Table.py b/kelner/src/components/Table.py index 54812df..0b6de38 100644 --- a/kelner/src/components/Table.py +++ b/kelner/src/components/Table.py @@ -1,6 +1,7 @@ import pygame from enum import Enum from .Drawable import Drawable +import random class Table(Drawable): @@ -9,24 +10,71 @@ class Table(Drawable): Drawable.__init__(self, 0, 0, minX, maxX, minY, maxY, ratio) self.__order = [] self.__status = Status.NotReady + self.ilosc_klientow = random.randint(1,3) + self.guest1 = self.getGuest() + self.guest2 = self.getGuest() + self.guest3 = self.getGuest() + self.ksiazka = self.__loadImg('./images/ksiazka.png') + self.stol = self.__loadImg('./images/stol.png') + self.check = self.__loadImg('./images/check.png') + self.plate = self.__loadImg('./images/plate.png') + self.Offset = 100 #sets table color based on it's status def getColor(self): color = None if self.__status == Status.NotReady: - color = self.GREY + color = self.__loadImg('./images/stol.png') elif self.__status == Status.Ready: - color = self.YELLOW + color = self.__loadImg('./images/kelner.png') elif self.__status == Status.Waiting: - color = self.RED + color = self.__loadImg('./images/kelner.png') elif self.__status == Status.Served: - color = self.GREEN + color = self.__loadImg('./images/kelner.png') return color + def getGuest(self): + guest = None + i = random.randint(1,3) + if i == 1: + guest = self.__loadImg('./images/wiking_blond.png') + elif i == 2: + guest = self.__loadImg('./images/wiking_rudy.png') + elif i == 3: + guest = self.__loadImg('./images/wiking_rudy2.png') + return guest + + def __loadImg(self, filePath): + return pygame.transform.scale((pygame.image.load(filePath)),(140,140)) + def draw(self, screen): - pygame.draw.circle(screen, self.getColor(), ((self.getX() * self.getRatio()) + (self.getRatio() // 2), - (self.getY() * self.getRatio()) + (self.getRatio() // 2)), - (self.getRatio() // 3)) + screen.blit(self.stol, (self.getX() * 100-20+self.Offset, self.getY() * 100-20+self.Offset)) + if self.ilosc_klientow == 1: + screen.blit(self.guest1, (self.getX() * 100 - 20+self.Offset, self.getY() * 100 - 60+self.Offset)) + elif self.ilosc_klientow == 2: + screen.blit(self.guest1, (self.getX() * 100 - 62+self.Offset, self.getY() * 100 - 60+self.Offset)) + screen.blit(self.guest2, (self.getX() * 100 - 20+self.Offset, self.getY() * 100 - 60+self.Offset)) + elif self.ilosc_klientow == 3: + screen.blit(self.guest1, (self.getX() * 100 - 62+self.Offset, self.getY() * 100 - 60+self.Offset)) + screen.blit(self.guest2, (self.getX() * 100 - 20+self.Offset, self.getY() * 100 - 60+self.Offset)) + screen.blit(self.guest3, (self.getX() * 100 + 22+self.Offset, self.getY() * 100 - 60+self.Offset)) + + if self.__status == Status.NotReady: + screen.blit(self.ksiazka, (self.getX() * 100 - 20+self.Offset, self.getY() * 100 - 20+self.Offset)) + elif self.__status == Status.Ready: + screen.blit(self.check, (self.getX() * 100 - 20+self.Offset, self.getY() * 100 - 20+self.Offset)) + elif self.__status == Status.Waiting: + if self.ilosc_klientow == 1: + screen.blit(self.plate, (self.getX() * 100 - 20+self.Offset, self.getY() * 100 - 20+self.Offset)) + elif self.ilosc_klientow == 2: + screen.blit(self.plate, (self.getX() * 100 - 62+self.Offset, self.getY() * 100 - 20+self.Offset)) + screen.blit(self.plate, (self.getX() * 100 - 20+self.Offset, self.getY() * 100 - 20+self.Offset)) + elif self.ilosc_klientow == 3: + screen.blit(self.plate, (self.getX() * 100 - 62+self.Offset, self.getY() * 100 - 20+self.Offset)) + screen.blit(self.plate, (self.getX() * 100- 20+self.Offset, self.getY() * 100 - 20+self.Offset)) + screen.blit(self.plate, (self.getX() * 100+ 22+self.Offset, self.getY() * 100 - 20+self.Offset)) + + def setOrder(self, order): self.__order = order diff --git a/kelner/src/components/Waiter.py b/kelner/src/components/Waiter.py index 3e6c829..9b64ed0 100644 --- a/kelner/src/components/Waiter.py +++ b/kelner/src/components/Waiter.py @@ -6,8 +6,10 @@ class Waiter(Drawable): def __init__(self, x, y, minX, maxX, minY, maxY, ratio): #call base class constructor Drawable.__init__(self, x, y, minX, maxX, minY, maxY, ratio) - self.__image = self.__loadImg('./images/waiter.png') + self.__image = self.__loadImg('./images/kelner.png') self.__acceptedOrders = [] + self.Offset = 100 + def moveUp(self): if self.getY() > self.getMinY(): @@ -42,7 +44,7 @@ class Waiter(Drawable): self.__acceptedOrders += [(table, table.getOrder())] def __loadImg(self, filePath): - return pygame.image.load(filePath) + return pygame.transform.scale((pygame.image.load(filePath)),(140,140)) def draw(self, screen): - screen.blit(self.__image, (self.getX() * self.getRatio(), self.getY() * self.getRatio())) \ No newline at end of file + screen.blit(self.__image, (self.getX()*100-20+self.Offset, self.getY()*100-20+self.Offset)) diff --git a/kelner/src/managers/DrawableCollection.py b/kelner/src/managers/DrawableCollection.py index 9350290..9848c68 100644 --- a/kelner/src/managers/DrawableCollection.py +++ b/kelner/src/managers/DrawableCollection.py @@ -1,7 +1,7 @@ import random from src.components.Table import Table, Status from src.components.Waiter import Waiter - +import pygame #drawable objects manager class DrawableCollection: #const, minimal distance between objects @@ -10,6 +10,7 @@ class DrawableCollection: def __init__(self): #collection that holds all drawable objects self.__drawables = [] + self.image = pygame.transform.scale((pygame.image.load('./images/Backgroud.png')),(1700,1100)) #adds drawable objects to the collection def add(self, drawable): @@ -32,6 +33,7 @@ class DrawableCollection: #draws all objects stored in collection def draw(self, screen): + screen.blit(self.image, (0, 0)) for item in self.__drawables: item.draw(screen)