Hinzufuegen einer Mechanik, die es dem Spieler erlaubt, das Spiel erneut zu starten oder zu Beenden. Ausserdem noch hinzufuegen einer mechanik, die das Spiel Enden laesst. Zudem wurde das Logbuch, sowohl als auch die README.txt Datei, ergaenzt. Ausserdem wurden noch Interface technische unsaeuberlichkeiten behoben
This commit is contained in:
Binary file not shown.
Binary file not shown.
181
Game/game.py
Normal file
181
Game/game.py
Normal file
@@ -0,0 +1,181 @@
|
||||
import menu #Importierung der Menu.py Datei im Game folder
|
||||
import random
|
||||
|
||||
class coin_multiplier(): #Klasse, die das Upgrade darstellt, welches die anzahl des Bonusses beim Kopfwurf veraendert
|
||||
def __init__(self, multiplier:float, cost:int):
|
||||
self.multiplier = multiplier
|
||||
self.cost = cost
|
||||
|
||||
class flip_chance(): #Upgrade, welches die Chance auf kopf veraendert
|
||||
def __init__(self, chance:int, cost:int):
|
||||
self.chance = chance
|
||||
self.cost = cost
|
||||
|
||||
class lucky_coin(): #Upgrade, welches festlegt wie hoch die Wahrscheinlichkeit auf einen LuckyCoin (Jackpot) ist
|
||||
def __init__(self, chance:float, cost:int):
|
||||
self.chance = chance
|
||||
self.cost = cost
|
||||
|
||||
def main_game(): #Funktion die Basiswerte angibt und einen game loop erstellt. Sie prueft, ob der gameloop beendet oder neugestartet werden soll
|
||||
while True:
|
||||
wealth = 1 #Festlegung des Basis Guthabens
|
||||
coins_per_head = 0.5 #Festlegung des Standartmaessigen Coin Boosters
|
||||
heads_amount = 1 #Anzahl der Standartmaessigen kopfwuerfe (wird im Laufe des Spiels veraendert)
|
||||
|
||||
reset_upgrades() #Funktion zur Festlegung der Standartattribute der Upgrade Klassen
|
||||
|
||||
state = coin_flip(wealth,coins_per_head,heads_amount) #Ueberpruefung, ob das die Funktion coin_flip() 'RESTART' oder 'EXIT' ausgibt
|
||||
|
||||
if state == 'RESTART': #Wenn 'RESTART' ausgegeben wird beginnt die schleife von Vorne ---> Attribute und Spielwerte werden wieder auf Standarteinstellung zurueckgesetzt: Programm startet neu
|
||||
print('Alles Klar das Spiel wird jetzt neu gestartet')
|
||||
input()
|
||||
continue
|
||||
elif state == 'EXIT': #Wenn 'EXIT' ausgegeben wird, wird der Gameloop der Funktion unterbrochen ---> Spiel bricht ab bzw. wird beendet
|
||||
print('DANKE FUERS SPIELEN :)')
|
||||
input()
|
||||
break
|
||||
|
||||
def coin_flip(wealth, coins_per_head, heads_amount): #Funktion fuer die Grundmechanik des Spiels (Kopf oder Zahl)
|
||||
while True:
|
||||
result = random.randint(0, 100) #Generiert eine zufaellige Zahl zwischen 1 und 100
|
||||
if result in range(0,base_lvl_flip_chance.chance): #Wenn die Zahl kleiner als die, in den Upgrades festgelegte Wahrscheinlichkeit fuer den Kopfwurf (10%) ist
|
||||
print(f'Kopf ({heads_amount}x)') #Gibt die Anzahl an geworfenen Koepfen aus
|
||||
heads_amount += 1 #Anzahl an hintereinander geworfenen "Köpfen" wird eine Einheit hinzugefuegt
|
||||
game_state = end_game(heads_amount) #Die Variable game_state wird mit der Ausgabe der Funktion end_game definiert
|
||||
if game_state: #game_state ist entweder 'RESTART', 'EXIT', oder None ---> alles True ausser None=False ---> Bedingung wird nicht ausgefuehrt (game_state wird nicht returned). Bei 'RESTART' oder 'EXIT': game_state wird returned als 'RESTART' oder 'Exit'
|
||||
return game_state
|
||||
if heads_amount >=3: #Wenn 2 Mal hintereinander (also 3 mal) Kopf geworden wird
|
||||
coins_per_head += base_lvl_coin_multiplier.multiplier #Coin-Boost für mehrfaches werfen von Kopf hintereinander (Abhaengig vom Upgrade Attribut multiplier der Klasse coin_multiplier())
|
||||
else:
|
||||
coins_per_head = 0.5 #Falls es nicht der Fall ist bekommt man pro Kopf Wurf 0.5 Coins
|
||||
wealth += coins_per_head
|
||||
print('')
|
||||
print(f'Du hast {wealth} Coins (+ {coins_per_head})') #Zwischenstand des Kontostands wird ausgegeben
|
||||
answer = input() #Die Antowort wird in der Variable Answer gespeichert
|
||||
wealth = check_lucky_coin(result, wealth) #Die Funktion ueberprueft, ob die, in Zeile 40 generierte, Zahl in dem Wahrscheinlichkeitsbereich des Lucky Coin Events liegt
|
||||
try: #Probiert aus
|
||||
answer = int(answer)#prueft, ob die Eingabe eine Zahl ist und 4 ist
|
||||
if answer == 4:
|
||||
wealth = homepage_upgrades(wealth) #Leitet auf die Homepage-Seite der Upgrades ueber
|
||||
else:
|
||||
continue #Schleife wird fortgesetzt ---> Ueberleitung zu Kopf/Zahl
|
||||
except ValueError: #Wenn es einen Widerspruch bzw ValueError entsteht
|
||||
continue #Schleife wird fortgesetzt ---> Ueberleitung zu Kopf/Zahl
|
||||
elif result in range(base_lvl_flip_chance.chance,100): #Wenn die Zufallsgenerierte Zahl zwischen der, in der flip_chance() festgelegten chance Attribut, Zahl und 100 liegt
|
||||
print('Zahl')
|
||||
heads_amount = 1 #Die Streak wird wieder auf 1 also fuer den Spieler 0 zurueckgesetzt
|
||||
answer = input()
|
||||
wealth = check_lucky_coin(result, wealth) #Wird erneut auf das Lucky Coin Event geprueft
|
||||
try: #Erneut das Gleiche wie von Zeile 56-63
|
||||
answer = int(answer)
|
||||
if answer == 4:
|
||||
wealth = homepage_upgrades(wealth)
|
||||
else:
|
||||
continue
|
||||
except ValueError:
|
||||
continue
|
||||
wealth = check_lucky_coin(result,wealth) #Wahrscheinlich unnoetig dient aber zur Ueberpruefung auf Lucky Coin auch am Ende der Schleife
|
||||
|
||||
def reset_upgrades(): #Festlegung der Basiswerte fuer alle Upgrades
|
||||
global base_lvl_coin_multiplier
|
||||
global base_lvl_flip_chance
|
||||
global base_lvl_lucky_coin
|
||||
|
||||
base_lvl_coin_multiplier = coin_multiplier(0.5, 10) #Definiert den Coin Boost (0.5 Coins) und die Kosten (10 Coins)
|
||||
base_lvl_flip_chance = flip_chance(5, 1) #Definiert die Ausgangschance auf Kopf (5%) und Die Kosten (1 Coin)
|
||||
base_lvl_lucky_coin = lucky_coin(0.5, 10) #Definiert die Ausgangschance fuer Lucky Coin (0.5%) und die Kosten (10 Coins)
|
||||
|
||||
def lvl_up_multiplier(): #Funktion, um den Coin Boost zu erhoehen
|
||||
lvl_up = True
|
||||
|
||||
if lvl_up == True:
|
||||
base_lvl_coin_multiplier.cost *= 5 #Die Kosten werden beim Ausfuehren ver-2.5-facht und neu damit definiert
|
||||
base_lvl_coin_multiplier.multiplier *= 5 #Der Boost wird ver-5-facht und neu definiert
|
||||
#print(f' CM: {base_lvl_coin_multiplier.cost}')
|
||||
print(f' \nCoin Multiplier liegt bei: {base_lvl_coin_multiplier.multiplier}\n') #Gibt einen Zwischenstand des Wertes aus
|
||||
|
||||
def lvl_up_flip_chance(): #Funktion, um die Chance auf einen Kopfwurf zu erhoehen
|
||||
lvl_up = True
|
||||
|
||||
if lvl_up == True:
|
||||
base_lvl_flip_chance.cost *= 20 #In der base_lvl_flip_chance Variable nach der Klasse flip_chance() wird der cost Attribut verzehnfacht ---> zahnfache Kosten
|
||||
base_lvl_flip_chance.chance *= 2 #Die Chance auf Kopf wird verdoppelt
|
||||
#print(f" FC Cost: {base_lvl_flip_chance.cost}")
|
||||
print(f" \nFlip Chance liegt bei: {base_lvl_flip_chance.chance}%\n") #Die neue Chance auf Kopf wird ausgegeben
|
||||
|
||||
def lvl_up_lucky_coin(): #Funktion, um die Chance auf den Lucky Coin zu erhoehen
|
||||
lvl_up = True
|
||||
|
||||
if lvl_up == True:
|
||||
base_lvl_lucky_coin.cost *= 10 #Die costen werden verdreifacht
|
||||
base_lvl_lucky_coin.chance *= 1.5 #Die Chancen auf den Luckycoin werden ver 1.5 facht
|
||||
#print(f" Lucky Coin Cost: {base_lvl_lucky_coin.cost}")
|
||||
print(f" \nLucky Coin Chance liegt bei: {base_lvl_lucky_coin.chance}%\n") #Die neue Chance auf den Lucky Coin wird ausgegeben
|
||||
|
||||
def homepage_upgrades(wealth): #Funktion, die die Upgrade Hompage erstellt
|
||||
while True:
|
||||
answer = input(f' Flip Chance [{base_lvl_flip_chance.chance}% > {base_lvl_flip_chance.chance*2}%] (Preis: {base_lvl_flip_chance.cost} Coins): [1]\n Lucky Coin [{base_lvl_lucky_coin.chance}% > {base_lvl_lucky_coin.chance*2}%] (Preis: {base_lvl_lucky_coin.cost} Coins): [2]\n Multiplier [+{base_lvl_coin_multiplier.multiplier} Coins > {base_lvl_coin_multiplier.multiplier*5} Coins] (Preis: {base_lvl_coin_multiplier.cost} Coins): [3]\n Zum Game: [4]') #Speichert input in einer variable answer. Angabe von Effekten den Upgrades. Also was upgraded es
|
||||
try:
|
||||
answer = int(answer) #Testet ob die Eingabe eine Zahl ist
|
||||
if answer == 1:
|
||||
if wealth >= base_lvl_flip_chance.cost: #Wenn der Kontostand (wealth) groesser bzw. gleich ist wie die Kosten fuer das Upgrade (Chance auf Kopf)
|
||||
wealth -= base_lvl_flip_chance.cost #Die Kosten werden vom Kontostand abgezogen und der Kontostand wird mit seinem neuen Wert in der Variable wealth gespeichert (also geupdated)
|
||||
lvl_up_flip_chance() #Die Chance auf Kopf wird um ein Level erhoeht
|
||||
print(f' Erfolgreich geupgradet. Du hast noch {wealth} Coins\n') #Neuer Kontostand wird ausgegeben
|
||||
|
||||
else:
|
||||
print()
|
||||
print('Du bist zu arm\n') #Falls die Bedingung nicht erfuellt wird, wird die Schleife weiterhin ausgefuehrt + Hinweis auf zu geringen Kontostand
|
||||
|
||||
elif answer == 2: #Wenn die Antwort 2 ist geschieht das gleiche wie von Zeile 121-124 nur mit der Chance und den Kosten des Lucky Coin Upgrades
|
||||
if wealth >= base_lvl_lucky_coin.cost:
|
||||
wealth -= base_lvl_lucky_coin.cost
|
||||
lvl_up_lucky_coin()
|
||||
print(f' Erfolgreich geupgradet. Du hast noch {wealth} Coins\n')
|
||||
else:
|
||||
print()
|
||||
print('Du bist zu arm\n')
|
||||
|
||||
elif answer == 3: #Wenn die Antwort 3 ist geschieht das gleiche wie von Zeile 121-124 nur mit der Anzahl an Bonuscoins und den Kosten des Bonus-Upgrades
|
||||
if wealth >= base_lvl_coin_multiplier.cost:
|
||||
wealth -= base_lvl_coin_multiplier.cost
|
||||
lvl_up_multiplier()
|
||||
print(f' Erfolgreich geupgradet. Du hast noch {wealth} Coins\n')
|
||||
else:
|
||||
print('\nDu bist zu arm\n')
|
||||
elif answer == 4: #Wenn die Eingabe 4 ist wird der neue Wert der Variable auf Globaler Ebene aus der Funktion ausgegeben ---> Globales Update des Kontostandes
|
||||
return wealth
|
||||
|
||||
elif answer not in (1, 2, 3, 4): #Wenn die Antwort eine andere Zahl als 1, 2, 3, 4 ist, wird ausgegeben, dass nur diese Zahlen moeglich sind
|
||||
print('Bitte 1, 2, 3 oder 4!')
|
||||
|
||||
except ValueError: #Falls ein ValueError kommt, wird er abgefangen, der Benutzer aufgefordert nur Zahlen einzugeben und die Eingabemoeglichkeit wiederholt
|
||||
print('\nNur Zahlen\n')
|
||||
input()
|
||||
|
||||
def check_lucky_coin(result, wealth): #Funktion, die Ueberprueft, ob der Lucky Coin getriggert wird ---> JACKPOT
|
||||
if result < base_lvl_lucky_coin.chance or result == base_lvl_lucky_coin.chance: #Wenn die, in Zeile 40 bestimmte, Variable result kleiner ist, als die Chance des Lucky coins ist, bzw. gleich ist, wird der Kontostand verdoppelt
|
||||
print('\nHerzlichen Glueckwunsch! Du hast den Lucky Coin bekommen\n')
|
||||
wealth *= 2
|
||||
print(f'Kontostand: {wealth} Coins')
|
||||
return wealth #Der Funktionswert fuer den Kontostand wealth wird global gespeichert
|
||||
|
||||
def end_game(heads_amount): #Funktion, die ueberprueft, ob das Spiel zuende ist
|
||||
if heads_amount == 11: #Wenn 10 mal hintereinander das Ergebnis 'Kopf' kommt wird das folgende ausgefuehrt
|
||||
print('GLUECKWUNSCH! Du hast das Spiel durchgespielt :)\nDruecke [1] um ein NEUES SPIEL zu starten\nDruecke [2] um das Spiel zu BEENDEN')
|
||||
while True:
|
||||
answer = input() #Eingabe wird in der lokalen Variable answer gespeichert
|
||||
try:
|
||||
answer = int(answer) #Testet ob answer eine Zahl ist
|
||||
if answer == 1:
|
||||
return 'RESTART' #Wenn die Eingabe 1 ist wird der Funktionswert 'RESTART' ausgegeben, welcher in der coin_flip() funktion verwendet wird und in der main_game() funktion als anhaltspunkt genutzt wird, um zu entscheiden, ob das Spiel neugestartet werden soll
|
||||
elif answer == 2:
|
||||
return 'EXIT' #Wenn die Eingabe 2 ist wird der Funktionswert 'EXIT' ausgegeben, welcher in der coin_flip() funktion verwendet wird und in der main_game() funktion als anhaltspunkt genutzt wird, um zu entscheiden, beendet werden soll
|
||||
else:
|
||||
print('Nur [1] oder [2] du Schlingel') #Wenn die Eingabe eine andere Zahl ist wird folgendes ausgegeben
|
||||
except ValueError: #Wenn ein ValueError auftritt wird er abgefangen ---> Eingabe ist etwas anderes als ein Integer(Ganze Zahl)
|
||||
print('Du kannst nur [1] oder [2] eingeben du Sack')
|
||||
|
||||
|
||||
|
||||
main_game() #Die Funktion, die das Spiel ausfuehrt wird aufgerufen, damit das Programm ueberhaupt ausgefuehrt wird
|
||||
41
Game/menu.py
41
Game/menu.py
@@ -1,48 +1,49 @@
|
||||
import sys
|
||||
def title_screen():
|
||||
def title_screen(): #Funktion, die den ersten Teil des Titel-Bildschirms darstellt
|
||||
print('Herzlich Willkommen zu')
|
||||
input('Druecke eine beliebige Taste')
|
||||
print(*'MUENZENWERFER')
|
||||
print(*'COINFLIPPERS (in gut)')
|
||||
print('')
|
||||
|
||||
def end_game_or_start_question():
|
||||
def end_game_or_start_question(): #Funktion, die abfragt, ob das Spiel gestartet oder beendet werden soll
|
||||
while True:
|
||||
print('Druecke [1] um ein Spiel zu starten und [2] um das Spiel zu beenden')
|
||||
a = input()
|
||||
a = input() #Die Eingabe wird in der Variable a lokal gespeichert
|
||||
try:
|
||||
a = int(a)
|
||||
if a in (1, 2):
|
||||
a = int(a) #Testet, ob die Eingabe ein Integer (ganze Zahl) ist
|
||||
if a in (1, 2): #Wenn a 1 oder 2 ist wird die Schleife gebrochen ---> naechste Funktion
|
||||
break
|
||||
else:
|
||||
print('1 oder 2!')
|
||||
except ValueError:
|
||||
except ValueError: #Wenn ein ValueError ausgegeben wird, wird dieser abgefangen und der Benutzer erhaelt den Hinweis, dass nur Zahlen akzeptiert werden
|
||||
print('Du sollst nur Zahlen eingeben')
|
||||
|
||||
return a
|
||||
return a #Die eingabe wird global gespeichert, um sie weiterhin nutzen zu koennen
|
||||
|
||||
def menu_navigation(a):
|
||||
if a == 1:
|
||||
def menu_navigation(a): #Funktion, die abfragt, ob man die Spielmechanik kennt und ob man das Spiel ueberhaupt spielen moechte
|
||||
if a == 1: #Wenn die Eingabe 1 ist wird abgefragt ob der spieler die Regeln kennt und in der Variable playknowledge gespeichert wird
|
||||
print('Nun Gut!')
|
||||
input('')
|
||||
print('Du weisst, wie man spielt, oder?')
|
||||
print('')
|
||||
playknowledge = input('')
|
||||
if playknowledge in ('Ja', 'ja'):
|
||||
if playknowledge in ('Ja', 'ja'): #Wenn die Eingabe der Abfrage ueber die Regeln ja ist, wird das Spiel gestartet
|
||||
print('Super!')
|
||||
print('')
|
||||
print('Dann kann es ja losgehen')
|
||||
input()
|
||||
print('HINWEIS: mit [4] kannst du nach jedem Wurf das Upgrade-Menu aufrufen')
|
||||
input()
|
||||
else:
|
||||
print('HINWEIS: mit [4] kannst du nach jedem Wurf das Upgrade-Menu aufrufen\n\nDU MUSST DIR ZUM START DAS UPGRADE FUER DIE FLIP CHANCE KAUFEN\n')
|
||||
input('VERSTANDEN [ENTER]')
|
||||
else: #Falls die Eingabe nicht ja ist wird auf das Regelwerk bzw. Spielkonzept verwiesen und die Funktion abgeschlossen
|
||||
print('Nein? Dann lies nochmal die README.txt und druecke [Enter], wenn du fertig bist')
|
||||
input('')
|
||||
elif a == 2:
|
||||
print('HINWEIS: mit [4] kannst du nach jedem Wurf das Upgrade-Menu aufrufen\n\nDU MUSST DIR ZUM START DAS UPGRADE FUER DIE FLIP CHANCE KAUFEN\n')
|
||||
input('VERSTANDEN [ENTER]')
|
||||
elif a == 2: #Wenn die Eingabe 2 ist
|
||||
print('Schade, es gibt jetzt kein Zurueck mehr')
|
||||
input()
|
||||
sys.exit()
|
||||
sys.exit() #funktion aus der Library sys, die das Programm beendet
|
||||
|
||||
title_screen()
|
||||
a = end_game_or_start_question()
|
||||
menu_navigation(a)
|
||||
|
||||
title_screen() #Die Funktion wird aufgerufen
|
||||
a = end_game_or_start_question() #Die Variable a wird mit dem Funktionswert der end_game_or_start_game() funktion definiert
|
||||
menu_navigation(a) #Die Variable a wird in die Funktion uebergeben und verwendet
|
||||
@@ -1,140 +0,0 @@
|
||||
from upgrades import coin_multiplier, lucky_coin, flip_chance
|
||||
#import menu
|
||||
import random
|
||||
|
||||
coins_per_head = 0.5
|
||||
wealth = 5000
|
||||
heads_amount = 1
|
||||
|
||||
#Game
|
||||
def coin_flip(wealth, coins_per_head, heads_amount):
|
||||
while True:
|
||||
result = random.randint(0, 100)
|
||||
if result in range(0,base_lvl_flip_chance.chance):
|
||||
print(f'Kopf ({heads_amount}x)')
|
||||
heads_amount += 1 #Anzahl an hintereinander geworfenen "Köpfen"
|
||||
if heads_amount >=3:
|
||||
coins_per_head += base_lvl_coin_multiplier.multiplier #Coin-Boost für mehrfaches werfen von Kopf hintereinander
|
||||
else:
|
||||
coins_per_head = 0.5
|
||||
wealth += coins_per_head
|
||||
print('')
|
||||
print(f'Du hast {wealth} Coins (+ {coins_per_head})')
|
||||
answer = input()
|
||||
try:
|
||||
answer = int(answer)
|
||||
if answer == 4:
|
||||
homepage_upgrades(wealth)
|
||||
else:
|
||||
continue
|
||||
except ValueError:
|
||||
continue
|
||||
elif result in range(base_lvl_flip_chance.chance,100):
|
||||
print('Zahl')
|
||||
heads_amount = 1
|
||||
answer = input()
|
||||
try:
|
||||
answer = int(answer)
|
||||
if answer == 4:
|
||||
homepage_upgrades(wealth)
|
||||
else:
|
||||
continue
|
||||
except ValueError:
|
||||
continue
|
||||
return result
|
||||
|
||||
class coin_multiplier(): #Klasse, die das Upgrade darstellt, welches die anzahl des Bonusses beim Kopfwurf veraendert
|
||||
def __init__(self, multiplier:float, cost:int):
|
||||
self.multiplier = multiplier
|
||||
self.cost = cost
|
||||
|
||||
class flip_chance(): #Upgrade, welches die Chance auf kopf veraendert
|
||||
def __init__(self, chance:int, cost:int):
|
||||
self.chance = chance
|
||||
self.cost = cost
|
||||
|
||||
class lucky_coin(): #Upgrade, welches festlegt wie hoch die Wahrscheinlichkeit auf einen LuckyCoin (Jackpot) ist
|
||||
def __init__(self, chance:float, cost:int):
|
||||
self.chance = chance
|
||||
self.cost = cost
|
||||
|
||||
|
||||
base_lvl_coin_multiplier = coin_multiplier(0.5, 10)
|
||||
base_lvl_flip_chance = flip_chance(10, 1)
|
||||
base_lvl_lucky_coin = lucky_coin(0.5, 10)
|
||||
|
||||
def lvl_up_multiplier():
|
||||
lvl_up = True
|
||||
|
||||
if lvl_up == True:
|
||||
base_lvl_coin_multiplier.cost *= 2.5
|
||||
base_lvl_coin_multiplier.multiplier *= 5
|
||||
#print(f' CM: {base_lvl_coin_multiplier.cost}')
|
||||
print(f' Coin Multiplier liegt bei: {base_lvl_coin_multiplier.multiplier}')
|
||||
|
||||
def lvl_up_flip_chance():
|
||||
lvl_up = True
|
||||
|
||||
if lvl_up == True:
|
||||
base_lvl_flip_chance.cost *= 10
|
||||
base_lvl_flip_chance.chance *= 2
|
||||
#print(f" FC Cost: {base_lvl_flip_chance.cost}")
|
||||
print(f" Flip Chance liegt bei: {base_lvl_flip_chance.chance}%")
|
||||
|
||||
def lvl_up_lucky_coin():
|
||||
lvl_up = True
|
||||
|
||||
if lvl_up == True:
|
||||
base_lvl_lucky_coin.cost *= 3
|
||||
base_lvl_lucky_coin.chance *= 1.5
|
||||
#print(f" Lucky Coin Cost: {base_lvl_lucky_coin.cost}")
|
||||
print(f" Lucky Coin Chance liegt bei: {base_lvl_lucky_coin.chance}%")
|
||||
|
||||
def homepage_upgrades(wealth):
|
||||
while True:
|
||||
answer = input(f' Flip Chance [{base_lvl_flip_chance.chance}% > {base_lvl_flip_chance.chance*2}%] (Preis: {base_lvl_flip_chance.cost} Coins): [1]\n Lucky Coin [{base_lvl_lucky_coin.chance}% > {base_lvl_lucky_coin.chance*2}] (Preis: {base_lvl_lucky_coin.cost} Coins): [2]\n Multiplier [+{base_lvl_coin_multiplier.multiplier} Coins > {base_lvl_coin_multiplier.multiplier*5} Coins] (Preis: {base_lvl_coin_multiplier.cost} Coins): [3]\n Zum Game: [4]')
|
||||
try:
|
||||
answer = int(answer)
|
||||
if answer == 1:
|
||||
if wealth >= base_lvl_flip_chance.cost:
|
||||
lvl_up_flip_chance()
|
||||
wealth -= base_lvl_flip_chance.cost
|
||||
print(f' Erfolgreich geupgradet. Du hast noch {wealth} Coins')
|
||||
|
||||
else:
|
||||
print('Du bist zu arm')
|
||||
|
||||
elif answer == 2:
|
||||
if wealth >= base_lvl_lucky_coin.cost:
|
||||
lvl_up_lucky_coin()
|
||||
wealth -= base_lvl_lucky_coin.cost
|
||||
print(f' Erfolgreich geupgradet. Du hast noch {wealth} Coins')
|
||||
else:
|
||||
print('Du bist zu arm')
|
||||
|
||||
elif answer == 3:
|
||||
if wealth >= base_lvl_coin_multiplier.cost:
|
||||
lvl_up_multiplier()
|
||||
wealth -= base_lvl_coin_multiplier.cost
|
||||
print(f' Erfolgreich geupgradet. Du hast noch {wealth} Coins')
|
||||
else:
|
||||
print('Du bist zu arm')
|
||||
elif answer == 4:
|
||||
coin_flip(wealth, coins_per_head, heads_amount)
|
||||
|
||||
elif answer not in (1, 2, 3, 4):
|
||||
print('Bitte 1, 2, 3 oder 4!')
|
||||
|
||||
except ValueError:
|
||||
print('Nur Zahlen')
|
||||
input()
|
||||
|
||||
def check_lucky_coin(result, wealth):
|
||||
if result < base_lvl_lucky_coin.chance or result == base_lvl_lucky_coin.chance:
|
||||
print('Herzlichen Glueckwunsch! Du hast den Lucky Coin bekommen')
|
||||
wealth *= 1.5
|
||||
return wealth
|
||||
|
||||
|
||||
result = coin_flip(wealth, coins_per_head, heads_amount)
|
||||
wealth = check_lucky_coin(result, wealth)
|
||||
@@ -1,32 +0,0 @@
|
||||
class coin_multiplier(): #Klasse, die das Upgrade darstellt, welches die anzahl des Bonusses beim Kopfwurf veraendert
|
||||
def __init__(self, multiplier:float, cost:int):
|
||||
self.multiplier = multiplier
|
||||
self.cost = cost
|
||||
|
||||
class flip_chance(): #Upgrade, welches die Chance auf kopf veraendert
|
||||
def __init__(self, chance:int, cost:int):
|
||||
self.chance = chance
|
||||
self.cost = cost
|
||||
|
||||
class lucky_coin(): #Upgrade, welches festlegt wie hoch die Wahrscheinlichkeit auf einen LuckyCoin (Jackpot) ist
|
||||
def __init__(self, chance:float, cost:int):
|
||||
self.chance = chance
|
||||
self.cost = cost
|
||||
|
||||
|
||||
|
||||
base_lvl_coin_multiplier = coin_multiplier(0.5, 10)
|
||||
|
||||
def lvl_up():
|
||||
lvl_up = True
|
||||
|
||||
if lvl_up == True:
|
||||
base_lvl_coin_multiplier.cost *= 2.5
|
||||
base_lvl_coin_multiplier.multiplier *= 5
|
||||
print(base_lvl_coin_multiplier.cost)
|
||||
|
||||
lvl_up()
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user