So I'm doing the race horse exercise (Chapter 8-1 Exercise 1). I have created a very long IF/Else statement to check which horse is ahead of the others. It works for the most part but when more than one horse crosses the line, usually horse number one wins.
Now I've watched the variables on many different runs and I have come to the conclusion that when Alice asks If Distance1 < Distance2 that it is taking the absolute value of these numbers.
For example, one of my runs had horse1 with a distance of -0.04 and horse2 with a distance of -1.24. Logically, horse2 won because it is farther than horse1, but the program keeps picking horse1.
This is not just limited to horse1. The program seems to be breaking the tie as long as the distance is between 0.49 and -0.99.

I rewrote the If/Else (found in the raceHorseGame.Winner method so you don't have to go searching for it) and it seems to be more consistent about picking the correct winner, but still seems to be having the same issue.

But in remaking the IF/Else, I've come to a different conclusion. It seems that it is disregarding the If distance1 < distance2 and just looking for if distance1 < 0.5.

Well, I've seemed to have found a solution on my own. the problem was I was using "or" instead of "and." For example, I had "If either distance1 < distance2 or distance1 < distance3, or both" when I should've had "If distance1 < distance2 and distance1 < distance3." Makes a world of a difference.