void GameWidget::recBroke(int x, int y, bool *xmap) { int t = type(ref(x, y)); broke(x, y, xmap); // X-1, Y if (x > 0 && !xmap[y*scr_width + x - 1] && type(ref(x-1, y)) == t) recBroke(x-1, y, xmap); // X+1, Y if (x < scr_width-1 && !xmap[y*scr_width + x + 1] && type(ref(x+1, y)) == t) recBroke(x+1, y, xmap); // X, Y-1 if (y > 0 && !xmap[(y-1)*scr_width + x] && type(ref(x, y-1)) == t) recBroke(x, y-1, xmap); // X, Y+1 if (y < scr_height-1 && !xmap[(y+1)*scr_width + x] && type(ref(x, y+1)) == t) recBroke(x, y+1, xmap); // X-1, Y+1 if (x > 0 && y < scr_height-1 && !xmap[(y+1)*scr_width + x - 1] && type(ref(x-1, y+1)) == t) recBroke(x-1, y+1, xmap); // X+1, Y+1 if (x < scr_width-1 && y < scr_height-1 && !xmap[(y+1)*scr_width + x + 1] && type(ref(x+1, y+1)) == t) recBroke(x+1, y+1, xmap); // X-1, Y-1 if (x > 0 && y > 0 && !xmap[(y-1)*scr_width + x - 1] && type(ref(x-1, y-1)) == t) recBroke(x-1, y-1, xmap); // X+1, Y-1 if (x < scr_width-1 && y > 0 && !xmap[(y-1)*scr_width + x + 1] && type(ref(x+1, y-1)) == t) recBroke(x+1, y-1, xmap); }
int main(){ textSize = strlen(text); analyze(); broke(); return 0; }
void go(){ // printf("give-me the encoded text\n"); // scanf("%s",BUFF); const char * BUFF = "kqerejebcppcjcrkieacuzbkrvpkrbcibqcarbjcvfcupkriofkpacuzqepbkrxpeiieabdkpbcpfcdccafieabdkpbcpfeqpkazbkrhaibkapcciburccdkdccjcidfuixpafferbiczdfkabicbbenefcupjcvkabpcydccdpkbcocperkivkscpicbrkijpkabi"; // const char * BUFF = "emglosudcgdncuswysfhnsfcykdpumlwgyicoxysipjckqpkugkmgolicgincgacksnisacykzsckxecjckshysxcgoidpkzcnkshicgiwygkkgkgoldsilkgoiusigledspwzugfzccmdgyysfuszcnxeojncgyeoweupxezgacgnfglknsacigoiyckxcjuciuzcfzccndgyysfeuekuzcsocfzccnciaczejncshfzejzegmxcyhcjumgkucy"; textSize = strlen(BUFF); text =(char *) calloc(textSize, sizeof(char)); strcpy(text, BUFF); analyze(); map(); // free(BUFF); // free(text); broke(); }