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:
2025-12-16 15:40:43 +01:00
parent 3b912b00fc
commit 7eb59d65bd
8 changed files with 222 additions and 202 deletions

181
Game/game.py Normal file
View 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

View File

@@ -1,48 +1,49 @@
import sys import sys
def title_screen(): def title_screen(): #Funktion, die den ersten Teil des Titel-Bildschirms darstellt
print('Herzlich Willkommen zu') print('Herzlich Willkommen zu')
input('Druecke eine beliebige Taste') input('Druecke eine beliebige Taste')
print(*'MUENZENWERFER') print(*'COINFLIPPERS (in gut)')
print('') 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: while True:
print('Druecke [1] um ein Spiel zu starten und [2] um das Spiel zu beenden') 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: try:
a = int(a) a = int(a) #Testet, ob die Eingabe ein Integer (ganze Zahl) ist
if a in (1, 2): if a in (1, 2): #Wenn a 1 oder 2 ist wird die Schleife gebrochen ---> naechste Funktion
break break
else: else:
print('1 oder 2!') 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') 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): def menu_navigation(a): #Funktion, die abfragt, ob man die Spielmechanik kennt und ob man das Spiel ueberhaupt spielen moechte
if a == 1: 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!') print('Nun Gut!')
input('') input('')
print('Du weisst, wie man spielt, oder?') print('Du weisst, wie man spielt, oder?')
print('') print('')
playknowledge = input('') 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('Super!')
print('') print('')
print('Dann kann es ja losgehen') print('Dann kann es ja losgehen')
input() input()
print('HINWEIS: mit [4] kannst du nach jedem Wurf das Upgrade-Menu aufrufen') 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() input('VERSTANDEN [ENTER]')
else: 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') print('Nein? Dann lies nochmal die README.txt und druecke [Enter], wenn du fertig bist')
input('') 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') print('Schade, es gibt jetzt kein Zurueck mehr')
input() 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

View File

@@ -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)

View File

@@ -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()

View File

@@ -8,10 +8,10 @@ uns einig, dass wir mit unserem Projekt ein wenig zu hoch gezielt haben. Besonde
wir auf das Spiel Coin Flipper gekommen. Da die Stunde dann leider auch schon zuende war, mussten wir unsere Planungen auf die nächste Stunde verschieben. wir auf das Spiel Coin Flipper gekommen. Da die Stunde dann leider auch schon zuende war, mussten wir unsere Planungen auf die nächste Stunde verschieben.
Tag 3: Tag 3:
Leider war Linus heute krank und so musste ich mich alleine an unser neues Ziel setzten. Um ein Grundgerüst für unser Spiel zu schaffen, habe ich mich daran probiert ein Zufallssystem zu coden, bei dem nach Eingabe ein imaginärer "Coin" geworfen wird, der mit einer Leider war Linus heute krank und so musste Folke sich alleine an unser neues Ziel setzten. Um ein Grundgerüst für unser Spiel zu schaffen, hat sich Folke daran probiert ein Zufallssystem zu coden, bei dem nach Eingabe ein imaginärer "Coin" geworfen wird, der mit einer
niedrigen Wahrscheinlichkeit auf Kopf landet. Das hat auch gut geklappt und war nach einiger Zeit fertig. Dazu wollte ich dann noch eine Art Counter und ein Geldsystem coden, bei dem man nach einem Kopf Wurf Geld bekommt. niedrigen Wahrscheinlichkeit auf Kopf landet. Das hat auch gut geklappt und war nach einiger Zeit fertig. Dazu wollten wir dann noch eine Art Counter und ein Geldsystem coden, bei dem man nach einem Kopf Wurf Geld bekommt.
(Jetzt habe ich zuhause festgestellt, dass ich einen Fehler beim Comitten des Codes gemacht habe, und dieser deshalb nicht auf den Server hochgeladen wurde. Da wir aber nur noch 2 weitere Unterrichtsstunden haben, haben wir uns dazu entschieden, zuhause weiterzuarbeiten bzw. (Jetzt hat Folke zuhause festgestellt, dass er einen Fehler beim Comitten des Codes gemacht hat, und dieser deshalb nicht auf den Server hochgeladen wurde. Da wir aber nur noch 2 weitere Unterrichtsstunden haben, haben wir uns dazu entschieden, zuhause weiterzuarbeiten bzw.
den verlorenen Code neu zu coden.) den verlorenen Code neu zu coden. Linus hat den verlorenen Code erneut verfasst und eine Basisspielmechanik von zu Hause aus hinzugefuegt, die Folke mit wichtigen details ergaenzt hat)
Zwischen Tag 3 und Tag 4: Zwischen Tag 3 und Tag 4:
Linus hat nach Beratung mit mir und meinen Ideen aus letzter Stunde bereits einen ersten Entwurf für das Spiel und ein Spielmenü gecodet. Das Menü lässt den Spieler über Start und Stop des Spiels entscheiden und verweist auf die READ.ME Datei. Das Spiel an sich, Linus hat nach Beratung mit mir und meinen Ideen aus letzter Stunde bereits einen ersten Entwurf für das Spiel und ein Spielmenü gecodet. Das Menü lässt den Spieler über Start und Stop des Spiels entscheiden und verweist auf die READ.ME Datei. Das Spiel an sich,
@@ -28,3 +28,8 @@ zugreifen zu können, haben wir ein Upgrade Menü gecodet, was sich jederzeit ö
Im nächsten Schritt haben wir uns daran gesetzt die einzelnen Komponenten des Spiels zu einem Spiel zusammenzufügen. Das heißt Menü, Gamecode, Upgrade-Menü. Im nächsten Schritt haben wir uns daran gesetzt die einzelnen Komponenten des Spiels zu einem Spiel zusammenzufügen. Das heißt Menü, Gamecode, Upgrade-Menü.
Zzwischendurch haben wir immer wieder Formatverbesserungen oder auch Absicherungen hinzugefügt um den Code so immer weiter zu optimieren. Zzwischendurch haben wir immer wieder Formatverbesserungen oder auch Absicherungen hinzugefügt um den Code so immer weiter zu optimieren.
16.12.:
Heute haben wir das Projekt zuende gebracht. Wir haben ein Ende fuer das Spiel programmiert und einen Weg gefunden die Option darzulegen das Spiel zurueckzusetzen und zu beenden.
Linus hat den Code kommentiert und Folke hat formelle anpassungen am Code vorgenommen.

View File

@@ -6,12 +6,17 @@ In unserem Spiel 'CoinFlippers in gut' geht es darum 10 mal hintereinander bei e
DOCH ES IST NICHT, WIE BEI EINEM NORMALEN MUENZWURF, denn... DOCH ES IST NICHT, WIE BEI EINEM NORMALEN MUENZWURF, denn...
Es gibt Anfangs eine Wahrscheinlichkeit von 20% auf Kopf und demnach 80% auf Zahl. Es gibt Anfangs eine Wahrscheinlichkeit von 5% auf Kopf und demnach 95% auf Zahl.
Damit man nicht eine Wahrscheinlichkeit von 0,2^10 braucht, um das Spiel durchzuspielen, haben wir uns, inspiriert an dem Spiel 'CoinFlipper', Upgrades ueberlegt, welche beispielsweise die Wahrscheinlichkeit auf 'Kopf' erhoehen. Damit man nicht eine Wahrscheinlichkeit von 0,05^10 braucht, um das Spiel durchzuspielen, haben wir uns, inspiriert an dem Spiel 'CoinFlipper', Upgrades ueberlegt, welche beispielsweise die Wahrscheinlichkeit auf 'Kopf' erhoehen.
Es gibt jedoch immer eine Anzahl an Coins die man pro 'Kopf'-Wurf zum Beispiel bekommt. Diese Zahl kann geupgraded werden und je nachdem, wie man sich entscheidet, kann man das Spiel schneller durchspielen. #### Upgrades
Denn auf lang oder kurz kannst du nicht verlieren.
Es ist nicht der Kampf gegen das Spiel, sondern der Kampf gegen dein Durchhaltevermoegen und deine Entscheidungsfaehigkeit, die dieses einzigartige Spielerlebnis praegen. Flip Chance: Verdoppelt die Wahrscheinlichkeit auf einen Kopfwurf
Lucky Coin: Erhoeht die Wahrscheinlichkeit auf einen Jackpot, der den Kontostand verdoppelt
Multiplier: Erhoeht die Anzahl an Bonus, den man mit steigender Streak von Kopf-Wuerfen erhaelt
Je nachdem, wie man sich entscheidet, kann man das Spiel schneller durchspielen. Denn auf lang oder kurz kannst du nicht verlieren.
Es ist nicht der Kampf gegen das Spiel, sondern der Kampf gegen dein Durchhaltevermoegen und deine Entscheidungsfaehigkeit, der dieses einzigartige Spielerlebnis praegt.
Also worauf wartest du noch? Also worauf wartest du noch?