Python :: Aufgabe #237
7 Lösungen
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.
- 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.
Lösungen:
Python-Code
''' Created on 15.12.2019 @author: robert ''' import random def get_user_amount(current_amount): try: input_amount = int(input("how much do you want to bet?")) except: print("not a valid number") return -1 if current_amount >= input_amount and input_amount >0: return input_amount else: print("invalid number") return -1 amount = 10000 """ single iteration of the game checks if valid amount is selected """ def game(amount): input_amount = -1 while input_amount <0: input_amount = get_user_amount(amount) try: input_number = int(input("select number 0-9?")) except: input_number = -1 x = random.randint(0,9) if x == input_number: print('you won') print('you selected ' + str(input_number) + ' game returned ' + str(x)) amount = amount + input_amount*9 else: print("you lost") print('you selected ' + str(input_number) + ' game returned ' + str(x)) amount = amount - input_amount print("your current balance: " + str(amount)) return amount while amount > 0: amount = game(amount) print("game over")
Python-Code
import random import os clear = lambda: os.system('cls') points=1000 stop=False while not stop: choice =500 while not (int(choice) in range(9)): clear() choice=input("Wählen sie eine Zahl: ") bet=points+5 while not (int(bet) in range(points)): clear() print("Aktuelle Punktzahl: "+str(points)) bet=input("Dein Einsatz bitte: ") points-=int(bet) number= random.choice(range(9)) print("Die gezogene Zahl ist: "+str(number)) if number == int(choice): print("GEWONNEN!!! Du bekommst "+str(int(bet)*9)+" Punkte") points+=int(bet)*9 else: print("Leider verloren :(") if 'n' == input("Nochmal spielen? (y/n): "): stop=True
Python-Code
import random random.seed() punkte = 10000 while punkte > 0: print() zahl = random.randint(0,9) print("Aktueller Punktestand:", punkte) betrag = int(input("Setze einen Betrag: ")) inp = int(input("Zahl von 0 bis 9: ")) if inp == zahl: punkte += 9*betrag print("Zahl richig erraten!") else: punkte -= betrag print("Leider falsch geraten") print("\nKonto leer, Spiel vorbei")
Python-Code
import random punkte = 10000 while punkte > 0: print("\nAktueller Punktestand: " + str(punkte)) einsatz = int(input("Dein Einsatz: ")) tip = int(input("Dein Tip: ")) zahl = random.randint(0, 9) print() print(20 * "*") print("Gezogene Zahl: " + str(zahl)) if tip == zahl: print("Gewonnen!") print(20 * "*") punkte = punkte + (9 * einsatz) else: print("Leider verloren!") print(20 * "*") punkte = punkte - einsatz print("\nSpiel vorbei")
C#-Code
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace WindowsFormsApplication8 { public partial class Form1 : Form { // Initialisierung public int iKontostand = 10000; Random rnd = new Random(); public int iZahlUser; public int iZufallszahl; public int iEinsatz; public bool bZahlenGleich; public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { txt_regeln.Text = "Glücksspiel bei der eine random Zahl zwischen 0 - 9 erzeugt wird.\r\nDer Spieler hat ein Startkonto von 10.000 Punkten und kann damit einen beliebigen Teilbetrag auf die zufällig erzeugte Zahl setzen.\r\nLiegt er richtig bekommt er das 9 Fache seines Einsatzes als Gewinn.\r\n"; txt_kontostand.Text = Convert.ToString(iKontostand); } private void txt_regeln_TextChanged(object sender, EventArgs e) { } private void txt_kontostand_TextChanged(object sender, EventArgs e) { } private void button1_Click(object sender, EventArgs e) { iZahlUser = Convert.ToInt32(txt_zahlUser.Text); iZufallszahl = rnd.Next(0, 9); txt_zufallszahl.Text = Convert.ToString(iZufallszahl); vergleiche(iZufallszahl , iZahlUser); berechne(iKontostand); if (iEinsatz < 1) { this.Close(); } if (iZahlUser < 0 && iZahlUser > 10) { this.Close(); } } public bool vergleiche(int zahl1, int zahl2) { if (zahl1 == zahl2) { bZahlenGleich = true; } else { bZahlenGleich = false; } return bZahlenGleich; } public int berechne(int zahl1) { if (bZahlenGleich) { iEinsatz = Convert.ToInt32(txt_einsatz.Text); iKontostand = iKontostand + (iEinsatz * 9); txt_endeSpiel.Text = "gewonnen"; } else { iEinsatz = Convert.ToInt32(txt_einsatz.Text); iKontostand = iKontostand - iEinsatz; if (iKontostand <= 0) { MessageBox.Show("Sie haben verloren\nKontostand < 0"); this.Close(); } txt_endeSpiel.Text = "verloren"; } txt_kontostand.Text = Convert.ToString(iKontostand); return iKontostand; } } } namespace WindowsFormsApplication8 { partial class Form1 { /// <summary> /// Required designer variable. /// </summary> private System.ComponentModel.IContainer components = null; /// <summary> /// Clean up any resources being used. /// </summary> /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() { this.label1 = new System.Windows.Forms.Label(); this.label2 = new System.Windows.Forms.Label(); this.txt_regeln = new System.Windows.Forms.TextBox(); this.label3 = new System.Windows.Forms.Label(); this.label4 = new System.Windows.Forms.Label(); this.txt_einsatz = new System.Windows.Forms.TextBox(); this.txt_zahlUser = new System.Windows.Forms.TextBox(); this.button1 = new System.Windows.Forms.Button(); this.txt_zufallszahl = new System.Windows.Forms.TextBox(); this.label5 = new System.Windows.Forms.Label(); this.txt_kontostand = new System.Windows.Forms.TextBox(); this.txt_endeSpiel = new System.Windows.Forms.TextBox(); this.SuspendLayout(); // // label1 // this.label1.AutoSize = true; this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 18.14286F); this.label1.ForeColor = System.Drawing.Color.Black; this.label1.Location = new System.Drawing.Point(263, 29); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(464, 51); this.label1.TabIndex = 0; this.label1.Text = "Glücksspiel Zufallszahl"; // // label2 // this.label2.AutoSize = true; this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 12.14286F); this.label2.Location = new System.Drawing.Point(22, 152); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(115, 33); this.label2.TabIndex = 1; this.label2.Text = "Regeln:"; // // txt_regeln // this.txt_regeln.Font = new System.Drawing.Font("Microsoft Sans Serif", 10.14286F); this.txt_regeln.Location = new System.Drawing.Point(177, 152); this.txt_regeln.Multiline = true; this.txt_regeln.Name = "txt_regeln"; this.txt_regeln.ScrollBars = System.Windows.Forms.ScrollBars.Horizontal; this.txt_regeln.Size = new System.Drawing.Size(841, 190); this.txt_regeln.TabIndex = 2; this.txt_regeln.TextChanged += new System.EventHandler(this.txt_regeln_TextChanged); // // label3 // this.label3.AutoSize = true; this.label3.Font = new System.Drawing.Font("Microsoft Sans Serif", 12.14286F); this.label3.Location = new System.Drawing.Point(22, 389); this.label3.Name = "label3"; this.label3.Size = new System.Drawing.Size(119, 33); this.label3.TabIndex = 3; this.label3.Text = "Einsatz:"; // // label4 // this.label4.AutoSize = true; this.label4.Font = new System.Drawing.Font("Microsoft Sans Serif", 12.14286F); this.label4.Location = new System.Drawing.Point(-1, 463); this.label4.Name = "label4"; this.label4.Size = new System.Drawing.Size(138, 33); this.label4.TabIndex = 4; this.label4.Text = "Ihre Zahl:"; // // txt_einsatz // this.txt_einsatz.Font = new System.Drawing.Font("Microsoft Sans Serif", 12.14286F); this.txt_einsatz.Location = new System.Drawing.Point(177, 389); this.txt_einsatz.Name = "txt_einsatz"; this.txt_einsatz.Size = new System.Drawing.Size(346, 40); this.txt_einsatz.TabIndex = 5; // // txt_zahlUser // this.txt_zahlUser.Font = new System.Drawing.Font("Microsoft Sans Serif", 12.14286F); this.txt_zahlUser.Location = new System.Drawing.Point(177, 463); this.txt_zahlUser.Name = "txt_zahlUser"; this.txt_zahlUser.Size = new System.Drawing.Size(346, 40); this.txt_zahlUser.TabIndex = 6; // // button1 // this.button1.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F); this.button1.Location = new System.Drawing.Point(-2, 524); this.button1.Name = "button1"; this.button1.Size = new System.Drawing.Size(139, 48); this.button1.TabIndex = 7; this.button1.Text = "Zufallszahl:"; this.button1.UseVisualStyleBackColor = true; this.button1.Click += new System.EventHandler(this.button1_Click); // // txt_zufallszahl // this.txt_zufallszahl.Font = new System.Drawing.Font("Microsoft Sans Serif", 12.14286F); this.txt_zufallszahl.Location = new System.Drawing.Point(177, 532); this.txt_zufallszahl.Name = "txt_zufallszahl"; this.txt_zufallszahl.Size = new System.Drawing.Size(346, 40); this.txt_zufallszahl.TabIndex = 8; // // label5 // this.label5.AutoSize = true; this.label5.Font = new System.Drawing.Font("Microsoft Sans Serif", 18.14286F); this.label5.Location = new System.Drawing.Point(671, 385); this.label5.Name = "label5"; this.label5.Size = new System.Drawing.Size(253, 51); this.label5.TabIndex = 9; this.label5.Text = "Kontostand:"; // // txt_kontostand // this.txt_kontostand.Font = new System.Drawing.Font("Microsoft Sans Serif", 18.14286F); this.txt_kontostand.Location = new System.Drawing.Point(673, 475); this.txt_kontostand.Name = "txt_kontostand"; this.txt_kontostand.Size = new System.Drawing.Size(251, 55); this.txt_kontostand.TabIndex = 10; this.txt_kontostand.TextChanged += new System.EventHandler(this.txt_kontostand_TextChanged); // // txt_endeSpiel // this.txt_endeSpiel.Font = new System.Drawing.Font("Microsoft Sans Serif", 18.14286F); this.txt_endeSpiel.Location = new System.Drawing.Point(38, 642); this.txt_endeSpiel.Multiline = true; this.txt_endeSpiel.Name = "txt_endeSpiel"; this.txt_endeSpiel.Size = new System.Drawing.Size(928, 161); this.txt_endeSpiel.TabIndex = 11; // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(11F, 24F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(1079, 939); this.Controls.Add(this.txt_endeSpiel); this.Controls.Add(this.txt_kontostand); this.Controls.Add(this.label5); this.Controls.Add(this.txt_zufallszahl); this.Controls.Add(this.button1); this.Controls.Add(this.txt_zahlUser); this.Controls.Add(this.txt_einsatz); this.Controls.Add(this.label4); this.Controls.Add(this.label3); this.Controls.Add(this.txt_regeln); this.Controls.Add(this.label2); this.Controls.Add(this.label1); this.Name = "Form1"; this.Text = "Form1"; this.Load += new System.EventHandler(this.Form1_Load); this.ResumeLayout(false); this.PerformLayout(); } #endregion private System.Windows.Forms.Label label1; private System.Windows.Forms.Label label2; private System.Windows.Forms.TextBox txt_regeln; private System.Windows.Forms.Label label3; private System.Windows.Forms.Label label4; private System.Windows.Forms.TextBox txt_einsatz; private System.Windows.Forms.TextBox txt_zahlUser; private System.Windows.Forms.Button button1; private System.Windows.Forms.TextBox txt_zufallszahl; private System.Windows.Forms.Label label5; private System.Windows.Forms.TextBox txt_kontostand; private System.Windows.Forms.TextBox txt_endeSpiel; } }
Python-Code
print("Glücksspiel:") import pickle import random aktiv = True punkte = 10000 file = open('Spielerpunkte', 'wb') pickle.dump(punkte, file) file.close() while aktiv: zufallszahl = random.randint(0,9) print(zufallszahl) file = open('Spielerpunkte', 'rb') punkte = pickle.load(file) file.close() print("Deine Punkte:", punkte) einsatz = input("Einsatz:") if einsatz == "exit": break eingabe = input("Ihre Zahl:") if eingabe == "exit": break einsatz = int(einsatz) eingabe = int(eingabe) punkte = punkte - einsatz if eingabe == zufallszahl: einsatz1 = einsatz * 9 punkte = einsatz1 + punkte print("Richtig, Sie haben", einsatz1, "Punkte gewonnen") else: print("Falsch, Sie haben", einsatz, "Punkte verloren") file = open('Spielerpunkte', 'wb') pickle.dump(punkte, file) file.close() if punkte == 0: print("Sie haben keine Punkte mehr übrig.") break
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