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"); } }
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; }
/* 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()