Adjust automatic move scores.
This commit is contained in:
parent
3fc98038ba
commit
f2468621b2
@ -242,6 +242,23 @@ const INTERFACE = {
|
||||
}
|
||||
},
|
||||
|
||||
release() {
|
||||
if(INTERFACE_DATA.hover !== null && !INTERFACE.Ui.match_select(INTERFACE_DATA.hover, INTERFACE_DATA.select)) {
|
||||
let is_valid = false;
|
||||
if(INTERFACE_DATA.select !== null && INTERFACE_DATA.hover.source == 0 && INTERFACE_DATA.player == (GAME_DATA.turn & 1)) {
|
||||
let tile_state = INTERFACE_DATA.board_state[INTERFACE_DATA.hover.tile][1];
|
||||
is_valid = (tile_state == INTERFACE.TileStatus.Valid || tile_state == INTERFACE.TileStatus.Threat);
|
||||
}
|
||||
|
||||
// Handle player action.
|
||||
if(is_valid) {
|
||||
let play = new GAME.Play(INTERFACE_DATA.select.source, INTERFACE_DATA.select.tile, INTERFACE_DATA.hover.tile);
|
||||
INTERFACE.process(play);
|
||||
INTERFACE_DATA.select = null;
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
resize() {
|
||||
let width = INTERFACE_DATA.canvas.width = INTERFACE_DATA.canvas.clientWidth;
|
||||
let height = INTERFACE_DATA.canvas.height = INTERFACE_DATA.canvas.clientHeight;
|
||||
@ -751,6 +768,7 @@ const INTERFACE = {
|
||||
canvas.addEventListener("mousemove", INTERFACE.hover);
|
||||
canvas.addEventListener("mouseout", INTERFACE.unhover);
|
||||
canvas.addEventListener("mousedown", INTERFACE.click);
|
||||
canvas.addEventListener("mouseup", INTERFACE.release);
|
||||
window.addEventListener("resize", INTERFACE.draw);
|
||||
|
||||
switch(INTERFACE_DATA.mode) {
|
||||
@ -786,6 +804,7 @@ const INTERFACE = {
|
||||
GAME.init();
|
||||
INTERFACE_DATA.player = 0;
|
||||
INTERFACE_DATA.rotate = 0;
|
||||
INTERFACE_DATA.auto_mode = null;
|
||||
INTERFACE.draw();
|
||||
},
|
||||
|
||||
@ -924,16 +943,17 @@ const INTERFACE = {
|
||||
|
||||
auto() {
|
||||
if(INTERFACE_DATA.auto_mode === null) {
|
||||
console.log("auto on");
|
||||
INTERFACE_DATA.auto_mode = ((GAME_DATA.turn & 1) ^ 1);
|
||||
INTERFACE_DATA.auto_mode = GAME_DATA.rotate ^ 1;
|
||||
setTimeout(INTERFACE.auto_play, 500);
|
||||
} else {
|
||||
console.log("auto off");
|
||||
INTERFACE_DATA.auto_mode = null;
|
||||
}
|
||||
INTERFACE.draw();
|
||||
},
|
||||
|
||||
auto_play() {
|
||||
if(INTERFACE_DATA.auto_mode !== (GAME_DATA.turn & 1)) { return; }
|
||||
|
||||
function state_score(state, player) {
|
||||
let score = 0;
|
||||
let opponent = player ^ 1;
|
||||
@ -951,7 +971,7 @@ const INTERFACE = {
|
||||
let tile = state.board.tiles[piece.tile];
|
||||
let hex = HEX.tile_to_hex(tile);
|
||||
|
||||
let piece_score = 3 + (5 * (piece.piece + piece.promoted));
|
||||
let piece_score = 3 + (4 * (piece.piece + piece.promoted));
|
||||
|
||||
if(piece.player == player) {
|
||||
if(tile.threaten[opponent] == 0) { score += piece_score; }
|
||||
@ -960,8 +980,7 @@ const INTERFACE = {
|
||||
score += piece_score * tile.threaten[player];
|
||||
}
|
||||
} else {
|
||||
score -= piece_score;
|
||||
score -= piece_score * tile.threaten[opponent];
|
||||
score -= piece_score - 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user