From c809ea1432bb71c6af6e867ba7e1e2c07724bbad Mon Sep 17 00:00:00 2001 From: Michal Kijowski Date: Sun, 5 Apr 2020 15:43:41 +0000 Subject: [PATCH] =?UTF-8?q?Prze=C5=9Blij=20pliki=20do=20''?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- boxOnTheFloor.py | 16 +++++ floor.py | 10 +++ generate.py | 163 +++++++++++++++++++++++++++++++++++++++++++++++ main.py | 36 +++++++++++ 4 files changed, 225 insertions(+) create mode 100644 boxOnTheFloor.py create mode 100644 floor.py create mode 100644 generate.py create mode 100644 main.py diff --git a/boxOnTheFloor.py b/boxOnTheFloor.py new file mode 100644 index 0000000..76ca9b2 --- /dev/null +++ b/boxOnTheFloor.py @@ -0,0 +1,16 @@ +import pygame + +class BoxOnTheFloor: + def __init__(self, screen, cell, we, ns, box): + self.cell = cell + self.ns = ns + self.occupied = True + self.box = box + self.we = we + self.screen = screen + self.image = pygame.image.load(r'images/pa.png') + self.image = pygame.transform.scale(self.image, (cell, cell)) + def get(self): + return self.box + def draw(self): + self.screen.blit(self.image, (self.cell*self.ns, self.cell*self.we)) \ No newline at end of file diff --git a/floor.py b/floor.py new file mode 100644 index 0000000..565c469 --- /dev/null +++ b/floor.py @@ -0,0 +1,10 @@ +import pygame + +class Floor: + def __init__(self, screen, cell, we, ns): + self.cell = cell + self.ns = ns + self.we = we + self.screen = screen + def draw(self): + pass \ No newline at end of file diff --git a/generate.py b/generate.py new file mode 100644 index 0000000..83b5f22 --- /dev/null +++ b/generate.py @@ -0,0 +1,163 @@ +class Generate: + @staticmethod + def generate(szerokosc, wysokosc, kruche, latwopalne, radioaktywne, niebezpieczne): + # 1 - sciana + # 2 - podłoga + # 3 - regał od dołu (zwykly) + # 4 - regał od gory (zwykly) + # 5 - regał od lewej (zwykly) + # 6 - regał od prawej (zwykly) + # 7 - regał od dołu (kruche) + # 8 - regał od gory (kruche) + # 9 - regał od lewej (kruche) + # 10 - regał od prawej (kruche) + # 11 - regał od dołu (latwopalne) + # 12 - regał od gory (latwopalne) + # 13 - regał od lewej (latwopalne) + # 14 - regał od prawej (latwopalne) + # 15 - regał od dołu (radioaktywne) + # 16 - regał od gory (radioaktywne) + # 17 - regał od lewej (radioaktywne) + # 18 - regał od prawej (radioaktywne) + # 19 - regał od dołu (niebezpieczne) + # 20 - regał od gory (niebezpieczne) + # 21 - regał od lewej (niebezpieczne) + # 22 - regał od prawej (niebezpieczne) + # 23 - unboxOnTheFloor + all = [] + tmp = [] + for i in range(0, wysokosc): + for j in range(0, szerokosc): + tmp.append(2) + all.append(tmp) + tmp = [] + for i in range(0, szerokosc): + all[0][i] = 1 + all[wysokosc-1][i] = 1 + for i in range(0, wysokosc): + all[i][0] = 1 + all[i][szerokosc-1] = 1 + if (kruche>0): + for i in range(2, szerokosc-2): + all[1][i] = 7 + kruche-=1 + elif (latwopalne>0): + for i in range(2, szerokosc-2): + all[1][i] = 11 + latwopalne-=1 + elif (radioaktywne>0): + for i in range(2, szerokosc-2): + all[1][i] = 15 + radioaktywne-=1 + elif (niebezpieczne>0): + for i in range(2, szerokosc-2): + all[1][i] = 19 + niebezpieczne-=1 + else: + for i in range(2, szerokosc-2): + all[1][i] = 3 + if (kruche>0): + for i in range(2, wysokosc-2): + all[i][szerokosc-2] = 9 + kruche-=1 + elif (latwopalne>0): + for i in range(2, wysokosc-2): + all[i][szerokosc-2] = 13 + latwopalne-=1 + elif (radioaktywne>0): + for i in range(2, wysokosc-2): + all[i][szerokosc-2] = 17 + radioaktywne-=1 + elif (niebezpieczne>0): + for i in range(2, wysokosc-2): + all[i][szerokosc-2] = 21 + niebezpieczne-=1 + else: + for i in range(2, wysokosc-2): + all[i][szerokosc-2] = 5 + if (kruche>0): + for i in range(2, szerokosc-2): + all[wysokosc-2][i] = 8 + kruche-=1 + elif (latwopalne>0): + for i in range(2, szerokosc-2): + all[wysokosc-2][i] = 12 + latwopalne-=1 + elif (radioaktywne>0): + for i in range(2, szerokosc-2): + all[wysokosc-2][i] = 16 + radioaktywne-=1 + elif (niebezpieczne>0): + for i in range(2, szerokosc-2): + all[wysokosc-2][i] = 20 + niebezpieczne-=1 + else: + for i in range(2, szerokosc-2): + all[wysokosc-2][i] = 4 + if (kruche>0): + for i in range(2, wysokosc-2): + all[i][1] = 10 + kruche-=1 + elif (latwopalne>0): + for i in range(2, wysokosc-2): + all[i][1] = 14 + latwopalne-=1 + elif (radioaktywne>0): + for i in range(2, wysokosc-2): + all[i][1] = 18 + radioaktywne-=1 + elif (niebezpieczne>0): + for i in range(2, wysokosc-2): + all[i][1] = 22 + niebezpieczne-=1 + else: + for i in range(2, wysokosc-2): + all[i][1] = 6 + for j in range(3, szerokosc-4, 3): + if (kruche > 0): + for i in range(3, wysokosc - 3): + all[i][j] = 9 + kruche -= 1 + elif (latwopalne > 0): + for i in range(3, wysokosc - 3): + all[i][j] = 13 + latwopalne -= 1 + elif (radioaktywne > 0): + for i in range(3, wysokosc - 3): + all[i][j] = 17 + radioaktywne -= 1 + elif (niebezpieczne > 0): + for i in range(3, wysokosc - 3): + all[i][j] = 21 + niebezpieczne -= 1 + else: + for i in range(3, wysokosc - 3): + all[i][j] = 5 + if (kruche > 0): + for i in range(3, wysokosc - 3): + all[i][j+1] = 10 + kruche -= 1 + elif (latwopalne > 0): + for i in range(3, wysokosc - 3): + all[i][j+1] = 14 + latwopalne -= 1 + elif (radioaktywne > 0): + for i in range(3, wysokosc - 3): + all[i][j+1] = 18 + radioaktywne -= 1 + elif (niebezpieczne > 0): + for i in range(3, wysokosc - 3): + all[i][j+1] = 22 + niebezpieczne -= 1 + else: + for i in range(3, wysokosc - 3): + all[i][j+1] = 6 + all[1][1] = 1 + all[1][szerokosc-2] = 1 + all[wysokosc-2][1] = 1 + all[wysokosc-2][szerokosc-2] = 1 + all[0][2] = 2 + all[1][2] = 2 + all[wysokosc-2][szerokosc-3] = 2 + all[wysokosc-1][szerokosc-3] = 23 + return all \ No newline at end of file diff --git a/main.py b/main.py new file mode 100644 index 0000000..8ae9b52 --- /dev/null +++ b/main.py @@ -0,0 +1,36 @@ +from easygui import * +from program import MainWindow +import os; + +def main(): + good = False + while (True): + good = True + fieldValues = multenterbox("Wprowadź warunki początkowe", "Start programu", ["Szerekość kraty (>=6)", "Wysokość kraty (>=5)", "Ilość regałów kruchych", "Ilość regałów łatwopalnych", "Ilość regałów radioaktywnych", "Ilość regałów niebezpiecznych"]) + if(fieldValues[0].isnumeric() and (fieldValues[0]!="")): + if(int(fieldValues[0])<=5): + msgbox("Szerokość kraty jest zbyt mała, aby można było uruchomić program", "Błąd") + good = False + elif(good==True): + msgbox("Wartość nie jest liczbą", "Błąd") + good = False + if(fieldValues[1].isnumeric() and (fieldValues[0]!="")): + if((int(fieldValues[1])<=4) and (good==True)): + msgbox("Wysokość kraty jest zbyt mała, aby można było uruchomić program", "Błąd") + good = False + elif (good == True): + msgbox("Wartość nie jest liczbą", "Błąd") + good = False + if ((fieldValues[2].isnumeric()) and (fieldValues[3].isnumeric()) and (fieldValues[4].isnumeric()) and (fieldValues[5].isnumeric()) and (fieldValues[2]!="") and (fieldValues[3]!="") and (fieldValues[4]!="") and (fieldValues[5]!="") and (good==True)): + sum = int(fieldValues[2])+int(fieldValues[3])+int(fieldValues[4])+int(fieldValues[5]) + allow = 6+(((int(fieldValues[0])-6)//3)*2) + if(sum>allow): + msgbox("Magazyn zbyt mały co by pomieścił tyle regałów", "Błąd") + good = False + elif (good == True): + msgbox("Wartość nie jest liczbą", "Błąd") + good = False + if good: + window = MainWindow(int(fieldValues[0]), int(fieldValues[1]), int(fieldValues[2]), int(fieldValues[3]), int(fieldValues[4]), int(fieldValues[5])); + break +main() \ No newline at end of file