Предполагается, что кнопка «Угадайка» ничего не делает, даже если я ввожу цифры? - PullRequest
0 голосов
/ 15 апреля 2019

плохо знакомый с программированием, исправил отступы в коде, но как только я запустил код, он отображает игру угадайку, но после ввода числа программа ничего не делает

попытался добавить команду, но как только я введу, кнопка исчезнет

import random

from breezypythongui import EasyFrame

class GuessingGame(EasyFrame):
    """playing a guessing game with a user."""

    def __init__(self):
        """setting up the window,widgets and data."""
        EasyFrame.__init__(self, title = "Guessing Game")
        # Initialize the instance variables for the data
        self.myNumber = random.randint(1,100)
        self.count = 0
        # Create and add widgets to the window
        greeting = "Guess a number between 1 and 100."
        self.hintLabel = self.addLabel(text = greeting,
                                       row = 0, column = 0,
                                       sticky = "NSEW",
                                       columnspan = 2)
        self.addLabel(text = "Your guess", row = 1, column = 0)
        self.guessField = self.addIntegerField(0, row = 1, column = 1)
        # Buttons have no command attributes yet
        self.nextButton = self.addButton(text = "Next", row = 2,column = 0)
        self.newButton = self.addButton(text = "New game", row = 2,column = 1)                                        

    def nextGuess():
        """Processes the user's next guess."""
        self.count += 1
        guess = self.guessField.getNumber()
        if guess == self.myNumber:
            self.hintLabel["text"] = "You've guessed it in " + str(self.count) + "attempts!"
            self.nextButton["state"] = "disabled"
        elif guess < self.myNumber:
            self.hintLabel["text"] = "Sorry, too small!"
        else:
            self.hintLabel["text"] = "Sorry, too large!"

    def newGame():
        """Resets the data and GUI to their original states."""
        self.myNumber = random.randint(1, 100)
        self.count = 0
        greeting = "Guess a number between 1 and 100."
        self.hintLabel["text"] = "greeting"
        self.guessField.setNumber(0)
        self.nextButton["state"] = "normal"


def main():
    """Instantiate and pop up the window."""
    GuessingGame().mainloop()

if __name__== "__main__":
    main()

предположим, чтобы дать мне, если число, которое вводится в высокий или низкий

1 Ответ

0 голосов
/ 16 апреля 2019

Программа ничего не делает, потому что вы, насколько я могу судить, не присвоили command ни одному из ваших виджетов.Глядя на пример здесь (на вкладке учебника), они помещают:

self.addButton(text = "Compute", row = 3, column = 0, columnspan = 2, command = self.computeTax)

Где бит command указывает, какая функция должна запускаться при нажатии кнопки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...