#include <stdio.h>
#include <stdbool.h>
int main(void) {
// your code goes here
char Ship; //Could be 0-7 (8 is reversed for special purpose)
char NewShip = 1; //Could be 0-7 (8 is reversed for special purpose)
char NewShipModVersion = 1; //Test
char NewShipAndVersion = 1; //Test
char ShipMod = 1;
char ShipAnd = 1;
short Frequency = 9999; //This could be from 0 to 9999
bool NumberToFrequency = true;
//Frequency = GetNextFrequencyToJoin(player->MyArena);
if ( NumberToFrequency )
{ //TODO: maybe the below is just Frequency % 7; ?
NewShip
= (((unsigned long)Frequency
>> 32) ^ abs(Frequency
) & 7) - ((unsigned long)Frequency
>> 32); NewShipAndVersion
= abs(Frequency
) & 7; NewShipModVersion
= abs(Frequency
) % 7; ShipMod = Frequency & 7;
ShipAnd = Frequency % 7;
Ship = NewShip;
} else {
Ship = NewShip;
}
printf("New Ship = %d Abs(AndShip) = %d Abs(ModShip) = %d AndShip = %d ModShip = %d Freq = %d\n", NewShip
, NewShipAndVersion
, NewShipModVersion
, ShipMod
, ShipAnd
, Frequency
); short i = -10000;
for(i = -10000; i < 10001; i++) {
NewShip
= (((unsigned long)i
>> 32) ^ abs(i
) & 7) - ((unsigned long)i
>> 32); NewShipAndVersion
= abs(i
) & 7; if(NewShip != NewShipAndVersion) {
}
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRib29sLmg+CgppbnQgbWFpbih2b2lkKSB7CgkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCgkKCWNoYXIgU2hpcDsgLy9Db3VsZCBiZSAwLTcgKDggaXMgcmV2ZXJzZWQgZm9yIHNwZWNpYWwgcHVycG9zZSkKCWNoYXIgTmV3U2hpcCA9IDE7IC8vQ291bGQgYmUgMC03ICAoOCBpcyByZXZlcnNlZCBmb3Igc3BlY2lhbCBwdXJwb3NlKQoJY2hhciBOZXdTaGlwTW9kVmVyc2lvbiA9IDE7IC8vVGVzdAoJY2hhciBOZXdTaGlwQW5kVmVyc2lvbiA9IDE7IC8vVGVzdAkKCQoJY2hhciBTaGlwTW9kID0gMTsKCWNoYXIgU2hpcEFuZCA9IDE7CgkKCXNob3J0IEZyZXF1ZW5jeSA9IDk5OTk7IC8vVGhpcyBjb3VsZCBiZSBmcm9tIDAgdG8gOTk5OQoJYm9vbCBOdW1iZXJUb0ZyZXF1ZW5jeSA9IHRydWU7CgkKCS8vRnJlcXVlbmN5ID0gR2V0TmV4dEZyZXF1ZW5jeVRvSm9pbihwbGF5ZXItPk15QXJlbmEpOwoJaWYgKCBOdW1iZXJUb0ZyZXF1ZW5jeSApCgl7IC8vVE9ETzogbWF5YmUgdGhlIGJlbG93IGlzIGp1c3QgRnJlcXVlbmN5ICUgNzsgPwoJICBOZXdTaGlwID0gKCgodW5zaWduZWQgbG9uZylGcmVxdWVuY3kgPj4gMzIpIF4gYWJzKEZyZXF1ZW5jeSkgJiA3KSAtICgodW5zaWduZWQgbG9uZylGcmVxdWVuY3kgPj4gMzIpOwoJICBOZXdTaGlwQW5kVmVyc2lvbiA9IGFicyhGcmVxdWVuY3kpICYgNzsKCSAgTmV3U2hpcE1vZFZlcnNpb24gPSBhYnMoRnJlcXVlbmN5KSAlIDc7CgkgIFNoaXBNb2QgPSBGcmVxdWVuY3kgJiA3OwoJICBTaGlwQW5kID0gRnJlcXVlbmN5ICUgNzsKCSAgCgkgIFNoaXAgPSBOZXdTaGlwOwoJfSBlbHNlIHsKCSAgU2hpcCA9IE5ld1NoaXA7Cgl9CgkKCXByaW50ZigiTmV3IFNoaXAgPSAlZCBBYnMoQW5kU2hpcCkgPSAlZCBBYnMoTW9kU2hpcCkgPSAlZCBBbmRTaGlwID0gJWQgTW9kU2hpcCA9ICVkIEZyZXEgPSAlZFxuIiwgTmV3U2hpcCwgTmV3U2hpcEFuZFZlcnNpb24sIE5ld1NoaXBNb2RWZXJzaW9uLCBTaGlwTW9kLCBTaGlwQW5kLCBGcmVxdWVuY3kpOwoJc2hvcnQgaSA9IC0xMDAwMDsKCWZvcihpID0gLTEwMDAwOyBpIDwgMTAwMDE7IGkrKykgewoJCU5ld1NoaXAgPSAoKCh1bnNpZ25lZCBsb25nKWkgPj4gMzIpIF4gYWJzKGkpICYgNykgLSAoKHVuc2lnbmVkIGxvbmcpaSA+PiAzMik7CgkJTmV3U2hpcEFuZFZlcnNpb24gPSBhYnMoaSkgJiA3OwoJCWlmKE5ld1NoaXAgIT0gTmV3U2hpcEFuZFZlcnNpb24pIHsKCQkJcHJpbnRmKCJGYWlsIGF0ICVkXG4iLCBpKTsKCQl9Cgl9CglwcmludGYoIkFsbCB0ZXN0ZWQhIik7CgkKCXJldHVybiAwOwp9Cg==