Example #1
0
    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)
Example #5
0
 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)
Example #6
0
 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()
Example #13
0
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()
Example #16
0
 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()
Example #19
0
    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()
Example #20
0
    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)
Example #21
0
 def set_guarana(self):
     self.zwierzak = Guarana(-1, -1, self.swiat)