ナンプレを解くプログラム

テラ力技。

#include <stdio.h>
#define BUFLEN 80

int initial[4][4];
int count=0;

typedef struct {
int first;/*最初から決まっているマスかどうか*/
int num;/*マスに入ってる数値*/
}NP;

typedef struct {
int try_number;/*試す数字*/
NP np[4][4];/*盤面*/
}Work;

int check_place(Work work, int left,int top,int width,int height,int X,int Y){
int x,y;

/*ダブっていたら1を返す*/

}return 0;
}

void solve(Work work,int n){
/*印がついていたらreturn*/

int i,j,x,y;
x=n%4;
y=n/4;

/*クリアーしていたら(n==16)印をつけてクリアー盤面を書いてreturn*/

/*最初から決まってるマスだったら次のマスにいく*/

/*実際に入れてみて縦、横、四角でダブってたらreturn*/

/*1〜4をそれぞれ次のマスで試してみる*/
}

int number_place(){
int x,y;
Work work;
work.try_number = 1;

/*初期配置をworkに入れる*/

solve(work,0);
return count>0;
}

int main(void){
char buf[BUFLEN];
int i;
for(i=0;i<4;i++){
fgets(buf,BUFLEN,stdin);
sscanf(buf,"%d %d %d %d",
&initial[i][0],&initial[i][1],
&initial[i][2],&initial[i][3]);
}
if (number_place()==1){
printf("solved.\n");
} else {
printf("not solved.\n");
}
}

これで大丈夫だと思う。


posted by 右京 | c言語
blog comments powered by Disqus
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。