parent
5bb64c61c5
commit
4e9654845c
84
game.py
84
game.py
|
@ -2,30 +2,70 @@
|
||||||
|
|
||||||
import random
|
import random
|
||||||
import time
|
import time
|
||||||
|
import sys
|
||||||
|
|
||||||
def check_special_score(score):
|
|
||||||
|
def check_special_score(score, p):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
:param score:
|
:param score:
|
||||||
:return:
|
:return:
|
||||||
"""
|
"""
|
||||||
|
|
||||||
if score == 9:
|
if score == 9 and p[1]:
|
||||||
print("9 erreicht. Ende.")
|
print("9 erreicht. Ende.")
|
||||||
return True, score
|
return True, score
|
||||||
elif score == 10:
|
elif score == 10 and p[1]:
|
||||||
print("10 erreicht. Noch ein letzter Wurf.")
|
print("10 erreicht. Noch ein letzter Wurf.")
|
||||||
time.sleep(3)
|
time.sleep(3)
|
||||||
r = roll_dice()
|
r = roll_dice()
|
||||||
print(r)
|
print(r)
|
||||||
return True, score + sum(r)
|
return True, score + sum(r)
|
||||||
elif score >= 16:
|
elif score >= 16 and p[1]:
|
||||||
print("Sie haben 16 erreicht.")
|
print("Sie haben 16 erreicht/überschritten.")
|
||||||
|
return True, score
|
||||||
|
elif score == 9 and not p[1]:
|
||||||
|
return True, score
|
||||||
|
elif score == 10 and not p[1]:
|
||||||
|
r = roll_dice()
|
||||||
|
return True, score + sum(r)
|
||||||
|
elif score >= 16 and not p[1]:
|
||||||
|
print(str(p[0]) + " hat 16 erreicht/überschritten.")
|
||||||
return True, score
|
return True, score
|
||||||
else:
|
else:
|
||||||
return False, score
|
return False, score
|
||||||
|
|
||||||
|
|
||||||
|
def welcome():
|
||||||
|
"""
|
||||||
|
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
name = input("Wie heißen Sie?")
|
||||||
|
player_number = input("Gegen wie viele Personen wollen Sie spielen?")
|
||||||
|
|
||||||
|
players = []
|
||||||
|
human = (name, True)
|
||||||
|
players.append(human)
|
||||||
|
|
||||||
|
for p in range(int(player_number)):
|
||||||
|
players.append(("P" + str(p), False))
|
||||||
|
|
||||||
|
sixteen_is_dead(players)
|
||||||
|
|
||||||
|
|
||||||
|
def choose_loser(all_results):
|
||||||
|
loser_score = 15
|
||||||
|
losers = []
|
||||||
|
|
||||||
|
for r in all_results: # get lowest score
|
||||||
|
if r["final_score"] < loser_score:
|
||||||
|
loser_score = r["final_score"]
|
||||||
|
|
||||||
|
for r in all_results: # check if multiple players with lowest score
|
||||||
|
if r["final_score"] == loser_score:
|
||||||
|
losers.append(r["player"])
|
||||||
|
|
||||||
def roll_dice(number=1, faces=6, seed=None):
|
def roll_dice(number=1, faces=6, seed=None):
|
||||||
"""
|
"""
|
||||||
Throws a certain number of dice with a certain number of faces.
|
Throws a certain number of dice with a certain number of faces.
|
||||||
|
@ -67,31 +107,33 @@ def sixteen_is_dead(players):
|
||||||
player_score += sum(current_roll)
|
player_score += sum(current_roll)
|
||||||
print("Damit haben Sie insgesamt " + str(player_score) + " gewürfelt.")
|
print("Damit haben Sie insgesamt " + str(player_score) + " gewürfelt.")
|
||||||
|
|
||||||
button, player_score = check_special_score(player_score)
|
button, player_score = check_special_score(player_score, p)
|
||||||
|
|
||||||
|
if player_score >= 16:
|
||||||
|
print("Sie haben verloren!")
|
||||||
|
sys.exit()
|
||||||
|
|
||||||
if button:
|
if button:
|
||||||
break
|
break
|
||||||
|
|
||||||
button = input("Wollen Sie weiterwürfeln?")
|
button = input("Wollen Sie weiterwürfeln?")
|
||||||
|
|
||||||
all_results.append(player_score)
|
all_results.append({"player": p[0], "final_score": player_score})
|
||||||
|
|
||||||
else: # AI
|
else: # AI
|
||||||
pass
|
ai_score = 0
|
||||||
|
|
||||||
# TODO: implement winner decision process, max(all_results) and min(all_results)
|
while ai_score < 9: # roll until score at least 9
|
||||||
print(all_results)
|
current_roll = roll_dice()
|
||||||
|
ai_score += sum(current_roll)
|
||||||
|
|
||||||
|
button, ai_score = check_special_score(ai_score, p)
|
||||||
|
|
||||||
|
if button:
|
||||||
|
break
|
||||||
|
|
||||||
|
all_results.append({"player": p[0], "final_score": ai_score})
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
name = input("Wie heißen Sie?")
|
welcome()
|
||||||
player_number = input("Gegen wie viele Personen wollen Sie spielen?")
|
|
||||||
|
|
||||||
players = []
|
|
||||||
human = (name, True)
|
|
||||||
players.append(human)
|
|
||||||
|
|
||||||
for p in range(int(player_number)):
|
|
||||||
players.append(("P" + str(p), False))
|
|
||||||
|
|
||||||
sixteen_is_dead(players)
|
|
||||||
|
|
Loading…
Reference in New Issue