41 lines
1.6 KiB
Python
41 lines
1.6 KiB
Python
import random
|
|
|
|
|
|
class rainerSpruche():
|
|
|
|
def __init__(self, spruchDatei, nameDatei):
|
|
with open(spruchDatei, 'r') as f:
|
|
self.zitate = [line.strip() for line in f]
|
|
|
|
with open(nameDatei, 'r') as f:
|
|
self.names = [line.strip() for line in f]
|
|
self.letzte_zahl = []
|
|
self.spruchDatei = spruchDatei
|
|
self.nameDatei = nameDatei
|
|
|
|
def randomSpruch(self):
|
|
self.aktuelle_zahl = random.sample(range(len(self.zitate)), 1)[0]
|
|
mögliche_zahlen = list(range(len(self.zitate)))
|
|
while self.aktuelle_zahl in self.letzte_zahl:
|
|
mögliche_zahlen.remove(self.aktuelle_zahl)
|
|
if len(mögliche_zahlen) == 0:
|
|
mögliche_zahlen = list(range(len(self.zitate)))
|
|
self.aktuelle_zahl = random.choice(mögliche_zahlen)
|
|
if len(self.letzte_zahl) >= 3:
|
|
self.letzte_zahl.pop(0)
|
|
self.letzte_zahl.append(self.aktuelle_zahl)
|
|
return(self.zitate[self.aktuelle_zahl])
|
|
|
|
def randomName(self):
|
|
self.aktuelle_zahl = random.sample(range(len(self.names)), 1)[0]
|
|
mögliche_zahlen = list(range(len(self.names)))
|
|
while self.aktuelle_zahl in self.letzte_zahl:
|
|
mögliche_zahlen.remove(self.aktuelle_zahl)
|
|
if len(mögliche_zahlen) == 0:
|
|
mögliche_zahlen = list(range(len(self.names)))
|
|
self.aktuelle_zahl = random.choice(mögliche_zahlen)
|
|
if len(self.letzte_zahl) >= 3:
|
|
self.letzte_zahl.pop(0)
|
|
self.letzte_zahl.append(self.aktuelle_zahl)
|
|
return(self.names[self.aktuelle_zahl])
|