Adjust automatic move scores.
This commit is contained in:
parent
c55bf3d6f3
commit
6dda0a60da
@ -917,7 +917,7 @@ const INTERFACE = {
|
|||||||
|
|
||||||
for(let i = 0; i < state.board.tiles.length; ++i) {
|
for(let i = 0; i < state.board.tiles.length; ++i) {
|
||||||
let tile = state.board.tiles[i];
|
let tile = state.board.tiles[i];
|
||||||
score += (tile.threaten[player] - tile.threaten[opponent]) / 2;
|
score += Math.floor((tile.threaten[player] - tile.threaten[opponent]) / 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
for(let i = 0; i < state.board.pieces.length; ++i) {
|
for(let i = 0; i < state.board.pieces.length; ++i) {
|
||||||
@ -925,12 +925,16 @@ const INTERFACE = {
|
|||||||
if(piece_id !== null) {
|
if(piece_id !== null) {
|
||||||
let piece = state.board.pieces[i];
|
let piece = state.board.pieces[i];
|
||||||
let tile = state.board.tiles[piece.tile];
|
let tile = state.board.tiles[piece.tile];
|
||||||
|
let hex = HEX.tile_to_hex(tile);
|
||||||
|
|
||||||
let piece_score = 1 + piece.piece + piece.promoted;
|
let piece_score = 3 + (5 * (piece.piece + piece.promoted));
|
||||||
|
|
||||||
if(piece.player == player) {
|
if(piece.player == player) {
|
||||||
score += piece_score;
|
if(tile.threaten[opponent] == 0) { score += piece_score; }
|
||||||
score -= piece_score * tile.threaten[opponent];
|
else { score -= piece_score; }
|
||||||
|
if(hex.y == state.board.columns[hex.x].extent[player]) {
|
||||||
|
score += piece_score * tile.threaten[player];
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
score -= piece_score;
|
score -= piece_score;
|
||||||
score -= piece_score * tile.threaten[opponent];
|
score -= piece_score * tile.threaten[opponent];
|
||||||
@ -948,17 +952,17 @@ const INTERFACE = {
|
|||||||
for(let i = 0; i < state.board.columns.length; ++i) {
|
for(let i = 0; i < state.board.columns.length; ++i) {
|
||||||
let column = state.board.columns[i];
|
let column = state.board.columns[i];
|
||||||
if(player == 0) {
|
if(player == 0) {
|
||||||
score += column.extent[player] / 4;
|
score += column.extent[player];
|
||||||
score -= (8 - column.extent[opponent]) / 4;
|
score -= 8 - column.extent[opponent];
|
||||||
} else {
|
} else {
|
||||||
score += (8 - column.extent[player]) / 4;
|
score += 8 - column.extent[player];
|
||||||
score -= column.extent[opponent] / 4;
|
score -= column.extent[opponent];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(state.state.check) {
|
if(state.state.check) {
|
||||||
if(turn == player) { score -= 2; }
|
if(turn == player) { score -= 20; }
|
||||||
else { score += 2; }
|
else { score += 1; }
|
||||||
}
|
}
|
||||||
if(state.state.checkmate) {
|
if(state.state.checkmate) {
|
||||||
if(turn == player) { score -= 1000; }
|
if(turn == player) { score -= 1000; }
|
||||||
@ -1022,7 +1026,7 @@ const INTERFACE = {
|
|||||||
moves[i].score = state_score(st, search_player);
|
moves[i].score = state_score(st, search_player);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
for(let i = 0; i < moves.length && i < 3; ++i) {
|
for(let i = 0; i < moves.length && i < Math.ceil(Math.log2(moves.length)); ++i) {
|
||||||
let st = state.clone();
|
let st = state.clone();
|
||||||
st.process(moves[i].play);
|
st.process(moves[i].play);
|
||||||
|
|
||||||
@ -1042,7 +1046,7 @@ const INTERFACE = {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
selection = Math.min(moves.length, selection + 3);
|
selection = Math.min(moves.length, selection + 1);
|
||||||
|
|
||||||
return moves[Math.floor(Math.random() * selection)];
|
return moves[Math.floor(Math.random() * selection)];
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user