b-1
名前を付けよう
いつものように思考エンジンの名前を決定します。
やっぱり名前が無いと締まりませんよね(!?)
さて、何にしようか…
では今回は、「出雲」にしようかと思います。
島根県東部の旧国名ですね。
命名の理由は、現在管理人が住んでるからです。(来年ぐらいには脱出したいなぁ…)
投了するだけの将棋ソフト
//コンピュータ将棋「出雲」
#include <stdio.h>
int c_equal(char a[],char b[],int s,int n);
int main(){
char usi_code[1024*8];
setvbuf(stdout,NULL,_IONBF,0); //バッファが溢れなくても出入力できるように
setvbuf(stdin,NULL,_IONBF,0);
for(;;){ //メインループ
gets(usi_code); //USI形式でのメッセージ受信
if(c_equal(usi_code,"usinewgame",0,10)){
//そのうち初期化処理を書くかも
}else if(c_equal(usi_code,"usi",0,3)){
printf("id name Izumo01\n");
printf("id authoer HOSHINO Yuki\n");
printf("usiok\n");
}else if(c_equal(usi_code,"isready",0,7)){
printf("readyok\n");
}else if(c_equal(usi_code,"setoption",0,9)){
//何もしない(笑)
}else if(c_equal(usi_code,"quit",0,4)){
break;
}else if(c_equal(usi_code,"go mate",0,7)){
printf("checkmate notimplemented\n");
}else if(c_equal(usi_code,"gameover",0,8)){
//多分何もしなくていいはず(!?)
}else if(c_equal(usi_code,"go",0,2)){
printf("bestmove resign\n");
}else if(c_equal(usi_code,"position",0,2)){
//無視!!
}
}
return 0;
}
//文字列が等しいか調べる関数
//a[]とb[]がsからn文字等しいか調べる
int c_equal(char a[],char b[],int s,int n){
int i;
for(i=s;i<s+n;i++){
if(a[i]!=b[i])return 0;
}
return 1;
}
- 最終更新:2012-01-02 05:07:29