diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 20d7957..42c9970 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -3,6 +3,10 @@
+
+
+
+
@@ -16,21 +20,12 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
+
+
-
+
@@ -42,15 +37,19 @@
-
-
+
+
+
+
+
+
-
-
+
+
@@ -58,31 +57,10 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -92,10 +70,22 @@
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -111,8 +101,6 @@
- tmp
- global
cop
jakLiczycKoszt
jakLiczyc
@@ -141,6 +129,8 @@
muta
mutate
od tego mom
+ regalsik
+ data
@@ -166,7 +156,6 @@
-
@@ -175,18 +164,19 @@
-
-
-
+
+
+
+
-
+
-
-
+
+
@@ -197,7 +187,17 @@
-
+
+
+
+
+
+
+
+
+
+
+
@@ -226,7 +226,7 @@
-
+
@@ -238,7 +238,7 @@
-
+
@@ -247,7 +247,7 @@
-
+
@@ -259,7 +259,7 @@
-
+
@@ -334,10 +334,10 @@
+
+
-
-
@@ -367,18 +367,18 @@
-
+
-
+
-
-
+
+
-
+
@@ -414,13 +414,6 @@
-
-
- file://$PROJECT_DIR$/genetyczne.py
- 94
-
-
-
@@ -470,16 +463,6 @@
-
-
-
-
-
-
-
-
-
-
@@ -487,16 +470,6 @@
-
-
-
-
-
-
-
-
-
-
@@ -504,13 +477,6 @@
-
-
-
-
-
-
-
@@ -518,16 +484,6 @@
-
-
-
-
-
-
-
-
-
-
@@ -566,16 +522,6 @@
-
-
-
-
-
-
-
-
-
-
@@ -622,33 +568,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -659,17 +578,94 @@
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/__pycache__/AStar.cpython-37.pyc b/__pycache__/AStar.cpython-37.pyc
index 09c0123..0e29d9d 100644
Binary files a/__pycache__/AStar.cpython-37.pyc and b/__pycache__/AStar.cpython-37.pyc differ
diff --git a/__pycache__/Data.cpython-37.pyc b/__pycache__/Data.cpython-37.pyc
index ca89a66..58bcd26 100644
Binary files a/__pycache__/Data.cpython-37.pyc and b/__pycache__/Data.cpython-37.pyc differ
diff --git a/__pycache__/Gene.cpython-37.pyc b/__pycache__/Gene.cpython-37.pyc
index 8e4cc9c..347d8e3 100644
Binary files a/__pycache__/Gene.cpython-37.pyc and b/__pycache__/Gene.cpython-37.pyc differ
diff --git a/__pycache__/funkcje.cpython-37.pyc b/__pycache__/funkcje.cpython-37.pyc
index d595db7..0188593 100644
Binary files a/__pycache__/funkcje.cpython-37.pyc and b/__pycache__/funkcje.cpython-37.pyc differ
diff --git a/__pycache__/generate.cpython-37.pyc b/__pycache__/generate.cpython-37.pyc
index d3839e1..1e9f23d 100644
Binary files a/__pycache__/generate.cpython-37.pyc and b/__pycache__/generate.cpython-37.pyc differ
diff --git a/__pycache__/genetyczne.cpython-37.pyc b/__pycache__/genetyczne.cpython-37.pyc
index 0348a5f..3df080b 100644
Binary files a/__pycache__/genetyczne.cpython-37.pyc and b/__pycache__/genetyczne.cpython-37.pyc differ
diff --git a/__pycache__/neurons.cpython-37.pyc b/__pycache__/neurons.cpython-37.pyc
index 4f0afb1..d1be012 100644
Binary files a/__pycache__/neurons.cpython-37.pyc and b/__pycache__/neurons.cpython-37.pyc differ
diff --git a/__pycache__/program.cpython-37.pyc b/__pycache__/program.cpython-37.pyc
index 18c84da..9432cbc 100644
Binary files a/__pycache__/program.cpython-37.pyc and b/__pycache__/program.cpython-37.pyc differ
diff --git a/__pycache__/unboxOnTheFloor.cpython-37.pyc b/__pycache__/unboxOnTheFloor.cpython-37.pyc
index 65cf2a1..487ca87 100644
Binary files a/__pycache__/unboxOnTheFloor.cpython-37.pyc and b/__pycache__/unboxOnTheFloor.cpython-37.pyc differ
diff --git a/__pycache__/wheel.cpython-37.pyc b/__pycache__/wheel.cpython-37.pyc
index 571c6d7..e1acea5 100644
Binary files a/__pycache__/wheel.cpython-37.pyc and b/__pycache__/wheel.cpython-37.pyc differ
diff --git a/__pycache__/whereDecision.cpython-37.pyc b/__pycache__/whereDecision.cpython-37.pyc
index 4e2c61a..12aa39a 100644
Binary files a/__pycache__/whereDecision.cpython-37.pyc and b/__pycache__/whereDecision.cpython-37.pyc differ
diff --git a/funkcje.py b/funkcje.py
index 4df211d..69cd5ba 100644
--- a/funkcje.py
+++ b/funkcje.py
@@ -187,38 +187,46 @@ def updateMap(data, map, mapForAstar, regals):
def okno():
- good = True
- fieldValues = multenterbox("Wprowadź warunki początkowe", "Start algorytmu genetycznego", ["Ile chrom. w generacji", "Wielkosc dziedziczonego fragmentu (x>0 and x<1)", "Wartosc mutacji (x>0 and x<1)", "Unbox: (0or 1 or 2 or 2)", "Ile generacji"])
- if(fieldValues[0].isnumeric() and (fieldValues[0]!="")):
+ try:
+ good = True
+ fieldValues = multenterbox("Wprowadź warunki początkowe", "Start algorytmu genetycznego", ["Ile chrom. w generacji", "Wielkosc dziedziczonego fragmentu (x>0 and x<1)", "Wartosc mutacji (x>0 and x<1)", "Gdzie odwieść paczkę: (0 or 1 or 2 or 3)", "Ile generacji"])
+ if(fieldValues[0] == None):
+ return 0
+ if(not(fieldValues[0].isnumeric() and (fieldValues[0]!=""))):
+ good = False
+ msgbox("Wartość nie jest liczbą", "Błąd")
+
+ if(isinstance(float(fieldValues[1]),float) and (fieldValues[1]!="")):
+ if((float(fieldValues[1])<=0) and (good==True) and (float(fieldValues[1])>= 1)):
+ msgbox("Zla wartosc fragmentu")
+ good = False
+ elif (good == True):
+ msgbox("Wartość nie jest liczbą", "Błąd")
good = False
- elif(good==True):
- msgbox("Wartość nie jest liczbą", "Błąd")
- good = False
- if(fieldValues[1].isnumeric() and (fieldValues[1]!="")):
- if((int(fieldValues[1])<=0) and (good==True) and (int(fieldValues[1])>= 1)):
- msgbox("Zla wartosc fragmentu")
+
+ if(isinstance(float(fieldValues[2]),float) and (fieldValues[2]!="")):
+ if((float(fieldValues[1])<=0) and (good==True) and (float(fieldValues[1])>= 1)):
+ msgbox("Zla wartosc mutacji")
+ good = False
+ elif (good == True):
+ msgbox("Wartość nie jest liczbą", "Błąd")
good = False
- elif (good == True):
- msgbox("Wartość nie jest liczbą", "Błąd")
- good = False
- if(fieldValues[2].isnumeric() and (fieldValues[2]!="")):
- if((int(fieldValues[1])<=0) and (good==True) and (int(fieldValues[1])>= 1)):
- msgbox("Zla wartosc mutacji")
+
+ if(fieldValues[3].isnumeric() and (fieldValues[3]!="")):
+ if(((int(fieldValues[3]) != 0) and (int(fieldValues[3]) != 1) and (int(fieldValues[3]) != 2) and (int(fieldValues[3]) != 3))):
+ msgbox("Zla wartosc unboxa")
+ good = False
+ elif (good == True):
+ msgbox("Wartość nie jest liczbą", "Błąd")
good = False
- elif (good == True):
- msgbox("Wartość nie jest liczbą", "Błąd")
- good = False
- if(fieldValues[3].isnumeric() and (fieldValues[3]!="")):
- if(((int(fieldValues[3]) != 0) or (int(fieldValues[3]) != 1) or (int(fieldValues[3]) != 2) or (int(fieldValues[3]) != 3)) and (good==True)):
- msgbox("Zla wartosc unboxa")
+
+ if(not(fieldValues[4].isnumeric() and (fieldValues[4]!=""))):
+ msgbox("Wartość nie jest liczbą", "Błąd")
good = False
- elif (good == True):
- msgbox("Wartość nie jest liczbą", "Błąd")
- good = False
- if(fieldValues[4].isnumeric() and (fieldValues[4]!="")):
- pass
- else:
- msgbox("Wartość nie jest liczbą", "Błąd")
- good = False
- if(good == True):
- return [fieldValues[0], fieldValues[1], fieldValues[2],fieldValues[3]]
\ No newline at end of file
+
+ if(good == True):
+ return [fieldValues[0], fieldValues[1], fieldValues[2],fieldValues[3], fieldValues[4]]
+
+ except:
+ return 0
+
diff --git a/genetyczne.py b/genetyczne.py
index 7812d5e..7557af6 100644
--- a/genetyczne.py
+++ b/genetyczne.py
@@ -1,13 +1,13 @@
from funkcje import *
from Gene import Gene
-def start(data, wheel):
+def start(data, wheel, dane):
- ileGeneracji = 20
- ileWPopulacji = 16
- fragment = 0.5
- mutacja = 0.05
- unbox = 3
+ ileGeneracji = int(dane[4])
+ ileWPopulacji = int(dane[0])
+ fragment = float(dane[1])
+ mutacja = float(dane[2])
+ unbox = int(dane[3])
data.kordyWozka = (wheel.ns, wheel.we)
data.jakLiczycKoszt = unbox
diff --git a/main.py b/main.py
index a2fb1cf..203a490 100644
--- a/main.py
+++ b/main.py
@@ -3,10 +3,11 @@ 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 (>=7)", "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):
@@ -31,14 +32,18 @@ def main():
elif (good == True):
msgbox("Wartość nie jest liczbą", "Błąd")
good = False
- """
if good:
- szerokosc = 15#min 6
- wysokosc = 10 #min 7
- kruche = 1
- latwopalne = 1
- radioaktywne = 1
- niebezpieczne= 1
- window = MainWindow(szerokosc, wysokosc, kruche, latwopalne, radioaktywne, niebezpieczne);
+ window = MainWindow(int(fieldValues[0]), int(fieldValues[1]), int(fieldValues[2]), int(fieldValues[3]), int(fieldValues[4]), int(fieldValues[5]));
break
+
+ """
+ szerokosc = 15#min 6
+ wysokosc = 10 #min 7
+ kruche = 1
+ latwopalne = 1
+ radioaktywne = 1
+ niebezpieczne= 1
+ window = MainWindow(szerokosc, wysokosc, kruche, latwopalne, radioaktywne, niebezpieczne);
+ """
+
main()
\ No newline at end of file
diff --git a/program.py b/program.py
index c37522c..856ccc1 100644
--- a/program.py
+++ b/program.py
@@ -88,7 +88,11 @@ class MainWindow:
elif(event.type==pygame.KEYDOWN):
if event.key == pygame.K_g:
- start(self.data,self.wheel)
+ updateMap(self.data, self.map, self.mapForAStar, self.regals)
+ dane = okno()
+ if(dane == 0):
+ continue
+ start(self.data,self.wheel, dane)
for gen in self.data.best[0]:
if(gen.unboxWczesniejszegoGenu == None):
kordStartowy = (self.wheel.ns, self.wheel.we)
@@ -97,7 +101,7 @@ class MainWindow:
zbierzBox(gen,self.data, self.moves, kordStartowy)
elif(event.key== pygame.K_r):
- self.map = randomBox(self.map, self.regals, 15)
+ self.map = randomBox(self.map, self.regals, 5)
updateMap(self.data, self.map, self.mapForAStar, self.regals)
elif len(self.moves)==0:
self.wheel.move(event, self.map)