perubahan logika permainan
This commit is contained in:
parent
60de57f1c5
commit
31c073b09c
@ -2,7 +2,6 @@ const canvas = document.getElementById("board");
|
||||
if (!canvas) alert("Canvas tidak ditemukan! ID harus 'board'");
|
||||
const ctx = canvas.getContext("2d");
|
||||
|
||||
// ensure canvas actual pixel size used for tileSize calculation
|
||||
const CANVAS_W = canvas.width;
|
||||
const CANVAS_H = canvas.height;
|
||||
|
||||
@ -20,7 +19,8 @@ let aiPlays = 2;
|
||||
let aiThinkingDelay = 300;
|
||||
|
||||
let hintsEnabled = (typeof ENABLE_HINTS !== "undefined") ? !!ENABLE_HINTS : true;
|
||||
/********** SOUND EFFECT **********/
|
||||
|
||||
// SOUND EFFECTS
|
||||
const SFX = {
|
||||
move: new Audio("assets/sound/move.mp3"),
|
||||
capture: new Audio("assets/sound/capture.mp3")
|
||||
@ -67,16 +67,15 @@ function resetBoard(){
|
||||
startTimer();
|
||||
|
||||
draw();
|
||||
// small defer so UI painted before AI moves
|
||||
// TRIGGER AI JIKA PERMAINAN DIMULAI OLEH AI
|
||||
if(aiEnabled && currentTurn === aiPlays){
|
||||
setTimeout(()=> triggerAI(), 120);
|
||||
}
|
||||
}
|
||||
|
||||
/********** DRAW **********/
|
||||
// MENGGAMBAR PAPAN PADA CANVAS
|
||||
function draw(){
|
||||
// safety: re-compute tileSize if canvas resized via CSS (keep consistent)
|
||||
// (we keep original tileSize computed from initial canvas.width)
|
||||
// MENGGAMBAR PAPAN
|
||||
ctx.clearRect(0,0,CANVAS_W,CANVAS_H);
|
||||
|
||||
for(let r=0;r<size;r++){
|
||||
@ -114,7 +113,7 @@ function drawPiece(cx,cy,v){
|
||||
}
|
||||
}
|
||||
|
||||
/********** HINTS DRAW **********/
|
||||
// MENGGAMBAR HINTS MOVE
|
||||
function drawMoveHints(moves){
|
||||
if(!moves || moves.length===0) return;
|
||||
for(const m of moves){
|
||||
@ -127,7 +126,7 @@ function drawMoveHints(moves){
|
||||
ctx.fillStyle = m.capture ? "#dc2626" : "#22c55e";
|
||||
ctx.fill(); ctx.closePath();
|
||||
|
||||
// line
|
||||
// GARIS HINT DARI MEMILIH PION KE TUJUAN
|
||||
const sx = selected.c*tileSize + tileSize/2;
|
||||
const sy = selected.r*tileSize + tileSize/2;
|
||||
const tx = x+tileSize/2, ty = y+tileSize/2;
|
||||
@ -149,7 +148,7 @@ function tryMove(r1,c1,r2,c2){
|
||||
const isKing = (v===3||v===4);
|
||||
const dir = (v===1||v===3) ? -1 : 1;
|
||||
|
||||
// move
|
||||
// GERAKAN BIASA
|
||||
if(Math.abs(dr)===1 && Math.abs(dc)===1){
|
||||
if(isKing || dr === dir){
|
||||
saveHistory();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user