You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

86 lines
2.1 KiB

from funcs import *
from termcolor import colored
ops = (
'+',
'-',
'*',
'/',
)
par = (
'{n[0]}{o[0]}{n[1]}{o[1]}{n[2]}{o[2]}{n[3]}',
'({n[0]}{o[0]}{n[1]}){o[1]}({n[2]}{o[2]}{n[3]})',
'({n[0]}{o[0]}{n[1]}{o[1]}{n[2]}){o[2]}{n[3]}',
'({n[0]}{o[0]}{n[1]}){o[1]}{n[2]}{o[2]}{n[3]}',
)
colors = [
'red',
'green',
'yellow',
'blue',
'magenta',
'cyan'
]
var = ('a','b','c','d')
ps = perms(4)
def find(numbs,fast = False):
answers = [[],[]]
t = True
for perm in ps:
perm = list(
map(
lambda x:x-1,perm
)
)
org = perm
perm = choose(numbs,perm)
for o in range(4**3):
o = zp(con_base(o,4),3)
o = choose(ops,o)
for p in par:
g = p.format(**{'n':perm,'o':o})
try:
if round(eval(g),2) == 10:
if fast:
return [g]
else:
var_subbed = choose(var,org)
org = p.format(**{
'n':var_subbed,
'o':o
})
d = simplify(org)
if not (d in answers[0]):
answers[0].append(d)
answers[1].append(g)
except:
pass
return tuple(set(answers[1]))
Strng0 = 'Fancy colors? (y or n):'
Strng1 = 'One or all solutions (one or all):'
fancy_colors = input(Strng0) == 'y'
fast = input(Strng1) == 'all'
print(
find(
list(range(1,5)),False
)
)
while True:
if fancy_colors:
random.shuffle(colors)
for col in colors:
for ans in find(getInput(input('Numbers:')),fast):
print(colored(ans,col))
else:
for ans in find(getInput(input('Numbers:')),fast):
print(ans)