[ create a new paste ] login | about

Link: http://codepad.org/bKEitYXp    [ raw code | output | fork ]

k06a - C++, pasted on Apr 26:
#include <iostream>

using namespace std;

bool isValidHorseMove(const char * m) // "A1-B3"
{
    return 0 == (0xfffffb & ((m[0]-m[3])*(m[1]-m[4])+2));
}

int main()
{
   //  ABCDEFGH
   // 1........
   // 2..x.x...
   // 3.x...x..
   // 4...O....
   // 5.x...x..
   // 6..x.x...
   // 7........
   // 8........
   cout << "True: ";
   cout << isValidHorseMove("D4-B3");
   cout << isValidHorseMove("D4-C2");
   cout << isValidHorseMove("D4-E2");
   cout << isValidHorseMove("D4-F3");
   cout << isValidHorseMove("D4-F5");
   cout << isValidHorseMove("D4-E6");
   cout << isValidHorseMove("D4-C6");
   cout << isValidHorseMove("D4-B5");
   cout << endl;

   //  ABCDEFGH
   // 1........
   // 2.x.x.x..
   // 3..xxx...
   // 4.xxOxx..
   // 5..xxx...
   // 6.x.x.x..
   // 7........
   // 8........
   cout << "False: ";
   cout << isValidHorseMove("D4-B2");
   cout << isValidHorseMove("D4-D2");
   cout << isValidHorseMove("D4-F2");
   cout << isValidHorseMove("D4-C3");
   cout << isValidHorseMove("D4-D3");
   cout << isValidHorseMove("D4-E3");
   cout << isValidHorseMove("D4-B4");
   cout << isValidHorseMove("D4-C4");
   cout << isValidHorseMove("D4-E4");
   cout << isValidHorseMove("D4-F4");
   cout << isValidHorseMove("D4-C5");
   cout << isValidHorseMove("D4-D5");
   cout << isValidHorseMove("D4-E5");
   cout << isValidHorseMove("D4-B6");
   cout << isValidHorseMove("D4-D6");
   cout << isValidHorseMove("D4-F6");
   cout << endl;
}


Output:
1
2
True: truetruetruetruetruetruetruetrue
False: falsefalsefalsefalsefalsefalsefalsefalsefalsefalsefalsefalsefalsefalsefalsefalse


Create a new paste based on this one


Comments: