from random import randint from os import system, name import re import csv score = 0 hodnoty = {} with open("hodnoty.csv", "r") as csv_file: csv_reader = csv.reader(csv_file) for row in csv_reader: key = str(row[0]) value = str(row[1]) hodnoty[key] = value 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, throw): 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: for x in inp: x = int(x) if x > count: if count == 1: ran = "1" else: ran = f"1–{count}" data = ("msg", "ER02", f"Zvolte prosím kostky v platném rozsahu ({ran}):", count) return data old_throw = [] for y in range(count): if str(y+1) in inp: old_throw.append(throw[y]) count = len(inp) data = ("count", count, old_throw) return data def check_value(throw): throw_s = throw.copy() throw_s.sort() throw_str = "".join(throw_s) hodnota = False for h in hodnoty: if h in throw_str: hodnota = True break return hodnota def game(data: tuple): if data[0] == "count": count = data[1] old_throw = data[2] new_throw = throw(count) clear() print(show_throw(new_throw)) if check_value(new_throw): msg = "Vyberte, kterými kostkami chcete hodit znovu (např. 135):" if old_throw != "": msg += f"\nHodnoty odložených kostek: {old_throw}" inp = input(msg) data = evaluate(inp, count, new_throw) game(data) else: print("Smůla, třeba příště.") elif data[0] == "msg": if data[1] == "ER01" or data[1] == "ER02": msg = data[2] count = data[3] inp = input(msg) data = evaluate(inp, count) game(data) else: msg = data[1] print(msg) 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()