前へ 一覧 次へ
第八課 勝利は誰の手に

これで最後です。
やることは唯一つ。勝利判定。
実装方法としては盤面上のコマを数え上げるだけです。
難しいことはなにもないのでさっさと実装してしまいましょう。


//勝者判定
void checkWinner(){
	int i,j,b=0,w=0;
	
	//コマを数え上げる
	for(i = 0 ; i < BOARDSIZE ; ++i){
		for(j = 0 ; j < BOARDSIZE ; ++j){
			switch(board[i][j]){
			case BLACK:
				++b;
				break;
			case WHITE:
				++w;
				break;
			default :
				break;
			}
		}
	}
	
	//最後に盤面表示
	disp();
	
	//勝者を表示
	if(b > w) printf("○:Winner BLACK!\n");
	else if(b < w) printf("●:Winner WHITE!\n");
	else printf("Drawn game.");
	
}

……遂に、遂に完成です!
忘れずにmain関数の最後にこの関数を書き加えてくださいね。

int main()
{
	int turn = 0;
	
	//盤面の初期化
	setBoard();
	
	//ゲームのメインループ
	while(turn < 2){
		//どちらの手番か表示
		if(turn == 0) printf("turn:○\n");
		else printf("turn:●\n");
		
		//盤面表示
		disp();
		
		//入力
		input(turn);
		
		//手番交替
		turn = (turn + 1) % 2;
		
		//終了判定
		switch(checkEnd(turn)){
			case 1:
				printf("pass\n");
				turn = (turn + 1) % 2;
				break;
			case 2:
				printf("game end\n");
				turn = 2;
				break;
			default:
				break;
		}
		
	}
	
	checkWinner();
	
	return 0;
	
}

……途中から薄々感づいてはいましたが、
ほとんど解説になってないし、それほど初心者向けになっているかも微妙ですね。
それでもまぁ、無いよりはましな解説になってるといいなぁ。
もしここまで読んでくれた人がいるなら、お疲れさまでした〜。




補講へ
SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送