#include <stdio.h>
#define FALSE 0
#define TRUE 1
enum {up, down, left, right};
char arr2[12][13];
char arr[12][13]={
\"############\",
\"#...#......#\",
\"S.#.#.####.#\",
\"###.#....#.#\",
\"#....###.#.E\",
\"####.#.#.#.#\",
\"#..#.#.#.#.#\",
\"##.#.#.#.#.#\",
\"#........#.#\",
\"######.###.#\",
\"#......#...#\",
\"############\"};
char pattern1[2][4]={
\"###\",
\"#.#\"
};
char pattern2[2][4]={
\"#.#\",
\"###\"
};
char pattern3[3][3]={
\"##\",
\"#.\",
\"##\"
};
char pattern4[3][3]={
\"##\",
\".#\",
\"##\"
};
int MatchPattern( void);
int main(void){
int move[83];
int matching=TRUE;
int i,j;
for(i=0; i<12; i++)
for(j=0; j<13; j++)
arr2[i][j]= arr[i][j];
while(matching==TRUE)
matching=MatchPattern();
for(i=0; i<12; i++){
for(j=0; j<13; j++)
printf(\"%c\",arr[i][j]);
printf(\"\\n\");
}
printf(\"\\n\");
for(i=0; i<12; i++){
for(j=0; j<13; j++)
printf(\"%c\",arr2[i][j]);
printf(\"\\n\");
}
return 0;
}
int MatchPattern(void){
int i,j;
int matching=FALSE;
for(i=0; i<12; i++){
for(j=0; j<13; j++){
if(arr2[i][j]==\'#\'&& arr2[i][j+1]==\'#\'&& arr2[i][j+2]==\'#\'&&
arr2[i+1][j]==\'#\'&& arr2[i+1][j+1]==\'.\' && arr2[i+1][j+2]==\'#\'){
arr2[i+1][j+1]=\'#\';
matching=TRUE;
}
if(arr2[i][j]==\'#\'&& arr2[i][j+1]==\'.\'&& arr2[i][j+2]==\'#\'&&
arr2[i+1][j]==\'#\'&& arr2[i+1][j+1]==\'#\' && arr2[i+1][j+2]==\'#\'){
arr2[i][j+1]=\'#\';
matching=TRUE;
}
if(arr2[i][j]==\'#\'&& arr2[i][j+1]==\'#\'&&
arr2[i+1][j]==\'#\'&& arr2[i+1][j+1]==\'.\'&&
arr2[i+2][j]==\'#\'&& arr2[i+2][j+1]==\'#\'){
arr2[i+1][j+1]=\'#\';
matching=TRUE;
}
if(arr2[i][j]==\'#\'&& arr2[i][j+1]==\'#\'&&
arr2[i+1][j]==\'.\'&& arr2[i+1][j+1]==\'#\'&&
arr2[i+2][j]==\'#\'&& arr2[i+2][j+1]==\'#\'){
arr[i+1][j]=\'#\';
matching=TRUE;
}
}
}
return matching;
}
으으 노가다의 연속
자네 백트래킹은 알고 프로그래밍하는가?
모르고 하는겁니다! [핡]
좌수법과 우수법은 알고 하나요?