I like to practice my mental math sometimes and so I decided to make a simple terminal game which challenges you to
solve conversion and calculation problems.
I’ve still got to write the calculation problems but right now I am stuck debugging the conversion part!
If anyone would feel up to review my code and see why the conversion of hexadecimal to decimal (line 124 - 135) always says the right answer is wrong? I am pretty much dumbfounded as it literally prints for example:
“Wrong! You submitted 421321 as your final answer but the right one is: 421321”
I think both the hex-to-decimal and binary-to-decimal have the same issue.
You are taking the inputs and assigning them to the variable input_result. Whatever is provided as the input (text/number etc.) will be stored as a string.
In your random_conv_pick function, you are making the comparisons input_result == result
The decimal_to_binary and decimal_to_hexadecimal return strings as result.
So, input_result == result works fine.
But, in the binary_to_decimal and hexadecimal_to_decimal functions, the result is returned as a number. Therefore, input_result == result becomes a comparison between a string and a number. Hence, the output you are seeing.
You can do either of the two:
Leave random_conv_pick unchanged, and modify the return to be return str(result) in the binary_to_decimal and hexadecimal_to_decimal functions.
Or leave the two functions unchanged and modify random_conv_pick to make the comparison input_result == str(result)