Created
May 3, 2018 19:08
-
-
Save Mr-Coxall/8fb48712ca66524e572b21d494dfde16 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Mr. Coxall | |
# This Micro:Bit Python code goes through all the combinations of 2 44-bit positive binary numbers | |
from microbit import * | |
# variable holding the decimal value of a button | |
a_input = 0 | |
a_input_as_binary = [] | |
b_input = 0 | |
b_input_as_binary = [] | |
def convert_decimal_to_binary(decimal_number, input_letter): | |
# this function accepts a decimal number | |
# and converts it to the binary equivalent | |
# it returns the binary number in a list | |
if isinstance(decimal_number, int) and decimal_number <= 15 and decimal_number >= 0 and isinstance(input_letter, str) and (input_letter == "A" or input_letter == "B"): | |
remainder_stack = [] | |
while decimal_number > 0: | |
remainder = decimal_number % 2 | |
remainder_stack.append(remainder) | |
decimal_number = decimal_number // 2 | |
binary_number = [] | |
while not remainder_stack == []: | |
binary_number.append(remainder_stack.pop()) | |
# if not returning 4 digits, add leading 0s | |
while not len(binary_number) == 4: | |
binary_number.insert(0, 0) | |
return binary_number | |
else: | |
return "error" | |
pin0.write_digital(0) | |
pin1.write_digital(0) | |
pin2.write_digital(0) | |
pin8.write_digital(0) | |
pin12.write_digital(0) | |
pin13.write_digital(0) | |
pin14.write_digital(0) | |
pin15.write_digital(0) | |
display.show(Image.YES) | |
sleep(500) | |
while True: | |
display.clear() | |
for b_input in range(0, 15+1): | |
for a_input in range(0, 15+1): | |
# convert decimal to binary | |
a_input_as_binary = convert_decimal_to_binary(a_input, "A") | |
b_input_as_binary = convert_decimal_to_binary(b_input, "B") | |
# turn on the digital pins | |
pin0.write_digital(int(a_input_as_binary[3])) | |
pin1.write_digital(int(a_input_as_binary[2])) | |
pin2.write_digital(int(a_input_as_binary[1])) | |
pin8.write_digital(int(a_input_as_binary[0])) | |
pin12.write_digital(int(b_input_as_binary[3])) | |
pin13.write_digital(int(b_input_as_binary[2])) | |
pin14.write_digital(int(b_input_as_binary[1])) | |
pin15.write_digital(int(b_input_as_binary[0])) | |
display.scroll(str(a_input) + "+" + str(b_input) + "=" + str(a_input+b_input)) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment