-
Notifications
You must be signed in to change notification settings - Fork 0
/
dice.py
107 lines (101 loc) · 4.09 KB
/
dice.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
from random import seed
from random import randint
import time
from art import text2art
from colorama import init, Back, Fore, Style
from sys import platform
import funfacts
if platform == "win32":
init(convert=True) # idk it just breaks on windows if you dont have it and breaks on linux if you do
loop = 1
yn = 0
colors = ["RED", "YELLOW", "BLUE", "CYAN", "GREEN", "MAGENTA"]
try:
readprefs = open("preferences.txt", "r")
except:
while yn == 0:
preference = input("Would you like to see fun facts about the numbers you roll? (y/n)\n")
if preference == "y" or preference == "Y" or preference == "yes" or preference == "Yes":
f = open("preferences.txt", "a")
f.write("true")
f.close()
yn = 1
print("Preferences saved! If you change your mind, you can edit preferences.txt and change it to \"false\".")
elif preference == "n" or preference == "N" or preference == "no" or preference == "No":
f = open("preferences.txt", "a")
f.write("false")
f.close()
yn = 1
print("Preferences saved! If you change your mind, you can edit preferences.txt and change it to \"true\".")
else:
print("it's a yes or no question is it really that hard")
while loop == 1:
colorRandom = randint(0, 5)
try:
sides = int(input(Style.BRIGHT + "How many sides should the dice have?\n"))
if sides == 0:
what = text2art("what",font="larry3d")
print(getattr(Fore, colors[randint(0, 5)]) + what)
elif sides > 999999999:
no = text2art("please no",font="larry3d")
print(getattr(Fore, colors[randint(0, 5)]) + no)
else:
for loop5 in range(7):
print("\n")
for loop1 in range(24):
seed()
rolled = str(randint(1, sides))
art = text2art(" " + rolled,font='block',chr_ignore=True)
for loop2 in range(13):
print ("\033[A \033[A")
pickedColor = (loop1 + colorRandom)
try: # solution for looping over the list of colors. probably not the best way but whatever
color = colors[pickedColor]
except:
try:
color = colors[(pickedColor - 6)]
except:
try:
color = colors[(pickedColor - 12)]
except:
try:
color = colors[(pickedColor - 18)]
except:
try:
color = colors[(pickedColor - 24)]
except:
try:
color = colors[(pickedColor - 30)]
except:
print("what")
print(getattr(Fore, color) + Style.BRIGHT + art)
spin = loop1 * loop1 * 0.0011 + 0.05
time.sleep(spin)
time.sleep(0.3)
for loop4 in range(2):
for loop3 in range(14):
print ("\033[A \033[A")
print(Fore.WHITE + Style.BRIGHT + "You rolled a:\n" + art)
time.sleep(0.5)
for loop3 in range(14):
print ("\033[A \033[A")
print(Fore.BLACK + Style.BRIGHT + "You rolled a:\n" + art)
time.sleep(0.5)
for loop3 in range(14):
print ("\033[A \033[A")
print(Fore.WHITE + Style.BRIGHT + "You rolled a:\n" + art)
time.sleep(0.5)
randFact = randint(0, 2)
pref = readprefs.readline()
if pref == "true":
try:
numFacts = funfacts.funfacts[int(rolled)]
fact = numFacts[randFact]
if fact[-1] in [".", ".\""]: #adds a period at the end if it doesnt have one
print(Style.BRIGHT + "Fun fact: " + fact + "\n")
else:
print(Style.BRIGHT + "Fun fact: " + fact + ".\n")
except KeyError:
pass
except:
print("Please enter a number!\n")