question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

possible logic error in 60_mastermind

See original GitHub issue

while porting 60_mastermind to rust, I came across a peculiar issue, here in mastermind.bas (the flawed logic is present in every other port I looked at too):

1010 FOR X=1 TO P 1020 GOSUB 3500 1030 IF I(X)=0 THEN 1070 1035 GOSUB 6500 1040 GOSUB 4000 1050 GOSUB 4500 1060 IF B1<>B OR W1<>W THEN I(X)=0 1070 NEXT

this code basically looks through every possible combination, for all that haven’t already been marked as impossible (with previously given player feedback), it checks whether or not the black and white pins that that combination should get are not-equal to what the previous guess got … if they are equal, the combination is marked as possible, if they aren’t equal then the combination is marked as impossible

the issue is, this almost always will mark the correct answer as impossible, unless its first guess happens to be right

a potential fix (that I can’t test but did work in my rust port), is changing that logic from 1060 IF B1<>B OR W1<>W THEN I(X)=0 to 1060 IF B1>B OR W1>W THEN I(X)=0 which, as compared to 1060 IF B1>B OR W1>W THEN I(X)=0, makes the computer a bit more powerful, and actually able to win with some consistency

note: it could very well be that I messed something up in my implementation, hence why I’m making this issue, in case people agree that this is a problem I’ll be making a PR to fix it that I’ll link to in the comments

edit: typo

Issue Analytics

  • State:closed
  • Created 2 years ago
  • Comments:10 (10 by maintainers)

github_iconTop GitHub Comments

1reaction
AnthonyMichaelTDMcommented, Mar 8, 2022

sure, does that ^ look good?

0reactions
jnelliscommented, Apr 1, 2022

well i think that settles it, issue is fixed so no use keeping this issue open

I am unconvinced. Here is a 2 color, 2 position game, which is the simplest game that isn’t just black or white as a possibility.

Here, with this fix, the computer guessed that same guess twice.

NOW I GUESS.  THINK OF A COMBINATION.
HIT RETURN WHEN READY:?
MY GUESS IS: WB  BLACKS, WHITES ? 1,0
MY GUESS IS: BB  BLACKS, WHITES ? 0,0
MY GUESS IS: WB  BLACKS, WHITES ? 1,0
MY GUESS IS: WW  BLACKS, WHITES ? 2,0
I GOT IT IN  4  MOVES!

I don’t see how you were witnessing it throwing up the “you gave inconsistent results” every time unless you had the reporting of black and white pegs backwards.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Auto Layout Guide: Logical Errors
There are no tools or step-by-step instructions here. Fixing logical errors typically involves experiments and iterative tests, both to identify ...
Read more >
logic error according to whom logic error [closed]
Assuming a and b are both declared before the line as integers, the answer is that there are two logical errors. if(a=5).
Read more >
9.4. Fixing Logic Errors — LaunchCode's LCHS ...
If there is a logic error in our program, it will run without crashing. However, it will NOT do the right thing. Remember...
Read more >
What is a Logic Error? - Definition from Techopedia
A logic error is classified as a type of runtime error that can result in a program producing an incorrect output. It can...
Read more >
Logic error
In computer programming, a logic error is a bug in a program that causes it to operate incorrectly, but not to terminate abnormally...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found