def __init__(self, mundo, x, y, nome_arq="mao_aberta.png"): Guarana.__init__(self, mundo, x, y, nome_arq) # self.mundo.rem(self) #self.mpf = False self.mao_fechada = carregar_imagem("mao_fechada.png") self.mao_fechada_rect = self.mao_fechada.get_bounding_rect() self.mao_fechada_rect.x, self.mao_fechada_rect.y = x, y self.alvo = None # Caso esteja segurando algo, aponta para esse algo self.comportamento = False # Alterna comportamento drag and drop self.sobre = None # Algo q o mouse esteja sobrevoando
def createNewOrganism(self, code, posX, posY, world): if (code == 0 or code == 'F'): return Fox(posX, posY, world) elif (code == 1 or code == 'W'): return Wolf(posX, posY, world) elif (code == 2 or code == 'H'): return Human(posX, posY, world) elif (code == 3 or code == 'A'): return Antelope(posX, posY, world) elif (code == 4 or code == 'C'): return CyberSheep(posX, posY, world) elif (code == 5 or code == 'S'): return Sheep(posX, posY, world) elif (code == 6 or code == 'T'): return Turtle(posX, posY, world) elif (code == 7 or code == 'b'): return Belladonna(posX, posY, world) elif (code == 8 or code == 's'): return HeracleumSosnowkyi(posX, posY, world) elif (code == 9 or code == 'o'): return Sonchus(posX, posY, world) elif (code == 10 or code == 'u'): return Guarana(posX, posY, world) elif (code == 11 or code == 'g'): return Grass(posX, posY, world) else: return None
def create_organism(self, organism_creator, x, y): organism_position = Position(x, y) if 50 - organism_creator < 2: self.add_organism_to_world(Antelope(self, organism_position)) elif 50 - organism_creator < 4: self.add_organism_to_world( SosnowskyBorscht(self, organism_position)) elif 50 - organism_creator < 6: self.add_organism_to_world(Guarana(self, organism_position)) elif 50 - organism_creator < 8: self.add_organism_to_world(Fox(self, organism_position)) elif 50 - organism_creator < 9: self.add_organism_to_world(Thistle(self, organism_position)) elif 50 - organism_creator < 13: self.add_organism_to_world(Sheep(self, organism_position)) elif 50 - organism_creator < 17: self.add_organism_to_world(Grass(self, organism_position)) elif 50 - organism_creator < 19: self.add_organism_to_world(WolfBerries(self, organism_position)) elif 50 - organism_creator < 22: self.add_organism_to_world(Wolf(self, organism_position)) elif 50 - organism_creator < 24: self.add_organism_to_world(Turtle(self, organism_position)) elif 50 - organism_creator < 25: self.add_organism_to_world(CyberSheep(self, organism_position))
def create_organism_by_name(self, organism_species, x, y, cooldown=-1): organism_position = Position(x, y) if organism_species == "Antelope": self.add_organism_to_world(Antelope(self, organism_position)) if organism_species == "SosnowskyBorscht": self.add_organism_to_world( SosnowskyBorscht(self, organism_position)) if organism_species == "Guarana": self.add_organism_to_world(Guarana(self, organism_position)) if organism_species == "Fox": self.add_organism_to_world(Fox(self, organism_position)) if organism_species == "Thistle": self.add_organism_to_world(Thistle(self, organism_position)) if organism_species == "Sheep": self.add_organism_to_world(Sheep(self, organism_position)) if organism_species == "Grass": self.add_organism_to_world(Grass(self, organism_position)) if organism_species == "WolfBerries": self.add_organism_to_world(WolfBerries(self, organism_position)) if organism_species == "Wolf": self.add_organism_to_world(Wolf(self, organism_position)) if organism_species == "Turtle": self.add_organism_to_world(Turtle(self, organism_position)) if organism_species == "CyberSheep": self.add_organism_to_world(CyberSheep(self, organism_position)) if organism_species == "Human": self.create_human(organism_position, cooldown)
def dodaj_organizm(self, x, y, nazwa): if nazwa == "Cyberowca": self.__plansza[y][x] = Cyberowca(self, x, y) elif nazwa == "Czlowiek": self.__plansza[y][x] = Czlowiek(self, x, y) if nazwa == "Wilk": self.__plansza[y][x] = Wilk(self, x, y) elif nazwa == "Owca": self.__plansza[y][x] = Owca(self, x, y) elif nazwa == "Lis": self.__plansza[y][x] = Lis(self, x, y) elif nazwa == "Zolw": self.__plansza[y][x] = Zolw(self, x, y) elif nazwa == "Antylopa": self.__plansza[y][x] = Antylopa(self, x, y) elif nazwa == "Trawa": self.__plansza[y][x] = Trawa(self, x, y) elif nazwa == "Mlecz": self.__plansza[y][x] = Mlecz(self, x, y) elif nazwa == "Guarana": self.__plansza[y][x] = Guarana(self, x, y) elif nazwa == "Jagoda": self.__plansza[y][x] = Wilcza_jagoda(self, x, y) elif nazwa == "Barszcz": self.__plansza[y][x] = Barszcz_sosnowskiego(self, x, y) self.__barszcz.append(self.__plansza[y][x]) if (self.__plansza[y][x] != None): self.__ruch.append(self.__plansza[y][x]) self.__powiadomienia.powiadomienia_pojedyncze( self.__plansza[y][x].get_nazwa(), POWIADOMIENIA_ENUM.NARODZINY)
def ustawOrgPocz(self): #dopisz nowo dodane organizmy tutaj for typ in range(Pole.SIZE - 1): if typ == Pole.CZLOWIEK: self.organizmyPoczatkowe.append(Czlowiek( 0, 0, self.tura, self)) elif typ == Pole.TRAWA: self.organizmyPoczatkowe.append(Trawa(0, 0, self.tura, self)) elif typ == Pole.OWCA: self.organizmyPoczatkowe.append(Owca(0, 0, self.tura, self)) elif typ == Pole.WILK: self.organizmyPoczatkowe.append(Wilk(0, 0, self.tura, self)) elif typ == Pole.LIS: self.organizmyPoczatkowe.append(Lis(0, 0, self.tura, self)) elif typ == Pole.ZOLW: self.organizmyPoczatkowe.append(Zolw(0, 0, self.tura, self)) elif typ == Pole.ANTYLOPA: self.organizmyPoczatkowe.append(Antylopa( 0, 0, self.tura, self)) elif typ == Pole.MLECZ: self.organizmyPoczatkowe.append(Mlecz(0, 0, self.tura, self)) elif typ == Pole.GUARANA: self.organizmyPoczatkowe.append(Guarana(0, 0, self.tura, self)) elif typ == Pole.WILCZE_JAG: self.organizmyPoczatkowe.append( WilczeJagody(0, 0, self.tura, self)) elif typ == Pole.BARSZCZ: self.organizmyPoczatkowe.append( BarszczSosnowskiego(0, 0, self.tura, self))
def wczytaj(self): i = 1 while i < self.ilosc_org: if self.vec[i].getSymbol() != 'C': self.usunOrganizm(self.vec[i]) else: i = i + 1 self.T.delete(1.0, END) self.dodajDoRaport("Wczytano Zapis Gry\n") plik = open('D:\save.txt', 'r') try: i = 0 n = int(linecache.getline('D:\save.txt', i + 1)) while i < 4 * n: symbol = linecache.getline('D:\save.txt', i + 2) ssila = linecache.getline('D:\save.txt', i + 3) sX = linecache.getline('D:\save.txt', i + 4) sY = linecache.getline('D:\save.txt', i + 5) sila = int(ssila) X = int(sX) Y = int(sY) if symbol == 'C\n': self.vec[0].setSila(sila) self.przeniesOrganizm(self.vec[0].get_pozX(), self.vec[0].get_pozY(), X, Y) self.vec[0].set_pozX(X) self.vec[0].set_pozY(Y) elif symbol == 'Antylope\n': self.dodajOrganizm(Antylopa(X, Y, self), self) self.vec[self.ilosc_org - 1].setSila(sila) elif symbol == 'Barszcz\n': self.dodajOrganizm(BarszczSosnowskiego(X, Y, self), self) elif symbol == 'Cyber_Owce\n': self.dodajOrganizm(CyberOwca(X, Y, self), self) self.vec[self.ilosc_org - 1].setSila(sila) elif symbol == 'Guarane\n': self.dodajOrganizm(Guarana(X, Y, self), self) elif symbol == 'Lisa\n': self.dodajOrganizm(Lis(X, Y, self), self) self.vec[self.ilosc_org - 1].setSila(sila) elif symbol == 'Mlecza\n': self.dodajOrganizm(Mlecz(X, Y, self), self) elif symbol == 'Owce\n': self.dodajOrganizm(Owca(X, Y, self), self) self.vec[self.ilosc_org - 1].setSila(sila) elif symbol == 'Trawe\n': self.dodajOrganizm(Trawa(X, Y, self), self) elif symbol == 'Wilcze_Jagody\n': self.dodajOrganizm(WilczeJagody(X, Y, self), self) self.vec[self.ilosc_org - 1].setSila(sila) elif symbol == 'Wilka\n': self.dodajOrganizm(Wilk(X, Y, self), self) self.vec[self.ilosc_org - 1].setSila(sila) elif symbol == 'Zolwia\n': self.dodajOrganizm(Zolw(X, Y, self), self) self.vec[self.ilosc_org - 1].setSila(sila) i = i + 4 finally: plik.close()
def Create(self): switcher = { 0 : lambda : Antelope(), 1 : lambda : CyberSheep(), 2 : lambda : Fox(), 3 : lambda : Sheep(), 4 : lambda : Turtle(), 5 : lambda : Wolf(), 6 : lambda : Belladonna(), 7 : lambda : Dandelion(), 8 : lambda : Grass(), 9 : lambda : Guarana(), 10: lambda : HeracleumSosnowskyi(), } func = switcher.get(self.value, None) return func()
def CreateChar(t): switcher = { 'A' : lambda : Antelope(), 'C' : lambda : CyberSheep(), 'F' : lambda : Fox(), 'S' : lambda : Sheep(), 'T' : lambda : Turtle(), 'W' : lambda : Wolf(), 'B' : lambda : Belladonna(), 'D' : lambda : Dandelion(), 'G' : lambda : Grass(), 'U' : lambda : Guarana(), 'H' : lambda : HeracleumSosnowskyi(), 'P' : lambda : Human() } func = switcher.get(t, None) return func()
def umiescOrganizmy(self): wilk = Wilk(self) owca = Owca(self) trawa = Trawa(self) guarana = Guarana(self) mlecz = Mlecz(self) jagody = Wilcze_Jagody(self) barszcz = Barszcz_Sosnowskiego(self) cyber = Cyber_owca(self) zolw = Zolw(self) lis = Lis(self) wilk2 = Wilk(self) wilk3 = Wilk(self) owca2 = Owca(self) owca3 = Owca(self) antylopa = Antylopa(self) czlowiek = Czlowiek(self) self.rysuj_plansze()
def CreateString(s): switcher = { "Antelope" : lambda : Antelope(), "CyberSheep" : lambda : CyberSheep(), "Fox" : lambda : Fox(), "Sheep" : lambda : Sheep(), "Turtle" : lambda : Turtle(), "Wolf" : lambda : Wolf(), "Belladonna" : lambda : Belladonna(), "Dandelion" : lambda : Dandelion(), "Grass" : lambda : Grass(), "Guarana" : lambda : Guarana(), "Heracleum" : lambda : HeracleumSosnowskyi(), "Player" : lambda : Human() } func = switcher.get(s, None) return func()
def dodajZwierze(self): zn = 'W' x, y = 10, 10 button = self.sender() name = button.objectName().split(",", 1) y, x = name y = int(y) x = int(x) zn, ok = QtGui.QInputDialog.getText( self, "Wysokosc", """Podaj znak odpowiadajacy danemu zwierzeciu""") if (self.getPlansza(y, x) == ' '): tmp = None if (zn == 'A'): tmp = Antylopa(self) elif (zn == 'C'): tmp = Cyber_owca(self) elif (zn == 'L'): tmp = Lis(self) elif (zn == 'O'): tmp = Owca(self) elif (zn == 'W'): tmp = Wilk(self) elif (zn == 'Z'): tmp = Zolw(self) elif (zn == 'T'): tmp = Trawa(self) elif (zn == 'M'): tmp = Mlecz(self) elif (zn == 'G'): tmp = Guarana(self) elif (zn == 'J'): tmp = Wilcze_Jagody(self) elif (zn == 'B'): tmp = Barszcz_Sosnowskiego(self) if (tmp is not None): self.dodajDoPlanszy(tmp.getPolozenie_y(), tmp.getPolozenie_x(), ' ') tmp.setPolozenie_x(x) tmp.setPolozenie_y(y) tmp.setDelay(True) self.dodajDoPlanszy(tmp.getPolozenie_y(), tmp.getPolozenie_x(), tmp.getSymbol()) self.rysuj_plansze()
class Swiat(object): def __init__(self): pass mapa_organizmow = [[Organizm() for i in range(20)] for j in range(20)] pola_mapy = [[0 for x in range(20)] for x in range(20)] organizmy = [] def dodajZwierze(zwierze, organizmy, mapa_organizmow): x = zwierze.getPolozenie_x() y = zwierze.getPolozenie_y() organizmy.append(zwierze) mapa_organizmow[x][y] = zwierze def rysujSwiat(mapa_organizmow, pola_mapy): for x in range(20): for y in range(20): if mapa_organizmow[x][y] == None or self.mapa_organizmow[x][y].getZnak() == ".": self.pola_mapy[x][y]["text"] = " " else: self.pola_mapy[x][y]["text"] = mapa_organizmow[x][y].getZnak() self.root.mainloop() def akcja(organizmy, mapa_organizmow, pola_mapy, root): def dodajDziecko(zwierze, organizmy, mapa_organizmow, x, y): organizmy.append(zwierze) mapa_organizmow[x][y] = zwierze organizmy.append(zwierze) mapa_organizmow[x][y] = zwierze ilosc = len(organizmy) for x in range(len(organizmy)): #print(len(organizmy)) if organizmy[x] == None or organizmy[x].getCzySmierc == 1: print("cokolwiek") temp_x = getPolozenie_x() temp_y = getPolozenie_y() mapa_organizmow[temp_x][temp_y] = None mapa_organizmow[temp_x][temp_y] = Organizm() #organizmy.pop(organizmy.x()) del organizmy[x] if organizmy[x] != None: organizmy.sort(key=lambda organizmy:organizmy.inicjatywa) organizmy[x].akcja(mapa_organizmow) #print("---->", organizmy[x].getZnak()) if organizmy[x] == None or organizmy[x].getCzySmierc == 1: print("cokolwiek") temp_x = getPolozenie_x() temp_y = getPolozenie_y() mapa_organizmow[temp_x][temp_y] = None mapa_organizmow[temp_x][temp_y] = Organizm() #organizmy.pop(organizmy.x()) del organizmy[x] if organizmy[x].getCzyRozmnazac() == 1: ##rozmnazam juz ktoryObieg = 0 matka_x = organizmy[x].getPolozenie_x() matka_y = organizmy[x].getPolozenie_y() losuje_x = randint(-1, 1) losuje_y = randint(-1, 1) temp_x = 0 temp_y = 0 while True: if ktoryObieg > 300: break if losuje_x != 0 or losuje_y != 0: temp_x = losuje_x + matka_x temp_y = losuje_y + matka_y if 20 > temp_x >= 0 and 20 > temp_y >= 0: break losuje_x = randint(-1, 1) losuje_y = randint(-1, 1) ktoryObieg += 1 organizmy[x].setCzyRozmnazac(0) if organizmy[x] == None: pass elif organizmy[x].getZnak() == "W": dziecko = Wilk(temp_x, temp_y) elif organizmy[x].getZnak() == "O": dziecko = Owca(temp_x, temp_y) elif organizmy[x].getZnak() == "L": dziecko = Lew(temp_x, temp_y) elif organizmy[x].getZnak() == "S": dziecko = Lis(temp_x, temp_y) elif organizmy[x].getZnak() == "K": dziecko = Krowa(temp_x, temp_y) elif organizmy[x].getZnak() == "T": dziecko = Trawa(temp_x, temp_y) elif organizmy[x].getZnak() == "G": dziecko = Guarana(temp_x, temp_y) elif organizmy[x].getZnak() == "J": dziecko = Jagoda(temp_x, temp_y) dodajDziecko(dziecko, organizmy, mapa_organizmow, temp_x, temp_y) print(dziecko.getZnak(), "rozmnozylo sie") def rysujSwiat(mapa_organizmow, pola_mapy, root): for x in range(20): for y in range(20): if mapa_organizmow[x][y] == None or mapa_organizmow[x][y].getZnak() == ".": pola_mapy[x][y]["text"] = " " else: pola_mapy[x][y]["text"] = mapa_organizmow[x][y].getZnak() root.mainloop() rysujSwiat(mapa_organizmow, pola_mapy, root) wilk2 = Wilk(4, 5) wilk3 = Wilk(5, 4) owca = Owca(5, 5) owca1 = Owca(10, 10) lis = Lis(12, 15) lis2 = Lis(7, 8) lew = Lew(3, 8) lew2 = Lew(16, 16) krowa = Krowa(19, 19) krowa2 = Krowa(18, 18) trawa = Trawa(8, 8) guarana = Guarana(3, 3) jagoda = Jagoda(14, 14) dodajZwierze(wilk2, organizmy, mapa_organizmow) dodajZwierze(wilk3, organizmy, mapa_organizmow) dodajZwierze(owca, organizmy, mapa_organizmow) dodajZwierze(owca1, organizmy, mapa_organizmow) dodajZwierze(lew, organizmy, mapa_organizmow) dodajZwierze(lew2, organizmy, mapa_organizmow) dodajZwierze(lis, organizmy, mapa_organizmow) dodajZwierze(lis2, organizmy, mapa_organizmow) dodajZwierze(krowa, organizmy, mapa_organizmow) dodajZwierze(krowa2, organizmy, mapa_organizmow) dodajZwierze(trawa, organizmy, mapa_organizmow) dodajZwierze(guarana, organizmy, mapa_organizmow) dodajZwierze(jagoda, organizmy, mapa_organizmow) root = Tk() root.title("Swiat Dzungli") root.geometry("800x650") app = Frame(root) app.grid() for x in range(20): for y in range(20): if mapa_organizmow[x][y].getZnak() is ".": pola_mapy[x][y] = Button(app, text = " ") pola_mapy[x][y].grid(column = x, row = y) else: pola_mapy[x][y] = Button(app, text = mapa_organizmow[x][y].getZnak()) pola_mapy[x][y].grid(column = x, row = y) wskaznik = functools.partial(akcja, organizmy, mapa_organizmow, pola_mapy, root) nowaTura = Button(app, text = "Nowa Tura") nowaTura.grid(column = 25) nowaTura["command"] = wskaznik listaZapisu = [] def zapisujemy(listaZapisu, organizmy, mapa_organizmow): outFile = open('zapis.txt', 'w') lita = [] for x in range(20): for y in range(20): if mapa_organizmow[x][y] != None or mapa_organizmow[x][y].getZnak() != ".": listaZapisu.append(str(x)) listaZapisu.append(' ') listaZapisu.append(str(y)) listaZapisu.append(' ') listaZapisu.append(str(mapa_organizmow[x][y].getZnak())) listaZapisu.append(' ') listaZapisu.append(str(mapa_organizmow[x][y].getInicjatywa())) listaZapisu.append(' ') listaZapisu.append(str(mapa_organizmow[x][y].getSila())) listaZapisu.append('\n') tekst = ''.join(listaZapisu) outFile.write(tekst) outFile.close() def wczytujemy(organizmy, mapa_organizmow, wskaznik, root, pola_mapy): def rysujSwiat(mapa_organizmow, pola_mapy, root): for x in range(20): for y in range(20): if mapa_organizmow[x][y] == None or mapa_organizmow[x][y].getZnak() == ".": pola_mapy[x][y]["text"] = " " else: pola_mapy[x][y]["text"] = mapa_organizmow[x][y].getZnak() root.mainloop() for x in range(20): for y in range(20): mapa_organizmow[x][y] = None del organizmy[ : ] #outFile = open('zapis.txt', 'r') try: outFile = open('zapis.txt', 'r') except ZeroDivisionError: print("Nic tu nie ma") finally: print("Daruje ci ten czas") for line in outFile: spacja = [] spacja = line.split(' ') x = int(spacja[0]) y = int(spacja[1]) znak = spacja[2] #print(znak) inicjatywa = int(spacja[3]) sila = int(spacja[4]) if znak == 'O': mapa_organizmow[x][y] = Owca(x, y) mapa_organizmow[x][y].setSila(sila) mapa_organizmow[x][y].setInicjatywa(inicjatywa) mapa_organizmow[x][y].setZnak(znak) organizmy.append(mapa_organizmow[x][y]) elif znak == 'W': mapa_organizmow[x][y] = Wilk(x, y) mapa_organizmow[x][y].setSila(sila) mapa_organizmow[x][y].setInicjatywa(inicjatywa) mapa_organizmow[x][y].setZnak(znak) organizmy.append(mapa_organizmow[x][y]) elif znak == 'L': mapa_organizmow[x][y] = Lew(x, y) mapa_organizmow[x][y].setSila(sila) mapa_organizmow[x][y].setInicjatywa(inicjatywa) mapa_organizmow[x][y].setZnak(znak) organizmy.append(mapa_organizmow[x][y]) elif znak == 'L': mapa_organizmow[x][y] = Lis(x, y) mapa_organizmow[x][y].setSila(sila) mapa_organizmow[x][y].setInicjatywa(inicjatywa) mapa_organizmow[x][y].setZnak(znak) organizmy.append(mapa_organizmow[x][y]) elif znak == 'K': mapa_organizmow[x][y] = Krowa(x, y) mapa_organizmow[x][y].setSila(sila) mapa_organizmow[x][y].setInicjatywa(inicjatywa) mapa_organizmow[x][y].setZnak(znak) organizmy.append(mapa_organizmow[x][y]) elif znak == 'T': mapa_organizmow[x][y] = Trawa(x, y) mapa_organizmow[x][y].setSila(sila) mapa_organizmow[x][y].setInicjatywa(inicjatywa) mapa_organizmow[x][y].setZnak(znak) organizmy.append(mapa_organizmow[x][y]) elif znak == 'G': mapa_organizmow[x][y] = Guarana(x, y) mapa_organizmow[x][y].setSila(sila) mapa_organizmow[x][y].setInicjatywa(inicjatywa) mapa_organizmow[x][y].setZnak(znak) organizmy.append(mapa_organizmow[x][y]) elif znak == 'J': mapa_organizmow[x][y] = Jagoda(x, y) mapa_organizmow[x][y].setSila(sila) mapa_organizmow[x][y].setInicjatywa(inicjatywa) mapa_organizmow[x][y].setZnak(znak) organizmy.append(mapa_organizmow[x][y]) rysujSwiat(mapa_organizmow, pola_mapy, root) outFile.close() #print (listaZapisu) Zapisz = Button(app, text = "Zapisz") Zapisz.grid(column = 25) wskaznikZapisu = functools.partial(zapisujemy, listaZapisu, organizmy, mapa_organizmow) Zapisz["command"] = wskaznikZapisu Wczytaj = Button(app, text = "Wczytaj") wskaznikWczytu = functools.partial(wczytujemy, organizmy, mapa_organizmow, wskaznik, root, pola_mapy) Wczytaj.grid(column = 25) Wczytaj['command'] = wskaznikWczytu root.mainloop()
self.close() self.Open = Plansza(obiekt) self.Open.show() self.repaint() def cos(self, plansza1, plansza2): plansza1 = plansza2 if __name__ == '__main__': app = QApplication(sys.argv) s = Swiat(20, 20) ex = Plansza(s) s.dodaj_organizm_z_losowaniem(CyberOwca(s, Polozenie())) s.dodaj_organizm_z_losowaniem(Antylopa(s, Polozenie())) s.dodaj_organizm_z_losowaniem(BarszczSosnowskiego(s, Polozenie())) s.dodaj_organizm_z_losowaniem(Czlowiek(s, Polozenie())) s.dodaj_organizm_z_losowaniem(Guarana(s, Polozenie())) s.dodaj_organizm_z_losowaniem(Lis(s, Polozenie())) s.dodaj_organizm_z_losowaniem(Mlecz(s, Polozenie())) s.dodaj_organizm_z_losowaniem(Owca(s, Polozenie())) s.dodaj_organizm_z_losowaniem(Trawa(s, Polozenie())) s.dodaj_organizm_z_losowaniem(WilczeJagody(s, Polozenie())) s.dodaj_organizm_z_losowaniem(Wilk(s, Polozenie())) s.dodaj_organizm_z_losowaniem(Zolw(s, Polozenie())) ex.repaint() sys.exit(app.exec_())
def wczytajSwiat(self): s1 = None isFile = False i = 0 moc_specjalna = 0 cooldown = False liczba_tur_mocy = 0 liczba_tur_cooldown = 0 tmp = None with open("swiat.txt", 'r') as file: isFile = True for line in file: line_split = line.split(" ") if (i == 0): wysokosc, szerokosc, numer_tury, znak_nowej_lini = line_split s1 = Swiat(int(wysokosc), int(szerokosc)) s1.setNumerTury(int(numer_tury)) else: znak = line_split[0] polozenie_y = int(line_split[1]) polozenie_x = int(line_split[2]) sila = int(line_split[3]) if (znak == 'Y'): moc_specjalna = int(line_split[4]) cooldown = line_split[5] liczba_tur_mocy = int(line_split[6]) liczba_tur_cooldown = int(line_split[7]) if (znak == 'A'): tmp = Antylopa(s1) elif (znak == 'C'): tmp = Cyber_owca(s1) elif (znak == 'L'): tmp = Lis(s1) elif (znak == 'O'): tmp = Owca(s1) elif (znak == 'W'): tmp = Wilk(s1) elif (znak == 'Z'): tmp = Zolw(s1) elif (znak == 'T'): tmp = Trawa(s1) elif (znak == 'M'): tmp = Mlecz(s1) elif (znak == 'G'): tmp = Guarana(s1) elif (znak == 'J'): tmp = Wilcze_Jagody(s1) elif (znak == 'B'): tmp = Barszcz_Sosnowskiego(s1) elif (znak == 'Y'): tmp = Czlowiek(s1) if (tmp is not None): if (tmp.getSymbol() == 'Y'): tmp.setCooldown(cooldown) tmp.setLiczbaTurCooldown(liczba_tur_cooldown) tmp.setLiczbaTurMocy(liczba_tur_mocy) tmp.setMocSpecjalna(moc_specjalna) s1.dodajDoPlanszy(tmp.getPolozenie_y(), tmp.getPolozenie_x(), ' ') tmp.setPolozenie_y(polozenie_y) tmp.setPolozenie_x(polozenie_x) tmp.setSila(sila) s1.dodajDoPlanszy(tmp.getPolozenie_y(), tmp.getPolozenie_x(), tmp.getSymbol()) i += 1 if (isFile): self.close() s1.rysuj_plansze()
def __init__(self, mundo, x, y, nome_arq="lixo.png"): Guarana.__init__(self, mundo, x, y, nome_arq) self.selecionado = False self.pos_anterior = (self.rect.x, self.rect.y) self.offset = (0, 0)
def akcja(self, zasieg=1): szansa = random.randint(0, 19) if (szansa == 0): wysokosc = self.swiat.getWysokosc() szerokosc = self.swiat.getSzerokosc() mozliwe_kierunki = [0, 0, 0, 0, 0, 0, 0, 0] for i in range(0, 8): mozliwe_kierunki[i] = 0 if (self.polozenie_y + 1 < wysokosc and self.swiat.getPlansza( self.polozenie_y + 1, self.polozenie_x) == ' '): mozliwe_kierunki[0] = 1 if (self.polozenie_y - 1 >= 0 and self.swiat.getPlansza( self.polozenie_y - 1, self.polozenie_x) == ' '): mozliwe_kierunki[1] = 1 if (self.polozenie_x - 1 >= 0 and self.swiat.getPlansza( self.polozenie_y, self.polozenie_x - 1) == ' '): mozliwe_kierunki[2] = 1 if (self.polozenie_x + 1 < szerokosc and self.swiat.getPlansza( self.polozenie_y, self.polozenie_x + 1) == ' '): mozliwe_kierunki[3] = 1 if (self.polozenie_y - 1 >= 0 and self.polozenie_x - 1 >= 0 and self.swiat.getPlansza( self.polozenie_y - 1, self.polozenie_x - 1) == ' '): mozliwe_kierunki[4] = 1 if (self.polozenie_y + 1 < wysokosc and self.polozenie_x + 1 < szerokosc and self.swiat.getPlansza(self.polozenie_y + 1, self.polozenie_x + 1) == ' '): mozliwe_kierunki[5] = 1 if (self.polozenie_y - 1 >= 0 and self.polozenie_x + 1 < szerokosc and self.swiat.getPlansza(self.polozenie_y - 1, self.polozenie_x + 1) == ' '): mozliwe_kierunki[6] = 1 if (self.polozenie_y + 1 < wysokosc and self.polozenie_x - 1 >= 0 and self.swiat.getPlansza( self.polozenie_y + 1, self.polozenie_x - 1) == ' '): mozliwe_kierunki[7] = 1 ile = 0 for i in range(0, 8): if (mozliwe_kierunki[i] == 1): ile += 1 if (self.swiat.getIloscOrganizmow() >= self.swiat.getSzerokosc() * self.swiat.getWysokosc() or ile == 0): return else: random1 = random.randint(0, 7) while (mozliwe_kierunki[random1] != 1): random1 = random.randint(0, 7) if (random1 == 0): polozenie_x_dziecko = self.polozenie_x polozenie_y_dziecko = self.polozenie_y + 1 elif (random1 == 1): polozenie_y_dziecko = self.polozenie_y - 1 polozenie_x_dziecko = self.polozenie_x elif (random1 == 2): polozenie_y_dziecko = self.polozenie_y polozenie_x_dziecko = self.polozenie_x - 1 elif (random1 == 3): polozenie_y_dziecko = self.polozenie_y polozenie_x_dziecko = self.polozenie_x + 1 elif (random1 == 4): polozenie_y_dziecko = self.polozenie_y - 1 polozenie_x_dziecko = self.polozenie_x - 1 elif (random1 == 5): polozenie_y_dziecko = self.polozenie_y + 1 polozenie_x_dziecko = self.polozenie_x + 1 elif (random1 == 6): polozenie_y_dziecko = self.polozenie_y - 1 polozenie_x_dziecko = self.polozenie_x + 1 else: polozenie_y_dziecko = self.polozenie_y + 1 polozenie_x_dziecko = self.polozenie_x - 1 from Trawa import Trawa from Mlecz import Mlecz from Guarana import Guarana from Wilcze_Jagody import Wilcze_Jagody from Barszcz_Sosnowskiego import Barszcz_Sosnowskiego tmp = None zn = self.getSymbol() if (zn == 'T'): tmp = Trawa(self.swiat) elif (zn == 'M'): tmp = Mlecz(self.swiat) elif (zn == 'G'): tmp = Guarana(self.swiat) elif (zn == 'J'): tmp = Wilcze_Jagody(self.swiat) elif (zn == 'B'): tmp = Barszcz_Sosnowskiego(self.swiat) self.swiat.dodajDoPlanszy(tmp.getPolozenie_y(), tmp.getPolozenie_x(), ' ') tmp.setPolozenie_x(polozenie_x_dziecko) tmp.setPolozenie_y(polozenie_y_dziecko) tmp.setDelay(True) self.swiat.dodajDoPlanszy(tmp.getPolozenie_y(), tmp.getPolozenie_x(), tmp.getSymbol()) self.swiat.dodajWiadomosc(self.getNazwa()) self.swiat.dodajWiadomosc(" wlasnie sie rozprzestrzenil \n") else: return
def __init__(self): bNowaTura = Button(self.okno, command=self.wykonajTure, text="Nowa Tura", bg="cornflower blue") bNowaTura.place(x=480, y=380, width=100, height=50) for x in range(19): for y in range(19): self.buttons[y][x] = Button(self.okno, bg="blue") self.buttons[y][x].place(x=20 + x * 20, y=20 + y * 20, width=20) self.buttons[y][x].config(bg="orange") self.popup.add_command(label="Antylopa", command=lambda: self.dodajOrganizm( Antylopa(self.newX, self.newY, self), self)) self.popup.add_command( label="Barszcz", command=lambda: self.dodajOrganizm( BarszczSosnowskiego(self.newX, self.newY, self), self)) self.popup.add_command( label="Cyber Owca", command=lambda: self.dodajOrganizm( CyberOwca(self.newX, self.newY, self), self)) self.popup.add_command(label="Guarana", command=lambda: self.dodajOrganizm( Guarana(self.newX, self.newY, self), self)) self.popup.add_command(label="Lis", command=lambda: self.dodajOrganizm( Lis(self.newX, self.newY, self), self)) self.popup.add_command(label="Mlecz", command=lambda: self.dodajOrganizm( Mlecz(self.newX, self.newY, self), self)) self.popup.add_command(label="Owca", command=lambda: self.dodajOrganizm( Owca(self.newX, self.newY, self), self)) self.popup.add_command(label="Trawa", command=lambda: self.dodajOrganizm( Trawa(self.newX, self.newY, self), self)) self.popup.add_command( label="W.Jagody", command=lambda: self.dodajOrganizm( WilczeJagody(self.newX, self.newY, self), self)) self.popup.add_command(label="Wilk", command=lambda: self.dodajOrganizm( Wilk(self.newX, self.newY, self), self)) self.popup.add_command(label="Żółw", command=lambda: self.dodajOrganizm( Zolw(self.newX, self.newY, self), self)) self.dodajOrganizm(Czlowiek(6, 6, self), self) self.dodajOrganizm(Antylopa(10, 15, self), self) self.dodajOrganizm(Antylopa(1, 15, self), self) self.dodajOrganizm(BarszczSosnowskiego(8, 15, self), self) self.dodajOrganizm(BarszczSosnowskiego(10, 13, self), self) self.dodajOrganizm(CyberOwca(10, 6, self), self) self.dodajOrganizm(WilczeJagody(12, 4, self), self) self.dodajOrganizm(Trawa(15, 15, self), self) self.dodajOrganizm(Owca(13, 8, self), self) self.dodajOrganizm(Owca(16, 8, self), self) self.dodajOrganizm(Wilk(13, 7, self), self) self.dodajOrganizm(Wilk(1, 3, self), self) self.dodajOrganizm(Zolw(15, 11, self), self) self.dodajOrganizm(Zolw(16, 12, self), self) self.okno.bind("<Key>", self.kier) self.okno.bind("<Button-1>", self.printXY) self.okno.mainloop()
def wczytujemy(organizmy, mapa_organizmow, wskaznik, root, pola_mapy): def rysujSwiat(mapa_organizmow, pola_mapy, root): for x in range(20): for y in range(20): if mapa_organizmow[x][y] == None or mapa_organizmow[x][y].getZnak() == ".": pola_mapy[x][y]["text"] = " " else: pola_mapy[x][y]["text"] = mapa_organizmow[x][y].getZnak() root.mainloop() for x in range(20): for y in range(20): mapa_organizmow[x][y] = None del organizmy[ : ] #outFile = open('zapis.txt', 'r') try: outFile = open('zapis.txt', 'r') except ZeroDivisionError: print("Nic tu nie ma") finally: print("Daruje ci ten czas") for line in outFile: spacja = [] spacja = line.split(' ') x = int(spacja[0]) y = int(spacja[1]) znak = spacja[2] #print(znak) inicjatywa = int(spacja[3]) sila = int(spacja[4]) if znak == 'O': mapa_organizmow[x][y] = Owca(x, y) mapa_organizmow[x][y].setSila(sila) mapa_organizmow[x][y].setInicjatywa(inicjatywa) mapa_organizmow[x][y].setZnak(znak) organizmy.append(mapa_organizmow[x][y]) elif znak == 'W': mapa_organizmow[x][y] = Wilk(x, y) mapa_organizmow[x][y].setSila(sila) mapa_organizmow[x][y].setInicjatywa(inicjatywa) mapa_organizmow[x][y].setZnak(znak) organizmy.append(mapa_organizmow[x][y]) elif znak == 'L': mapa_organizmow[x][y] = Lew(x, y) mapa_organizmow[x][y].setSila(sila) mapa_organizmow[x][y].setInicjatywa(inicjatywa) mapa_organizmow[x][y].setZnak(znak) organizmy.append(mapa_organizmow[x][y]) elif znak == 'L': mapa_organizmow[x][y] = Lis(x, y) mapa_organizmow[x][y].setSila(sila) mapa_organizmow[x][y].setInicjatywa(inicjatywa) mapa_organizmow[x][y].setZnak(znak) organizmy.append(mapa_organizmow[x][y]) elif znak == 'K': mapa_organizmow[x][y] = Krowa(x, y) mapa_organizmow[x][y].setSila(sila) mapa_organizmow[x][y].setInicjatywa(inicjatywa) mapa_organizmow[x][y].setZnak(znak) organizmy.append(mapa_organizmow[x][y]) elif znak == 'T': mapa_organizmow[x][y] = Trawa(x, y) mapa_organizmow[x][y].setSila(sila) mapa_organizmow[x][y].setInicjatywa(inicjatywa) mapa_organizmow[x][y].setZnak(znak) organizmy.append(mapa_organizmow[x][y]) elif znak == 'G': mapa_organizmow[x][y] = Guarana(x, y) mapa_organizmow[x][y].setSila(sila) mapa_organizmow[x][y].setInicjatywa(inicjatywa) mapa_organizmow[x][y].setZnak(znak) organizmy.append(mapa_organizmow[x][y]) elif znak == 'J': mapa_organizmow[x][y] = Jagoda(x, y) mapa_organizmow[x][y].setSila(sila) mapa_organizmow[x][y].setInicjatywa(inicjatywa) mapa_organizmow[x][y].setZnak(znak) organizmy.append(mapa_organizmow[x][y]) rysujSwiat(mapa_organizmow, pola_mapy, root) outFile.close()
def akcja(organizmy, mapa_organizmow, pola_mapy, root): def dodajDziecko(zwierze, organizmy, mapa_organizmow, x, y): organizmy.append(zwierze) mapa_organizmow[x][y] = zwierze organizmy.append(zwierze) mapa_organizmow[x][y] = zwierze ilosc = len(organizmy) for x in range(len(organizmy)): #print(len(organizmy)) if organizmy[x] == None or organizmy[x].getCzySmierc == 1: print("cokolwiek") temp_x = getPolozenie_x() temp_y = getPolozenie_y() mapa_organizmow[temp_x][temp_y] = None mapa_organizmow[temp_x][temp_y] = Organizm() #organizmy.pop(organizmy.x()) del organizmy[x] if organizmy[x] != None: organizmy.sort(key=lambda organizmy:organizmy.inicjatywa) organizmy[x].akcja(mapa_organizmow) #print("---->", organizmy[x].getZnak()) if organizmy[x] == None or organizmy[x].getCzySmierc == 1: print("cokolwiek") temp_x = getPolozenie_x() temp_y = getPolozenie_y() mapa_organizmow[temp_x][temp_y] = None mapa_organizmow[temp_x][temp_y] = Organizm() #organizmy.pop(organizmy.x()) del organizmy[x] if organizmy[x].getCzyRozmnazac() == 1: ##rozmnazam juz ktoryObieg = 0 matka_x = organizmy[x].getPolozenie_x() matka_y = organizmy[x].getPolozenie_y() losuje_x = randint(-1, 1) losuje_y = randint(-1, 1) temp_x = 0 temp_y = 0 while True: if ktoryObieg > 300: break if losuje_x != 0 or losuje_y != 0: temp_x = losuje_x + matka_x temp_y = losuje_y + matka_y if 20 > temp_x >= 0 and 20 > temp_y >= 0: break losuje_x = randint(-1, 1) losuje_y = randint(-1, 1) ktoryObieg += 1 organizmy[x].setCzyRozmnazac(0) if organizmy[x] == None: pass elif organizmy[x].getZnak() == "W": dziecko = Wilk(temp_x, temp_y) elif organizmy[x].getZnak() == "O": dziecko = Owca(temp_x, temp_y) elif organizmy[x].getZnak() == "L": dziecko = Lew(temp_x, temp_y) elif organizmy[x].getZnak() == "S": dziecko = Lis(temp_x, temp_y) elif organizmy[x].getZnak() == "K": dziecko = Krowa(temp_x, temp_y) elif organizmy[x].getZnak() == "T": dziecko = Trawa(temp_x, temp_y) elif organizmy[x].getZnak() == "G": dziecko = Guarana(temp_x, temp_y) elif organizmy[x].getZnak() == "J": dziecko = Jagoda(temp_x, temp_y) dodajDziecko(dziecko, organizmy, mapa_organizmow, temp_x, temp_y) print(dziecko.getZnak(), "rozmnozylo sie") def rysujSwiat(mapa_organizmow, pola_mapy, root): for x in range(20): for y in range(20): if mapa_organizmow[x][y] == None or mapa_organizmow[x][y].getZnak() == ".": pola_mapy[x][y]["text"] = " " else: pola_mapy[x][y]["text"] = mapa_organizmow[x][y].getZnak() root.mainloop() rysujSwiat(mapa_organizmow, pola_mapy, root)
def set_guarana(self): self.zwierzak = Guarana(-1, -1, self.swiat)