Advertisement
Guest User

Untitled

a guest
Dec 19th, 2014
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.30 KB | None | 0 0
  1. Stuwmeer: def __init__(self, profiel): top = max(profiel) # maximale hoogte zoeken self.meer = [] # variable invoeren # van hoog naar laag aflopen en # plaatsen waar nodig for hoogte in reversed(range(top)): landschap = '' # reset variable (per hoogte) for i in profiel: # elke mogelijkheid aflopen if i > hoogte: landschap += '#' else: landschap += ' ' self.meer.append(landschap) # per hoogte in lijst def __str__(self): # lijst aflopen en in string zetten (newlines toevoegen) uitvoer = '' for i in self.meer: uitvoer += i + '\n' return uitvoer[:-1] # newline erafknippen def vullen(self): # tellen totaal aantal water) teller1 = [i for j in self.meer for i in j if i == '~'] # alle spaties vervangen door water gevuld = [] for i in self.meer: nieuw = i.replace(' ', '~') gevuld.append(nieuw) self.meer = gevuld # overtollige water verwijderen for index, string in enumerate(self.meer): plaats1 = string.find('#') # 1e top plaats2 = len(string) - string[::-1].find('#') # eventuele 2e top vervangen = string[:plaats1].replace('~', ' ') + string[plaats1:plaats2] + string[plaats2:].replace('~', ' ') # water lozen (per rij) self.meer.pop(index) # vorige rij verwijderen self.meer.insert(index, vervangen) # aangepaste rij invoegen # tellen totaal aantal water) teller2 = [i for j in self.meer for i in j if i == '~'] # al het water selecteren return len(teller2) - len(teller1) def lozen(self): # teller invoeren (telt aantal water) teller = [i for j in self.meer for i in j if i == '~'] # al het water vervangen door spatie leeg = [] for i in self.meer: nieuw = i.replace('~', ' ') leeg.append(nieuw) self.meer = leeg return len(teller) def infiltreren(self): # teller invoeren (telt aantal water bij start) teller1 = [i for j in self.meer for i in j if i == '~'] # plaatsen van doorlatende grond in lijst stoppen grond = [] for index, onder in enumerate(self.meer[-1]): if onder == '~': grond.append(index) # al het water loodrecht op de opening weg laten lopen meer = [] for nieuw in self.meer: for index in range(len(nieuw)): if index in grond: nieuw = nieuw[:index] + ' ' + nieuw[index + 1:] meer.append(nieuw) self.meer = meer # water moet aan # gelegen zijn -> overbodige water verwijderen # van rechts naar links aflopen meer = [] for nieuw in self.meer: for index, j in enumerate(nieuw): if j == '~': if nieuw[index - 1] == ' ': nieuw = nieuw[:index] + ' ' + nieuw[index + 1:] # verwijderen van water meer.append(nieuw) self.meer = meer # andersom aflopen meer = [] for nieuw in self.meer: nieuw = nieuw[::-1] for index, j in enumerate(nieuw): if j == '~': if nieuw[index - 1] == ' ': nieuw = nieuw[:index] + ' ' + nieuw[index + 1:] # verwijderen van water meer.append(nieuw[::-1]) self.meer = meer # teller invoeren (telt totaal aantal water) teller2 = [i for j in self.meer for i in j if i == '~'] # uitvoer return len(teller1) - len(teller2) if __name__ == '__main__': import doctest doctest.testmod()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement