Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Having some trouble with my program #66

Open
TacoShredder opened this issue Apr 14, 2018 · 4 comments
Open

Having some trouble with my program #66

TacoShredder opened this issue Apr 14, 2018 · 4 comments

Comments

@TacoShredder
Copy link

I am not sure if the problem is microbit or python itself.
It is a Morse Code translator and the error is most likely on Line 40
https://pastebin.com/HuAfMdca

@ZanderBrown
Copy link

Directly embedding snippet:

# Add your Python code here. E.g.
from microbit import *
#LINE 40 is the error
times = 0
a_presses = 0
b_presses = 0
section1 = 'Not Defined'
section2 = 'Not Defined'
section3 = 'Not Defined'
main = True
sub = True
loop1 = True
loop2 = True
loop3 = True
contin = True
letter = 'Error: No Letter Found'
 
while main:
    while sub:
        #First Time
        display.scroll("GO1")
        while loop1:
            sleep(3000)
            if button_a.get_presses() == 1:
                a_presses = button_a.get_presses()
                b_presses = button_b.get_presses()
                section1 = '0'
                loop1 = False;
            if button_b.get_presses() == 1:
                a_presses = button_a.get_presses()
                b_presses = button_b.get_presses()
                section1 = '1'
                loop1 = False;
           
 
        while loop2:
            display.scroll("GO2")
            sleep(3000)
            #PROBLEM BELOW: which ever button (A/B) goes first, will not work for Part2
            if button_b.get_presses() > b_presses and button_a.get_presses == a_presses and contin == True:
                a_presses = button_a.get_presses()
                b_presses = button_b.get_presses()
                section2 = '1'
                loop2 = False            
            if button_a.get_presses() > a_presses and button_b.get_presses == b_presses and contin == True:
                a_presses = button_a.get_presses()
                b_presses = button_b.get_presses()
                section2 = '0'
                loop2 = False
            if button_b.get_presses() > b_presses and button_a.get_presses() > a_presses and contin == True:
                section2 = '2'
                loop2 = False
 
        if section2 == '2':
            if section1 == '0':
                letter = 'E'
            if section1 == '1':
                letter = 'T'
            contin = False        
            sub = False
 
 
 
        while loop3:
            display.scroll("GO3")
            sleep(3000)
            if button_a.get_presses() > a_presses and button_b.get_presses() > b_presses and contin == True:
                section3 = '2'
                loop3 = False
            if button_a.get_presses() > a_presses and contin == True:
                a_presses = button_a.get_presses()
                b_presses = button_b.get_presses()
                section3 = '0'
                loop3 = False
            if button_b.get_presses() > b_presses and contin == True:
                a_presses = button_a.get_presses()
                b_presses = button_b.get_presses()
                section3 = '1'
                loop3 = False
 
        if section3 == '2':
            if section1 == '0' and section2 == '1':
                letter = 'A'
            if section1 == '0' and section2 == '0':
                letter = 'I'
            if section1 == '1' and section2 == '0':
                letter = 'N'
            if section1 == '1' and section2 == '1':
                letter = 'M'            
            contin = False        
            sub = False
 
    display.show(letter)

@ZanderBrown
Copy link

So you suspected the problem was around Line 40:

if button_b.get_presses() > b_presses and button_a.get_presses == a_presses and contin == True:

your problem is painfully simple yet easily overlooked, Let's break this statement up:

button_b.get_presses() > b_presses
button_a.get_presses == a_presses
contin == True

At this point i'm sure you see your mistake, you've forgotten the parentesis (()) after button_a.get_presses mean that instead of comparing the result of get_presses to a_presses you are infact comparing the function itself.

So the corrected statement is:

if button_b.get_presses() > b_presses and button_a.get_presses() == a_presses and contin:

@TacoShredder
Copy link
Author

can't believe I didn't notice that! Thanks a lot!

@TacoShredder
Copy link
Author

This time there is a different error ): I added a section4 and if the input for 'section3' is 'A' then section3 will replay itself

# Add your Python code here. E.g.
from microbit import *
times = 0
a_presses = 0
b_presses = 0
section1 = 'Not Defined'
section2 = 'Not Defined'
section3 = 'Not Defined'
section4 = 'Not Defined'
main = True
sub = True
loop1 = True
loop2 = True
loop3 = True
loop4 = True
contin = True
letter = 'Error: No Letter Found'
 
while main:
    while sub:
        #First Time
        display.scroll("GO1")
        while loop1:
            sleep(3000)
            if button_a.get_presses() == 1:
                a_presses = button_a.get_presses()
                b_presses = button_b.get_presses()
                section1 = '0'
                loop1 = False;
            if button_b.get_presses() == 1:
                a_presses = button_a.get_presses()
                b_presses = button_b.get_presses()
                section1 = '1'
                loop1 = False;
           
 
        while loop2:
            display.scroll("GO2")
            sleep(3000)
            if button_b.get_presses() > b_presses and button_a.get_presses() == a_presses and contin == True:
                a_presses = button_a.get_presses()
                b_presses = button_b.get_presses()
                section2 = '1'
                loop2 = False            
            if button_a.get_presses() > a_presses and button_b.get_presses() == b_presses and contin == True:
                a_presses = button_a.get_presses()
                b_presses = button_b.get_presses()
                section2 = '0'
                loop2 = False
            if button_b.get_presses() > b_presses and button_a.get_presses() > a_presses and contin == True:
                section2 = '2'
                loop2 = False
 
        if section2 == '2':
            if section1 == '0':
                letter = 'E'
            if section1 == '1':
                letter = 'T'
            contin = False        
            sub = False
 
 
 
        while loop3:
            display.scroll("GO3")
            sleep(3000)
            if button_a.get_presses() > a_presses and button_b.get_presses() > b_presses and contin == True:
                section3 = '2'
                loop3 = False
            if button_a.get_presses() > a_presses and contin == True:
                a_presses = button_a.get_presses()
                b_presses = button_b.get_presses()
                section3 = '0'
                loop3 = False
            if button_b.get_presses() > b_presses and contin == True:
                a_presses = button_a.get_presses()
                b_presses = button_b.get_presses()
                section3 = '1'
                loop3 = False
 
        if section3 == '2':
            if section1 == '0' and section2 == '1':
                letter = 'A'
            if section1 == '0' and section2 == '0':
                letter = 'I'
            if section1 == '1' and section2 == '0':
                letter = 'N'
            if section1 == '1' and section2 == '1':
                letter = 'M'            
            contin = False        
            sub = False
            
            
        while loop4:
            display.scroll("GO4")
            sleep(3000)
            if button_a.get_presses() > a_presses and button_b.get_presses() > b_presses and contin == True:
                section4 = '2'
                loop4 = False
            if button_a.get_presses() > a_presses and contin == True:
                a_presses = button_a.get_presses()
                b_presses = button_b.get_presses()
                section4 = '0'
                loop4 = False
            if button_b.get_presses() > b_presses and contin == True:
                a_presses = button_a.get_presses()
                b_presses = button_b.get_presses()
                section4 = '1'
                loop4 = False
 
        if section4 == '2':
            if section1 == '0' and section2 == '0' and section3 == '0':
                letter = 'S'
            if section1 == '0' and section2 == '0' and section3 == '1':
                letter = 'U'
            if section1 == '0' and section2 == '1' and section3 == '0':
                letter = 'R'
            if section1 == '0' and section2 == '1' and section3 == '1':
                letter = 'W'
            if section1 == '1' and section2 == '1' and section3 == '1':
                letter = 'O'
            if section1 == '1' and section2 == '0' and section3 == '0':
                letter = 'D'
            if section1 == '1' and section2 == '1' and section3 == '0':
                letter = 'G'
            if section1 == '0' and section2 == '1' and section3 == '0':
                letter = 'R'
            contin = False            
            sub = False
 
    display.show(letter)```

microbit-sam pushed a commit to microbit-sam/PythonEditor that referenced this issue Aug 6, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants