diff --git a/www/js/interface.js b/www/js/interface.js index 9046c49..202c80d 100644 --- a/www/js/interface.js +++ b/www/js/interface.js @@ -917,7 +917,7 @@ const INTERFACE = { for(let i = 0; i < state.board.tiles.length; ++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) { @@ -925,12 +925,16 @@ const INTERFACE = { if(piece_id !== null) { let piece = state.board.pieces[i]; 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) { - score += piece_score; - score -= piece_score * tile.threaten[opponent]; + if(tile.threaten[opponent] == 0) { score += piece_score; } + else { score -= piece_score; } + if(hex.y == state.board.columns[hex.x].extent[player]) { + score += piece_score * tile.threaten[player]; + } } else { score -= piece_score; score -= piece_score * tile.threaten[opponent]; @@ -948,17 +952,17 @@ const INTERFACE = { for(let i = 0; i < state.board.columns.length; ++i) { let column = state.board.columns[i]; if(player == 0) { - score += column.extent[player] / 4; - score -= (8 - column.extent[opponent]) / 4; + score += column.extent[player]; + score -= 8 - column.extent[opponent]; } else { - score += (8 - column.extent[player]) / 4; - score -= column.extent[opponent] / 4; + score += 8 - column.extent[player]; + score -= column.extent[opponent]; } } if(state.state.check) { - if(turn == player) { score -= 2; } - else { score += 2; } + if(turn == player) { score -= 20; } + else { score += 1; } } if(state.state.checkmate) { if(turn == player) { score -= 1000; } @@ -1022,7 +1026,7 @@ const INTERFACE = { moves[i].score = state_score(st, search_player); } } 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(); st.process(moves[i].play); @@ -1042,7 +1046,7 @@ const INTERFACE = { break; } } - selection = Math.min(moves.length, selection + 3); + selection = Math.min(moves.length, selection + 1); return moves[Math.floor(Math.random() * selection)]; }