Als ich kürzlich Python probierte, hatte ich eine gute Aufgabe namens Zundokokiyoshi, also habe ich es geschafft. Ist es nur Python-ähnlich mit einem Generator?
zundoko.py
import random
def zundoko_gen():
while True:
yield random.choice(('Dung', 'Doco', 'Huh'))
class ZunDokoChecker:
def __init__(self):
self.zun_count = 0
def check(self, word):
if word == 'Doco':
result = self.zun_count >= 4
self.zun_count = 0
else:
self.zun_count = self.zun_count + 1 if word == 'Dung' else 0
result = False
return result
checker = ZunDokoChecker()
for word in zundoko_gen():
print(word)
if checker.check(word):
print('Ki yo shi!')
break
Ich habe ein Thema von Shiracamus bekommen, also habe ich es sofort gemacht.
zundoko2.py
import random
def zundoko_gen():
zun_count = 0
word_list = ('Dung', 'Doco', 'Huh')
while True:
word = random.choice(word_list)
yield word
if word == 'Dung':
zun_count += 1
else:
if word == 'Doco' and zun_count >= 4:
return
zun_count = 0
for word in zundoko_gen():
print(word);
print('Ki yo shi!')
Ich habe versucht, es zu entwickeln, aber als ich die Fertigstellung von Zundoko entdeckte, musste ich das Ende der Generierung bis zur nächsten Wertrückgabe benachrichtigen, aber zuerst tat ich es mit einem Flag.
Da ich Yield verwende, habe ich den Wert vorerst zurückgegeben und mich dann entschlossen, ihn zu beenden, damit ich ohne Flag aktualisieren konnte.
Es ist ein Hobby, word_list aus der innersten Schleife herauszuholen. Da es sich um einen integrierten Shop handelt, war ich daran interessiert, jedes Mal eine Listeninstanz mit dem Befehl BUILD_LIST zu generieren.
Recommended Posts