Changeset 187
- Timestamp:
- 09/29/06 21:53:24 (2 years ago)
- Files:
-
- 06/libkombilo/search.cc (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
06/libkombilo/search.cc
r186 r187 823 823 signature[5] = m.y + 97; 824 824 } 825 if (counter==3 0) {825 if (counter==31) { 826 826 signature[6] = m.x + 97; 827 827 signature[7] = m.y + 97; 828 828 } 829 if (counter==5 0) {829 if (counter==51) { 830 830 signature[8] = m.x + 97; 831 831 signature[9] = m.y + 97; 832 832 } 833 if (counter==7 0) {833 if (counter==71) { 834 834 signature[10] = m.x + 97; 835 835 signature[11] = m.y + 97; … … 851 851 void Algo_signature::endgame_process() { 852 852 // symmetrize signature 853 char* m ax_signature = new char[12];854 for(int i=0; i<12; i++) m ax_signature[i] = signature[i];853 char* min_signature = new char[12]; 854 for(int i=0; i<12; i++) min_signature[i] = signature[i]; 855 855 for (int f=0; f<8; f++) { // for all flips 856 856 // compute flipped signature … … 858 858 for(int i=0; i<6; i++) { 859 859 if (signature[2*i] == 't') next[2*i] = 't'; 860 else next[2*i] = Pattern::flipsX(f, signature[2*i] , signature[2*i+1], boardsize-1, boardsize-1);860 else next[2*i] = Pattern::flipsX(f, signature[2*i]-'a', signature[2*i+1]-'a', boardsize-1, boardsize-1)+'a'; 861 861 if (signature[2*i+1] == 't') next[2*i+1] = 't'; 862 else next[2*i+1] = Pattern::flipsY(f, signature[2*i] , signature[2*i+1], boardsize-1, boardsize-1);862 else next[2*i+1] = Pattern::flipsY(f, signature[2*i]-'a', signature[2*i+1]-'a', boardsize-1, boardsize-1)+'a'; 863 863 } 864 // if next > max_signature, then swap864 // if next < min_signature, then swap 865 865 for(int j=0; j<12; j++) { 866 if (next[j] < max_signature[j]) break;867 if (next[j] > max_signature[j]) {866 if (next[j] > min_signature[j]) break; 867 if (next[j] < min_signature[j]) { 868 868 char* help = next; 869 next = m ax_signature;870 m ax_signature = help;869 next = min_signature; 870 min_signature = help; 871 871 break; 872 872 } … … 875 875 } 876 876 delete [] signature; 877 dbinsert1blob(db, "insert into algo_signature (id, signature) values (?,?);", gid, max_signature, 12); 878 delete [] max_signature; 877 dbinsert1blob(db, "insert into algo_signature (id, signature) values (?,?);", gid, min_signature, 12); 878 // for(int i=0; i<12; i++) printf("%c", min_signature[i]); printf("\n"); 879 delete [] min_signature; 879 880 } 880 881
