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