forked from len0rd/rockbox
FS#7536 - Make the superdom score calculation more elegant - thanks to Johnathon Mihalop
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14188 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
739f0ecd94
commit
97c4694bc2
1 changed files with 27 additions and 106 deletions
|
|
@ -350,112 +350,33 @@ void draw_board(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
int calc_strength(bool colour, int x, int y) {
|
int calc_strength(bool colour, int x, int y) {
|
||||||
/* Yes, I know. Please, if you know how, fix it. */
|
int a, b, score=0;
|
||||||
int score=0;
|
for (a = -1; a < 2; a++){
|
||||||
if(board[x][y].colour == colour) {
|
for (b = -1; b < 2; b++){
|
||||||
score+=10;
|
if (b == 0){
|
||||||
}
|
if(board[x + a][y].colour == colour)
|
||||||
if(board[x+1][y].colour == colour) {
|
score+=10;
|
||||||
score+=10;
|
if(((board[x + a][y].colour == colour) && board[x + a][y].tank) || ((board[x + a][y].colour == colour) && board[x + a][y].farm))
|
||||||
}
|
score+=30;
|
||||||
if(board[x][y+1].colour == colour) {
|
if(((board[x + a][y].colour == colour) && board[x + a][y].plane) || ((board[x + a][y].colour == colour) && board[x + a][y].ind))
|
||||||
score+=10;
|
score+=40;
|
||||||
}
|
if((board[x + a][y].colour == colour) && board[x + a][y].nuke)
|
||||||
if(board[x-1][y].colour == colour) {
|
score+=20;
|
||||||
score+=10;
|
if((board[x + a][y].colour == colour) && board[x + a][y].men)
|
||||||
}
|
score+=(board[x + a][y].men*133/1000);
|
||||||
if(board[x][y-1].colour == colour) {
|
} else if (a == 0){
|
||||||
score+=10;
|
if(board[x][y + b].colour == colour)
|
||||||
}
|
score+=10;
|
||||||
if((board[x][y].colour == colour) && board[x][y].tank) {
|
if(((board[x][y + b].colour == colour) && board[x][y + b].tank) || ((board[x][y + b].colour == colour) && board[x][y + b].farm))
|
||||||
score+=30;
|
score+=30;
|
||||||
}
|
if(((board[x][y + b].colour == colour) && board[x][y + b].plane) || ((board[x][y + b].colour == colour) && board[x][y + b].ind))
|
||||||
if((board[x+1][y].colour == colour) && board[x+1][y].tank) {
|
score+=40;
|
||||||
score+=30;
|
if((board[x][y + b].colour == colour) && board[x][y + b].nuke)
|
||||||
}
|
score+=20;
|
||||||
if((board[x][y+1].colour == colour) && board[x][y+1].tank) {
|
if((board[x][y + b].colour == colour) && board[x][y + b].men)
|
||||||
score+=30;
|
score+=(board[x][y + b].men*133/1000);
|
||||||
}
|
}
|
||||||
if((board[x-1][y].colour == colour) && board[x-1][y].tank) {
|
}
|
||||||
score+=30;
|
|
||||||
}
|
|
||||||
if((board[x][y-1].colour == colour) && board[x][y-1].tank) {
|
|
||||||
score+=30;
|
|
||||||
}
|
|
||||||
if((board[x][y].colour == colour) && board[x][y].plane) {
|
|
||||||
score+=40;
|
|
||||||
}
|
|
||||||
if((board[x+1][y].colour == colour) && board[x+1][y].plane) {
|
|
||||||
score+=40;
|
|
||||||
}
|
|
||||||
if((board[x][y+1].colour == colour) && board[x][y+1].plane) {
|
|
||||||
score+=40;
|
|
||||||
}
|
|
||||||
if((board[x-1][y].colour == colour) && board[x-1][y].plane) {
|
|
||||||
score+=40;
|
|
||||||
}
|
|
||||||
if((board[x][y-1].colour == colour) && board[x][y-1].plane) {
|
|
||||||
score+=40;
|
|
||||||
}
|
|
||||||
if((board[x][y].colour == colour) && board[x][y].ind) {
|
|
||||||
score+=40;
|
|
||||||
}
|
|
||||||
if((board[x+1][y].colour == colour) && board[x+1][y].ind) {
|
|
||||||
score+=40;
|
|
||||||
}
|
|
||||||
if((board[x][y+1].colour == colour) && board[x][y+1].ind) {
|
|
||||||
score+=40;
|
|
||||||
}
|
|
||||||
if((board[x-1][y].colour == colour) && board[x-1][y].ind) {
|
|
||||||
score+=40;
|
|
||||||
}
|
|
||||||
if((board[x][y-1].colour == colour) && board[x][y-1].ind) {
|
|
||||||
score+=40;
|
|
||||||
}
|
|
||||||
if((board[x][y].colour == colour) && board[x][y].farm) {
|
|
||||||
score+=30;
|
|
||||||
}
|
|
||||||
if((board[x+1][y].colour == colour) && board[x+1][y].farm) {
|
|
||||||
score+=30;
|
|
||||||
}
|
|
||||||
if((board[x][y+1].colour == colour) && board[x][y+1].farm) {
|
|
||||||
score+=30;
|
|
||||||
}
|
|
||||||
if((board[x-1][y].colour == colour) && board[x-1][y].farm) {
|
|
||||||
score+=30;
|
|
||||||
}
|
|
||||||
if((board[x][y-1].colour == colour) && board[x][y-1].farm) {
|
|
||||||
score+=30;
|
|
||||||
}
|
|
||||||
if((board[x][y].colour == colour) && board[x][y].nuke) {
|
|
||||||
score+=20;
|
|
||||||
}
|
|
||||||
if((board[x+1][y].colour == colour) && board[x+1][y].nuke) {
|
|
||||||
score+=20;
|
|
||||||
}
|
|
||||||
if((board[x][y+1].colour == colour) && board[x][y+1].nuke) {
|
|
||||||
score+=20;
|
|
||||||
}
|
|
||||||
if((board[x-1][y].colour == colour) && board[x-1][y].nuke) {
|
|
||||||
score+=20;
|
|
||||||
}
|
|
||||||
if((board[x][y-1].colour == colour) && board[x][y-1].nuke) {
|
|
||||||
score+=20;
|
|
||||||
}
|
|
||||||
if((board[x][y].colour == colour) && board[x][y].men) {
|
|
||||||
score+=(board[x][y].men*133/1000);
|
|
||||||
}
|
|
||||||
if((board[x+1][y].colour == colour) && board[x+1][y].men) {
|
|
||||||
score+=(board[x+1][y].men*133/1000);
|
|
||||||
}
|
|
||||||
if((board[x][y+1].colour == colour) && board[x][y+1].men) {
|
|
||||||
score+=(board[x][y+1].men*133/1000);
|
|
||||||
}
|
|
||||||
if((board[x-1][y].colour == colour) && board[x-1][y].men) {
|
|
||||||
score+=(board[x-1][y].men*133/1000);
|
|
||||||
}
|
|
||||||
if((board[x][y-1].colour == colour) && board[x][y-1].men) {
|
|
||||||
score+=(board[x][y-1].men*133/1000);
|
|
||||||
}
|
}
|
||||||
return score;
|
return score;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue