from __future__ import division debi_dict = {} debi_blocks = [] debi_dict.update({"blocks":debi_blocks}) def print_board(board): for row in board: print " ".join(row) def debi_a(exp): empty_list = [] for x in range(0,5): if x%2 == 0: empty_list.append([" ",'.'," ",'.'," ", ".", " "]) else: empty_list.append([" ","|"," ","|"," ","|"," "]) if exp > 7: pos = (exp-7)/12 b_pos = pos - int(pos) if b_pos != 0: a_num = 2+int(pos) if debi_dict.get(a_num) == debi_dict.get("Null"): exec("list_%d = empty_list") %(a_num) exec("debi_dict.update({a_num:list_%d})")%(a_num) debi_blocks.append(a_num) else: a_num = 1+int(pos) b_pos = 1 if debi_dict.get(a_num) == debi_dict.get("Null"): exec("list_%d = empty_list") %(a_num) exec("debi_dict.update({a_num:list_%d})")%(a_num) debi_blocks.append(a_num) b_pos = int(b_pos*1000) if b_pos == int(1000/12): debi_dict.get(a_num)[0][0] = "-" elif b_pos == int(2000/12): debi_dict.get(a_num)[0][2] = "-" elif b_pos == int(3000/12): debi_dict.get(a_num)[0][4] = "-" elif b_pos == int(4000/12): debi_dict.get(a_num)[0][6] = "-" elif b_pos == int(5000/12): debi_dict.get(a_num)[2][0] = "-" elif b_pos == int(6000/12): debi_dict.get(a_num)[2][2] = "-" elif b_pos == int(7000/12): debi_dict.get(a_num)[2][4] = "-" elif b_pos == int(8000/12): debi_dict.get(a_num)[2][6] = "-" elif b_pos == int(9000/12): debi_dict.get(a_num)[4][0] = "-" elif b_pos == int(10000/12): debi_dict.get(a_num)[4][2] = "-" elif b_pos == int(11000/12): debi_dict.get(a_num)[4][4] = "-" elif b_pos == 1000: debi_dict.get(a_num)[4][6] = "-" else: a_num = 1 if debi_dict.get(a_num) == debi_dict.get("Null"): exec("list_%d = empty_list") %(a_num) exec("debi_dict.update({a_num:list_%d})")%(a_num) debi_blocks.append(a_num) if exp == 7: debi_dict.get(a_num)[4][6] = "-" elif exp == 6: debi_dict.get(a_num)[4][4] = "-" elif exp == 5: debi_dict.get(a_num)[4][2] = "-" elif exp == 4: debi_dict.get(a_num)[4][0] = "-" elif exp == 3: debi_dict.get(a_num)[2][6] = "-" elif exp == 2: debi_dict.get(a_num)[2][4] = "-" elif exp == 1: debi_dict.get(a_num)[2][2] = "-" elif exp == 0: debi_dict.get(a_num)[2][0] = "-" def debi_b(four_num): a_num = 1 empty_list = [] for x in range(0,5): if x%2 == 0: empty_list.append([" ",'.'," ",'.'," ", ".", " "]) else: empty_list.append([" ","|"," ","|"," ","|"," "]) if debi_dict.get(a_num) == debi_dict.get("Null"): exec("list_%d = empty_list") %(a_num) exec("debi_dict.update({a_num:list_%d})")%(a_num) debi_blocks.append(a_num) if four_num == 4: debi_dict.get(a_num)[0][6] = "-" elif four_num == 3: debi_dict.get(a_num)[0][4] = "-" elif four_num == 2: debi_dict.get(a_num)[0][2] = "-" elif four_num == 1: debi_dict.get(a_num)[0][0] = "-" def convert_to_debi(num): cond1 = True while cond1: q = len(str(num)) - 1 cond2 = True if q < 30 and q > 0: if q % 3 == 0: exp = int(((q/3)-1)*10+9) elif (q-2) % 3 == 0: exp = int(((q-2)/3)*10+6) elif (q-1) % 3 == 0: exp = int(((q-1)/3)*10+3) elif q == 0: cond1 = False cond2 = False while cond2: expd = 10*2**exp if num >= expd: num -= expd debi_a(exp) elif num < expd: exp -= 1 expd = 10*2**exp if num < 10: cond1 = False cond2 = False elif len(str(int(expd))) - len(str(int(num))) > 1: cond2 = False if num != 0: cond1 = True i = 4 while cond1: if num >= i: num -= i debi_b(i) i -= 1 else: i -= 1 if num == 0: cond1 = False Number = raw_input("What is your number?") convert_to_debi(int(Number)) debi_dict['blocks'] = sorted(debi_blocks) for x in debi_dict.get("blocks"): print print x print_board(debi_dict.get(x)) # © Copyright 2014 David McFeeters and Henrique Granado. All rights reserved.
Run
Reset
Share
Import
Link
Embed
Language▼
English
中文
Python Fiddle
Python Cloud IDE
Follow @python_fiddle
Browser Version Not Supported
Due to Python Fiddle's reliance on advanced JavaScript techniques, older browsers might have problems running it correctly. Please download the latest version of your favourite browser.
Chrome 10+
Firefox 4+
Safari 5+
IE 10+
Let me try anyway!
url:
Go
Python Snippet
Stackoverflow Question