c1e94faf98
funkce evaluate kontroluje maximální možný počet hozených kostek
64 lines
1.6 KiB
Python
64 lines
1.6 KiB
Python
from random import randint
|
|
from os import system, name
|
|
import re
|
|
|
|
def throw(count):
|
|
count = int(count)
|
|
new_throw = []
|
|
for dice in range(count):
|
|
new_throw.append(str(randint(1, 6)))
|
|
return new_throw
|
|
|
|
def show_throw(throw):
|
|
pretty_list = ", ".join(throw)
|
|
pretty_list += "\n"
|
|
for i in range(1, len(throw) + 1):
|
|
pretty_list += "^ "
|
|
pretty_list += "\n"
|
|
for i in range(1, len(throw) + 1):
|
|
pretty_list += f"{i} "
|
|
return pretty_list
|
|
|
|
def clear():
|
|
if name == 'nt':
|
|
_ = system('cls')
|
|
else:
|
|
_ = system('clear')
|
|
|
|
def evaluate(inp, count):
|
|
inp = str(inp)
|
|
if re.search("^\d+$", inp):
|
|
if len(inp) > count:
|
|
data = ("msg", "ER01", "Tolika kostkami nemůžete hodit. Zkuste to znovu:", count)
|
|
return data
|
|
else:
|
|
count = len(inp)
|
|
data = ("count", count)
|
|
return data
|
|
|
|
def game(data: tuple):
|
|
if data[0] == "count":
|
|
count = data[1]
|
|
new_throw = throw(count)
|
|
clear()
|
|
print(show_throw(new_throw))
|
|
inp = input("Vyberte, kterými kostkami chcete hodit znovu (např. 135):")
|
|
data = evaluate(inp, count)
|
|
game(data)
|
|
elif data[0] == "msg":
|
|
if data[1] == "ER01":
|
|
msg = data[2]
|
|
count = data[3]
|
|
inp = input(msg)
|
|
data = evaluate(inp, count)
|
|
game(data)
|
|
|
|
def main():
|
|
print("Vítejte ve hře v kostky!")
|
|
input("Prosím, stiskněte enter pro první hod:")
|
|
data = ("count", 6)
|
|
game(data)
|
|
|
|
if __name__ == "__main__":
|
|
main()
|