void GetSuperFlip(RubiksState &start) { RubiksCube c; const int maxStrLength = 1024; char string[maxStrLength] = "U R2 F B R B2 R U2 L B2 R U- D- R2 F R- L B2 U2 F2"; start.Reset(); int index = 0; string[maxStrLength-1] = 0; if (strlen(string) == maxStrLength-1) { printf("Warning: input hit maximum string length!\n"); exit(0); } while (true) { int act; int cnt = GetNextMove(&string[index], act); if (cnt == 0) { break; } else { index += cnt; } c.ApplyAction(start, act); } }
Location AntInfo::GetNextLocation() { int d = GetNextMove(); if (d != -1) { return state.getLocation(location, d); } else return location; }
void GetInstanceFromStdin(RubiksState &start) { RubiksCube c; const int maxStrLength = 1024; // char string[maxStrLength] = // "L2 B D- L- F- B R- F- B R-"; // char string[maxStrLength] = // "L2 B D- L- F- B R2 F B R- F- R2 B- L2 D2 L2 D2 L2 U2 L2 F- D L- D2 L- F2 B2 L U- D- L B D2 F D- F- U- B L2 D2 L2 R2"; // char string[maxStrLength] = // length 18 // "B2 D- B- U- R- D- B- U2 L- R- B2 U2 B2 L- U B- D F L2 F2 D F- L- D- B2 L- U2 F B2 R2 D L- U D2 F B- L2 B R- U B- L B2 D F R U- D- F R2 U2 L- B2 L- R- D- L2 R- F2 D L- D B2 D L B- R- D B- L2 B2 D2 F B2 U2 R- D- L- B2 R- D- L2 F- D- R U F L2 D- R- U- L2 B U- F2 U B- D F2 D2"; char string[maxStrLength] = // length 16 "L2 B D- L- F- B R2 F B R- F- R2 B- L2 D2 L2 D2 L2 U2 L2 F- D L- D2 L- F2 B2 L U- D- L B D2 F D- F- U- B L2 D2 L2 R2 B- U R- D2 F R- B L R U- B- R2 F- L2 R F R2 B L- F- D- F2 U2 R U- L D F2 B- R- D- L2 B- L- B2 L- D2 B2 D- B D R- B D L- B- R F- L- F- R2 D2 L2 B- L2 B2 U L2"; // const char *result = fgets(string, maxStrLength, stdin); start.Reset(); // if (result == 0) // { // printf("No more entries found; exiting.\n"); // exit(0); // } int index = 0; string[maxStrLength-1] = 0; if (strlen(string) == maxStrLength-1) { printf("Warning: input hit maximum string length!\n"); exit(0); } while (true) { int act; int cnt = GetNextMove(&string[index], act); if (cnt == 0) { break; } else { index += cnt; } c.ApplyAction(start, act); } }