75 - 50 = 25 yes, that is the math, but you don't test that value against the players position to decide if the monster is on the left or right of the player. Instead you are getting that value to only see if it is positive or negative.
If you are at 75 and the monster is at 50 that means you are on the right of the monster because the resulted math is positive; however lets do the reverse math
Monster at 75 player at 50.
50 - 75 = -25
The result is negative and therefor the assumption can accurately be made that the monster is to the left of the apparent player.
Negative numbers would be on left and positive numbers on right; however if you check the monster against the player then the reverse can be said, but I would always check the player against the monster. The same goes for Top to Bottom checks, where negative numbers are above(on Top of) and positive numbers are below( or Under).
Also, use >= or <= instead of == in your collision detections. Example if the Player(32 pixels wide and tall) and Zombie at same dimensions and the player is at 50, 50 and the zombie at 75, 75. Assuming you are using the TOP LEFT pixel in the image as point of reference then the players MAX X would be 82 and MAX Y would be 82, the monsters MAX X would be 108 and MAX Y would be 108 as you can see the players MAX X and MAX Y are within the bounds of the Zombie and a collision has occurred, but they are not == to each other; however the collision detection you are doing should have detected the collision at any point the zombie was even 1 pixel in the same space occupied by the player rather than ever having allowed the collision to get that close as no two objects can ever share the exact same space without a collision having occurred.
check this post which I made that would be easier than me just applying that same example to this topic.
http://www.gamedev.n...ost__p__4844943