Code Snippets

Magic 8-ball

import random


class UI:
    def __init__(self) -> None:
        self.question = ""
        self.response = ""
        self.eight_ball = EightBall()

    def start(self) -> None:
        self.question = input("Enter your question: ")
        self.response = self.get_response()
        self.show_response()

    def get_response(self) -> str:
        return self.eight_ball.generate_response()

    def show_response(self) -> None:
        print(self.response)


class EightBall:
    def __init__(self) -> None:
        self.response = ""
        self.words_of_wisdom = [
            # index 0
            "It is decidely so",
            "Better not tell you now",
            "Concentrate and ask again",
            "Outlook not so good",
            "You may rely on it",
            "Yes definitely",
            "Cannot predict now",
            # index 7
            "Very doubtful",
        ]

    def generate_response(self) -> str:
        # will give a random number from 0 to 7
        random_index = random.randint(0, len(self.words_of_wisdom) - 1)
        self.response = self.words_of_wisdom[random_index]
        return self.response


# start application
ui = UI()
ui.start()