Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class PetDetective:
- def __init__(self, meno_suboru):
- self.pole = []
- #self.auto = []
- self.naklad = {}
- self.kapa = 1
- pomocne = []
- vstup = open(meno_suboru, 'r')
- for riadok in vstup:
- if riadok == '\n':
- break
- else:
- for znak in riadok:
- if znak == '\n':
- break
- else:
- pomocne.append(znak)
- self.pole.append(pomocne)
- pomocne = []
- riadok = vstup.readline().strip()
- r, s = riadok.split()
- self.auto = (int(r),int(s))
- #print(self.auto)
- vstup.close()
- def __repr__(self):
- znaky = ''
- for r in range(len(self.pole)):
- for s in range(len(self.pole[r])):
- if (r, s) == self.auto:
- znaky += '*'
- else:
- znaky += self.pole[r][s]
- znaky += '\n'
- return znaky
- def kapacita(self, kapa):
- self.kapa = kapa
- def zisti(self):
- zvierata = ''
- Mz = set()
- for kluc in self.naklad:
- if self.naklad[kluc] > 0:
- zvierata += kluc
- for r in range(len(self.pole)):
- for s in range(len(self.pole[r])):
- if self.pole[r][s] in 'qwertyuioplkjhgfdsazxcvbnm':
- Mz.add((self.pole[r][s], r, s))
- return zvierata, Mz
- def krok(self, smer):
- pocet_krokov = 0
- for pohyb in smer:
- rr, ss = self.auto[0], self.auto[1]
- r, s = [(rr, ss - 1), (rr, ss + 1), (rr - 1, ss), (rr + 1, ss)]['lphd'.index(pohyb)]
- if 0 <= r < len(self.pole) and 0 <= s < len(self.pole[r]) and self.pole[r][s] != ' ':
- pocet_krokov += 1
- if self.pole[r][s] in 'qwertyuioplkjhgfdsazxcvbnm':
- pocet_z = 0
- for kluc in self.naklad:
- pocet_z += self.naklad[kluc]
- if pocet_z < self.kapa:
- if self.pole[r][s] not in self.naklad:
- self.naklad[self.pole[r][s]] = 1
- else:
- self.naklad[self.pole[r][s]] += 1
- self.pole[r][s] = '.'
- self.auto = (r, s)
- #pocet_krokov += 1
- if self.pole[r][s] in 'QWERTYUIOPLKJHGFDSAZXCVBNM':
- if self.pole[r][s].lower() in self.naklad:
- self.naklad[self.pole[r][s].lower()] = 0
- self.auto = (r, s)
- #pocet_krokov += 1
- if self.pole[r][s] == '.':
- self.auto = (r, s)
- else:
- pass
- return pocet_krokov
- if __name__ == '__main__':
- p = PetDetective('subor2.txt')
- #p.kapacita(2)
- print(p)
- print(p.zisti())
- print(p.krok('hhppppppddd'))
- print(p)
- print(p.zisti())
- print(p.krok('dhhlllllddllllll'))
- print(p)
- print(p.zisti())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement