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

このWIKIを編集するにはパスワード入力が必要です

認証パスワード