Python :: Aufgabe #237 :: Lösung #7

7 Lösungen Lösungen öffentlich
#237

Glücksspiel Zufällige Zahl 0-9

Fortgeschrittener - Python von re_mas - 27.11.2019 um 18:30 Uhr
Die Aufgabenstellung ist wie folgt:
- Glücksspiel bei der eine random Zahl zwischen 0 - 9 erzeugt werden soll.
- Der Spieler hat ein Startkonto von 10.000 Punkten und kann damit einen beliebigen Teilbetrag auf die zufällig erzeugte Zahl setzen.
- Liegt er richtig bekommt er das 9 Fache seines Einsatzes als Gewinn
- Programmieren Sie ein entsprechendes Programm, welches die Eingaben von der Tastatur einliest und
die Ausgaben auf dem Bildschirm liefert. Die zu erratende Zahl kann durch einen verfügbaren Zufallsgenerator gezogen werden.
#7
vote_ok
von Ahzul (50 Punkte) - 12.08.2021 um 20:36 Uhr
Quellcode ausblenden Python-Code
import random


class Player:
    __balance = None
    __pot = None

    def __init__(self, balance):
        self.__balance = balance
        self.__pot = 0

    def get_balance(self):
        return self.__balance

    def set_balance(self, balance):
        self.__balance = balance

    def __bet(self, amount):
        self.__pot += amount
        self.__balance -= amount

    def __win(self):
        self.__balance += (9 * self.__pot)
        self.__pot = 0

    def lose(self):
        self.__pot = 0

    def print_player_info(self):
        print(f'-----------------------------------\n'
              f'Balance:\t{self.__balance} points\n')

    def game(self):
        number = random.randint(0, 9)
        try:
            bet = int(input("Bet:\n"))
            print(f'Bet is:\t{bet} points')
        except ValueError:
            print("Invalid bet\n")
            return
        if self.__balance >= bet:
            try:
                guess = int(input("Guess number from 0-9!\n"))
                print(f'\nYour Guess:\t{guess}\n'
                      f'correct number:\t{number}\n')
            except ValueError:
                print("Invalid Guess\n")
                return
            if 0 <= guess <= 9:
                self.__bet(bet)
                if guess == number:
                    self.__win()
                    print("WINNER WINNER!")
                    self.print_player_info()
                else:
                    print("Loser!")
                    self.print_player_info()
            else:
                print("Guess is not Valid!")
        else:
            print("Bet is not Valid!")


def options(var_player):

    if player.get_balance() == 0:
        print("You don't have any points!")
    else:
        option = input("-----------------------------------\n"
                       "Would you like to play again?\n"
                       "-y for yes\n"
                       "-n for no\n"
                       "-show_info for balance info!\n"
                       "-----------------------------------\n")
        if option == 'y':
            return True
        elif option == 'n':
            return False
        elif option == 'show_info':
            var_player.print_player_info()
            return options(var_player)
        elif option == 'exit':
            quit()
        else:
            print("Invalid Option!")
            return options(var_player)


if __name__ == '__main__':
    player = Player(10000)
    play_again = True
    while play_again:
        player.game()
        play_again = options(player)



with python 3.9

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben
2157778

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.