Usuń 'Kinga'
This commit is contained in:
parent
a8e8264b7b
commit
7eb23ea677
162
Kinga
162
Kinga
@ -1,162 +0,0 @@
|
||||
import random
|
||||
import pygame
|
||||
|
||||
|
||||
class Gen(object):
|
||||
|
||||
def __init__(self, game):
|
||||
self.game = game
|
||||
|
||||
self.pokolenie = 0
|
||||
self.length = 0
|
||||
self.max_gen = 99
|
||||
self.index_gen = []
|
||||
self.empty()
|
||||
|
||||
def empty(self):
|
||||
for x in range(25):
|
||||
if self.game.fields[x][0] == "puste":
|
||||
self.length = self.length + 1
|
||||
self.index_gen.append(x)
|
||||
|
||||
def bbrrr(self):
|
||||
return self.index_gen
|
||||
|
||||
# tworzenie dna
|
||||
def dna_create(self):
|
||||
self.dna = []
|
||||
for x in range(self.max_gen):
|
||||
temp = []
|
||||
for y in range(self.length):
|
||||
temp.append(random.choice(["żyto", "jęczmień", "owies", "marchew", "rzodkiew", "pietruszka"]))
|
||||
self.dna.append(temp)
|
||||
|
||||
def algorytm(self):
|
||||
l = []
|
||||
first = False
|
||||
self.dna_create()
|
||||
while True:
|
||||
if first == False:
|
||||
for x in range(len(self.dna)):
|
||||
l.append(self.l_score(self.dna[x]))
|
||||
first = True
|
||||
elif first == True:
|
||||
for x in range(int(self.max_gen * 1 / 3)):
|
||||
l.append(self.l_score(self.dna[x + int(self.max_gen * 2 / 3)]))
|
||||
if max(l) >= self.length or self.pokolenie > 200:
|
||||
break
|
||||
# usuwamy najmniej odpowiadające nam dna
|
||||
for x in range(int(self.max_gen * 1 / 3)):
|
||||
del self.dna[l.index(min(l))]
|
||||
l.remove(min(l))
|
||||
for x in range(int(self.max_gen * 1 / 3)):
|
||||
temp = []
|
||||
for y in range(self.length):
|
||||
if y % 2 == 0:
|
||||
temp.append(self.dna[x][y])
|
||||
if y % 2 == 1:
|
||||
temp.append(self.dna[int(self.max_gen * 2 / 3) - 1 - x][y])
|
||||
# mutacja
|
||||
if random.randint(0, 100) <= 40:
|
||||
temp[random.randint(0, self.length - 1)] = random.choice(["żyto", "jęczmień", "owies", "marchew", "rzodkiew", "pietruszka"])
|
||||
temp[random.randint(0, self.length - 1)] = random.choice(["żyto", "jęczmień", "owies", "marchew", "rzodkiew", "pietruszka"])
|
||||
temp[random.randint(0, self.length - 1)] = random.choice(["żyto", "jęczmień", "owies", "marchew", "rzodkiew", "pietruszka"])
|
||||
self.dna.append(temp)
|
||||
self.pokolenie = self.pokolenie + 1
|
||||
print(self.dna[l.index(max(l))])
|
||||
return self.dna[l.index(max(l))]
|
||||
|
||||
def l_score(self, tab):
|
||||
suma1 = 0
|
||||
for x in range(len(tab)):
|
||||
suma = 1
|
||||
for y in self.game.neighbours[self.index_gen[x]]:
|
||||
if y in self.index_gen:
|
||||
som = tab[self.index_gen.index(y)]
|
||||
else:
|
||||
som = self.game.fields[y][0]
|
||||
if tab[x] == "żyto":
|
||||
if som == "żyto":
|
||||
suma = suma * 0.5
|
||||
elif som == "jęczmień":
|
||||
suma = suma * 1
|
||||
elif som == "owies":
|
||||
suma = suma * 0.7
|
||||
elif som == "marchew":
|
||||
suma = suma * 0
|
||||
elif som == "rzodkiew":
|
||||
suma = suma * 1
|
||||
elif som == "pietruszka":
|
||||
suma = suma * 0.6
|
||||
|
||||
elif tab[x] == "jęczmień":
|
||||
if som == "żyto":
|
||||
suma = suma * 1
|
||||
elif som == "jęczmień":
|
||||
suma = suma * 0.8
|
||||
elif som == "owies":
|
||||
suma = suma * 0.2
|
||||
elif som == "marchew":
|
||||
suma = suma * 1
|
||||
elif som == "rzodkiew":
|
||||
suma = suma * 0.2
|
||||
elif som == "pietruszka":
|
||||
suma = suma * 0.9
|
||||
|
||||
elif tab[x] == "owies":
|
||||
if som == "żyto":
|
||||
suma = suma * 0.7
|
||||
elif som == "jęczmień":
|
||||
suma = suma * 0.2
|
||||
if som == "owies":
|
||||
suma = suma * 1
|
||||
if som == "marchew":
|
||||
suma = suma * 0.3
|
||||
if som == "rzodkiew":
|
||||
suma = suma * 0
|
||||
if som == "pietruszka":
|
||||
suma = suma * 1
|
||||
|
||||
if tab[x] == "marchew":
|
||||
if som == "żyto":
|
||||
suma = suma * 0
|
||||
if som == "jęczmień":
|
||||
suma = suma * 1
|
||||
if som == "owies":
|
||||
suma = suma * 0.3
|
||||
if som == "marchew":
|
||||
suma = suma * 0.9
|
||||
if som == "rzodkiew":
|
||||
suma = suma * 1
|
||||
if som == "pietruszka":
|
||||
suma = suma * 0.8
|
||||
|
||||
if tab[x] == "rzodkiew":
|
||||
if som == "żyto":
|
||||
suma = suma * 1
|
||||
if som == "jęczmień":
|
||||
suma = suma * 0.2
|
||||
if som == "owies":
|
||||
suma = suma * 0
|
||||
if som == "marchew":
|
||||
suma = suma * 1
|
||||
if som == "rzodkiew":
|
||||
suma = suma * 0.9
|
||||
if som == "pietruszka":
|
||||
suma = suma * 0.7
|
||||
|
||||
if tab[x] == "pietruszka":
|
||||
if som == "żyto":
|
||||
suma = suma * 0.6
|
||||
if som == "jęczmień":
|
||||
suma = suma * 0.9
|
||||
if som == "owies":
|
||||
suma = suma * 1
|
||||
if som == "marchew":
|
||||
suma = suma * 0.8
|
||||
if som == "rzodkiew":
|
||||
suma = suma * 0.7
|
||||
if som == "pietruszka":
|
||||
suma = suma * 0.4
|
||||
suma1 = suma1 + suma
|
||||
return suma1
|
Loading…
Reference in New Issue
Block a user