fork(1) download
  1. #include <stdio.h>
  2. #include <stdbool.h>
  3.  
  4. int main(void) {
  5. // your code goes here
  6.  
  7. char Ship; //Could be 0-7 (8 is reversed for special purpose)
  8. char NewShip = 1; //Could be 0-7 (8 is reversed for special purpose)
  9. char NewShipModVersion = 1; //Test
  10. char NewShipAndVersion = 1; //Test
  11.  
  12. char ShipMod = 1;
  13. char ShipAnd = 1;
  14.  
  15. short Frequency = 9999; //This could be from 0 to 9999
  16. bool NumberToFrequency = true;
  17.  
  18. //Frequency = GetNextFrequencyToJoin(player->MyArena);
  19. if ( NumberToFrequency )
  20. { //TODO: maybe the below is just Frequency % 7; ?
  21. NewShip = (((unsigned long)Frequency >> 32) ^ abs(Frequency) & 7) - ((unsigned long)Frequency >> 32);
  22. NewShipAndVersion = abs(Frequency) & 7;
  23. NewShipModVersion = abs(Frequency) % 7;
  24. ShipMod = Frequency & 7;
  25. ShipAnd = Frequency % 7;
  26.  
  27. Ship = NewShip;
  28. } else {
  29. Ship = NewShip;
  30. }
  31.  
  32. printf("New Ship = %d Abs(AndShip) = %d Abs(ModShip) = %d AndShip = %d ModShip = %d Freq = %d\n", NewShip, NewShipAndVersion, NewShipModVersion, ShipMod, ShipAnd, Frequency);
  33. short i = -10000;
  34. for(i = -10000; i < 10001; i++) {
  35. NewShip = (((unsigned long)i >> 32) ^ abs(i) & 7) - ((unsigned long)i >> 32);
  36. NewShipAndVersion = abs(i) & 7;
  37. if(NewShip != NewShipAndVersion) {
  38. printf("Fail at %d\n", i);
  39. }
  40. }
  41. printf("All tested!");
  42.  
  43. return 0;
  44. }
  45.  
Success #stdin #stdout 0s 2292KB
stdin
Standard input is empty
stdout
New Ship = 7 Abs(AndShip) = 7 Abs(ModShip) = 3 AndShip = 7 ModShip = 3 Freq = 9999
All tested!