1
0
forked from s444399/AI

Prześlij pliki do ''

This commit is contained in:
Michal Kijowski 2020-04-05 15:43:41 +00:00
parent 48d61c402a
commit c809ea1432
4 changed files with 225 additions and 0 deletions

16
boxOnTheFloor.py Normal file
View File

@ -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))

10
floor.py Normal file
View File

@ -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

163
generate.py Normal file
View File

@ -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

36
main.py Normal file
View File

@ -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()