def Kolizja(self, wrog: Organizm, atakujacy): if (self.sila > wrog.sila): self.swiat.mapa[self.pozycjax][self.pozycjay] = Ziemia( self.swiat, self.pozycjax, self.pozycjay) self.Usuniecie() wrog.swiat.mapa[wrog.pozycjax][wrog.pozycjay] = Ziemia( wrog.swiat, wrog.pozycjax, wrog.pozycjay) wrog.Usuniecie()
def Wczytaj(self): plik = open("zapis.txt", 'r') self.__lista.clear() self.__usun.clear() self.__oczekujace.clear() self.dlugosc = int(plik.readline()) self.szerokosc = int(plik.readline()) self.mapa = [[Ziemia(self, i, j) for i in range(self.dlugosc)] for j in range(self.szerokosc)] self.iloscTur = int(plik.readline()) dlugosc = int(plik.readline()) for i in range(dlugosc): literka = plik.readline() pozycjax = int(plik.readline()) pozycjay = int(plik.readline()) sila = int(plik.readline()) if literka[0] == 'C': moc = int(plik.readline()) self.czlowiek = Czlowiek(pozycjax, pozycjay, self) self.czlowiek.sila = sila self.czlowiek.moc = moc self.DodMapa(pozycjax, pozycjay, self.czlowiek) else: self.WczytajOrganizm(literka[0], pozycjax, pozycjay, sila) self.__window.WypiszPlansze()
def Akcja(self): tab = self.swiat.GetSasiadow(self) for point in tab: if point.x != -1: if self.swiat.mapa[point.x][point.y].CzyZwierze(): self.swiat.mapa[point.x][point.y].Usuniecie() self.swiat.mapa[point.x][point.y] = Ziemia( self.swiat, point.x, point.y) super(BarszczSosnowskiego, self).Akcja()
def Kolizja(self, wrog: Organizm, atakujacy): if wrog.literka == self.literka: tab = self.swiat.GetSasiadow(self) for punkt in tab: if (punkt.x >= 0): if (isinstance(self.swiat.mapa[punkt.x][punkt.y], Ziemia)): self.ZrobDziecko(punkt.x, punkt.y) return if (atakujacy): wrog.Kolizja(self, False) elif wrog.CzyOdbil(self): return elif atakujacy == False and self.sila <= wrog.sila: return else: pozycjax = wrog.pozycjax pozycjay = wrog.pozycjay if wrog.CzyZwial() and atakujacy: self.swiat.mapa[self.pozycjax][self.pozycjay] = Ziemia(self.swiat, self.pozycjax, self.pozycjay) self.pozycjax = pozycjax self.pozycjay = pozycjay self.swiat.mapa[self.pozycjax][self.pozycjay] = self elif self.CzyZwial(): return else: if self.sila > wrog.sila: wrog.Kolizja(self, False) self.swiat.mapa[self.pozycjax][self.pozycjay] = Ziemia(self.swiat, self.pozycjax, self.pozycjay) if atakujacy: self.pozycjax = pozycjax self.pozycjay = pozycjay self.swiat.mapa[self.pozycjax][self.pozycjay] = self wrog.Usuniecie() elif self.sila == wrog.sila: if (atakujacy): wrog.Kolizja(self, False) self.swiat.mapa[self.pozycjax][self.pozycjay] = Ziemia(self.swiat, self.pozycjax, self.pozycjay) self.pozycjax = pozycjax self.pozycjay = pozycjay self.swiat.mapa[self.pozycjax][self.pozycjay] = self wrog.Usuniecie() else: wrog.Kolizja(self, False)
def __init__(self, dlugosc, szerokosc): self.__iloscTur = 0 self.dlugosc = dlugosc self.szerokosc = szerokosc self.mapa = [[Ziemia(self, i, j) for i in range(self.dlugosc)] for j in range(self.szerokosc)] self.__window = Aplikacja() self.__lista = [] self.__oczekujace = [] self.__usun = [] self.__czlowiek = None
def Akcja(self): punkt = self.CzyAkcja() if punkt.x == -1: return elif isinstance(self.swiat.mapa[punkt.x][punkt.y], Ziemia): self.swiat.mapa[self.pozycjax][self.pozycjay] = Ziemia(self.swiat, self.pozycjax, self.pozycjay) self.pozycjay = punkt.y self.pozycjax = punkt.x self.swiat.mapa[self.pozycjax][self.pozycjay] = self else: self.Kolizja(self.swiat.mapa[punkt.x][punkt.y], True)
def CzyZwial(self): if random.randint(0, 1) == 0: tab = self.swiat.GetSasiadow(self) if (len(tab) == 0): return False while len(tab) > 0: punkt = random.choice(tab) tab.remove(punkt) if isinstance(self.swiat.mapa[punkt.x][punkt.y], Ziemia): self.swiat.mapa[self.pozycjax][self.pozycjay] = Ziemia(self.swiat, self.pozycjax, self.pozycjay) self.pozycjax = punkt.x self.pozycjay = punkt.y self.swiat.mapa[self.pozycjax][self.pozycjay] = self return True return False
def SpalWszystko(self): tab = self.swiat.GetSasiadow(self) for point in tab: if point.x != -1 and not isinstance(self.swiat.mapa[point.x][point.y], Ziemia): self.swiat.mapa[point.x][point.y].Usuniecie() self.swiat.mapa[point.x][point.y] = Ziemia(self.swiat, point.x, point.y)