Bei dem Code im Anhang, der Hangman als Python App mit dem Kivy Framework erstellt, weiß ich nicht wozu man die Zeile mit dem super() braucht. Also warum muss man die **kwargs Argumente an die Basisklasse weitergeben?
class HangmanGame(BoxLayout):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.word_list = ["python", "java", "ruby", "javascript", "php"]
self.guess_word = []
self.secret_word = ""
self.remaining_guesses = 6
self.img_path = "img/hangman_{}.png"
self.create_game_layout()
self.new_game()
def create_game_layout(self):
self.orientation = "vertical"
self.image = Image(source=self.img_path.format(0))
self.word_label = Label(text=" ".join(self.guess_word),
font_size="50sp",
halign="center",
valign="middle")
self.remaining_guesses_label = Label(text=f"Remaining guesses: {self.remaining_guesses}")
self.input_label = Label(text="Enter a letter:")
self.input = TextInput(multiline=False)
self.submit_button = Button(text="Submit",
#Hier fehlt was unwichtiges, weil die Frage zu lang war
def new_game(self):
self.secret_word = random.choice(self.word_list)
self.guess_word = ["_"] * len(self.secret_word)
self.remaining_guesses = 6
self.image.source = self.img_path.format(0)
self.input.text = ""
self.word_label.text = " ".join(self.guess_word)
self.remaining_guesses_label.text = f"Remaining guesses: {self.remaining_guesses}"
def check_letter(self, instance):
letter = self.input.text
if letter in self.secret_word:
for i, c in enumerate(self.secret_word):
if c == letter:
self.guess_word[i] = letter
if "_" not in self.guess_word:
self.end_game(True)
else:
self.remaining_guesses -= 1
self.image.source = self.img_path.format(6 - self.remaining_guesses)
self.remaining_guesses_label.text = f"Remaining guesses: {self.remaining_guesses}"
if self.remaining_guesses == 0:
self.end_game(False)
self.input.text = ""
self.word_label.text = " ".join(self.guess_word)
def end_game(self, victory):
message = "Congratulations, you won!" if victory else f"Sorry, the word was {self.secret_word}."
self.remaining_guesses_label.text = message
self.remove_widget(self.input_label)
self.remove_widget(self.input)
self.remove_widget(self.submit_button)
self.add_widget(Button(text="New Game", on_press=self.new_game))
class HangmanApp(App):
def build(self):
Window.clearcolor = (0.5, 0.5, 0.5, 1)
return HangmanGame()
HangmanApp().run()
ist zwar ne andere frage aber was heißt pygame.transform.scale() und danke für das erste