diff --git a/source/solver.c b/source/solver.c new file mode 100644 index 0000000000000000000000000000000000000000..43546c237015e776852678e96ed03ac36c410db7 --- /dev/null +++ b/source/solver.c @@ -0,0 +1,162 @@ +/* solver.c */ +/* Last Change: 2018/07/09 (Mon) 15:54:41. */ + +#include +/* #include */ +#include +/* #include */ +/* #include */ +/* #include */ + +int board[8][72][72]; +int depth,height,width; +int lines; +//z,y,x + +void reset(void){ + int i,j,k; + for(i=0;i72||width<=0) + printf("Error: width\n"); + scanf(" %c",&c); //X + scanf(" %d",&height); + if(height>72||height<=0) + printf("Error: height\n"); + scanf(" %c",&c); //X + scanf(" %d",&depth); + if(depth>8||depth<=0) + printf("Error: depth\n"); + scanf(" %s",str); //LINE_NUM + scanf(" %d",&lines); + if(lines<=0) + printf("Error: lines\n"); + for(i=1;i<=lines;i++){ + scanf(" %s",str); //LINE#X + scanf(" %c",&c); //( + scanf(" %d",&x); + if(x>=72||x<0) + printf("Error: x\n"); + scanf(" %c",&c); //, + scanf(" %d",&y); + if(y>=72||y<0) + printf("Error: y\n"); + scanf(" %c",&c); //, + scanf(" %d",&z); + if(z>=72||z<0) + printf("Error: z\n"); + scanf(" %c",&c); //) + board[z-1][y][x]=-i; + scanf("%c",&c); //) + /* scanf(" %[ -]",&c); //space or - */ + scanf(" %c",&c); //( + scanf(" %d",&x); + if(x>=72||x<0) + printf("Error: x\n"); + scanf(" %c",&c); //, + scanf(" %d",&y); + if(y>=72||y<0) + printf("Error: y\n"); + scanf(" %c",&c); //, + scanf(" %d",&z); + if(z>=72||z<0) + printf("Error: z\n"); + scanf(" %c",&c); //) + board[z-1][y][x]=-i; + } + return; +} + +int order(int num){ //1-lines -> 1-lines + return num; +} + +int connected(int line){ + int i,j,k; + for(i=0;i=1;i--) + if(connectable(order(num),order(i))){ + delete(order(i)); + actuallyconnect(order(num)); + connect(i); + } + return; +} + +void solve(void){ + int i; + for(i=1;i<=lines;i++) + connect(i); + return; +} + +void write(void){ + int i,j,k; + printf("SIZE %dX%dX%d\n",width,height,depth); + for(k=0;k