But in a regular IF statement I can test if catsprite is less than 500 x position and if it ISN'T I can still use ELSE to affect that catsprite. I'm not stuck being unable to affect it because it failed the first IF statement. But in an OR statement, if the object fails the OR statment I can't affect the object??
I mean there's a difference between the intent of
'Hey, check if catsprite.x<500 OR tacos>0 - if either, change THAT PARTICULAR catsprite!'
'Hey, check if catsprite.x<500 OR tacos>0 - if either, change the catsprite on the screen. The ONE catsprite that is there! One might even say change ANY OLD catsprite, though that's a bit odd to say when there is only one pre existing catsprite! But this is all to say I am not aiming at a particular catsprite, just any old one that is around. It doesn't matter if it's <500!'
Sure it makes sense for the first example to reference only that catsprite. If I'm talking about a 'pat the cat that is sitting in the box' it makes sense only to pat a cat that is in a box.
What doesn't make sense is that 'if there is a cat in the box or tacos>0 then pat A cat' results in NO cats being patted at all!!
There isn't a contradiction there, you're just forcing the same semantics to both examples. When in a regular IF statement, if the cat isn't in the box but I use an ELSE statement, I can still pat that cat! I'm not stopped from affecting it because the IF statement failed - quite the contrary! That's the contradiction - where in a failed IF statement I can affect an object with an ELSE but in a partly failed OR statement I'm not allowed to affect the object at all!
If I'm totally wrong I'll blame it on rant! But currently I'd say the ideology of OR statements contradicts the ideology of IF statements. IF statements let you test a value of an object, but still affect that object (with ELSE) even if the IF statement about the object failed.
TL:DR; Really OR needs a way to distinguish between 'Hey, remember that objects value I tested in the OR statement - I want to affect that particular object!' and 'Hey, remember that object value I tested in the OR statement - well don't worry about it failing. I just want to affect that type of object, not just the one that failed the OR test, mmmm'k! Just like even if an objects value fails an IF statement, I can still affect that object with ELSE'