Esempio n. 1
0
void CheckScore()
{
  int black_score,white_score = 0; 
  black_score = CountScore(BLACK);
  white_score = CountScore(WHITE);
  if(color == BLACK){
    black_score -= 1;
  }else{
    white_score -= 1;
  }
  printf("BLACK:%d,WHITE:%d\n",black_score,white_score);
  if(black_score > white_score){
    printf("BLACK WIN!\n");
  }else if(white_score > black_score){
    printf("WHITE WIN!\n");
  }else{
    printf("DRAW\n");
  }
}
Esempio n. 2
0
int CRegionEvaluator::Score(ChessType* board, ChessType color, int emptiesNum) const
{
	ChessType oppcolor = Oppl_ch(color);
	int tmpEval = BorderScore(board, color, oppcolor);		//四边
	tmpEval += AngleScore(board, color, oppcolor);			//四角
	tmpEval += CenterScore(board, color, oppcolor);			//中心区域
	tmpEval += InnerBorderScore(board, color, oppcolor);	//中心区域
	tmpEval += CountScore(board, color, oppcolor, emptiesNum);

	return tmpEval;
}
Esempio n. 3
0
	/* 1~10까지 행의 열 전체가 1로되면 블록사라짐. 사라지면 Stepper함수 실행 */
	void RemoveLine(void)
	{
		int i;
		int x, y;
		int z = 0;

		// 19행부터 시작해서  1행까지 반복
		for (y = 19; y >= 1; y--)
		{
			//행기준으로 4번 반복
			for (z = 0; z < 4; z++)
			{
				i = 0;
				//1열부터 10열까지 증가
				for (x = 1; x < 11; x++)
				{
					//행기준
					if (board[y][x] == 1)
					{
						i++;
						//1이 10개면 행 블록 삭제
						if (i == 10)
						{
							for (x = 1; x < 11; x++)
							{
								SetCursorPosition((x + 2) * 2, y + 2);
								printf("  ");
							}
							//행 기준으로 블록을 내리기
							CountScore();
							Stepper(y);
						} // end if
					} // end if
				}
			}
		} // end for
	} // end RemoveLine()