I don’t see paws ! Did you use css icons ?
Browse files- index.html +36 -10
index.html
CHANGED
|
@@ -243,10 +243,37 @@
|
|
| 243 |
isWhiteTurn = true;
|
| 244 |
updateCurrentPlayerDisplay();
|
| 245 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 246 |
|
| 247 |
// Render the chess board
|
| 248 |
function renderBoard() {
|
| 249 |
-
|
| 250 |
|
| 251 |
for (let row = 0; row < 8; row++) {
|
| 252 |
for (let col = 0; col < 8; col++) {
|
|
@@ -262,8 +289,8 @@
|
|
| 262 |
if (piece) {
|
| 263 |
const pieceElement = document.createElement('div');
|
| 264 |
pieceElement.className = `chess-piece ${piece[0] === 'w' ? 'white-piece' : 'black-piece'}`;
|
| 265 |
-
pieceElement.style.backgroundImage = `url('
|
| 266 |
-
|
| 267 |
square.appendChild(pieceElement);
|
| 268 |
}
|
| 269 |
|
|
@@ -468,15 +495,15 @@
|
|
| 468 |
capturedPieces.white.forEach(piece => {
|
| 469 |
const pieceElement = document.createElement('div');
|
| 470 |
pieceElement.className = 'captured-piece';
|
| 471 |
-
pieceElement.style.backgroundImage = `url('
|
| 472 |
-
|
| 473 |
});
|
| 474 |
|
| 475 |
capturedPieces.black.forEach(piece => {
|
| 476 |
const pieceElement = document.createElement('div');
|
| 477 |
pieceElement.className = 'captured-piece';
|
| 478 |
-
pieceElement.style.backgroundImage = `url('
|
| 479 |
-
|
| 480 |
});
|
| 481 |
}
|
| 482 |
|
|
@@ -504,9 +531,8 @@
|
|
| 504 |
|
| 505 |
options.forEach(option => {
|
| 506 |
const pieceType = option.dataset.piece;
|
| 507 |
-
option.style.backgroundImage = `url('
|
| 508 |
-
|
| 509 |
-
option.onclick = function() {
|
| 510 |
// Promote the pawn
|
| 511 |
board[toRow][toCol] = color + pieceType;
|
| 512 |
board[fromRow][fromCol] = '';
|
|
|
|
| 243 |
isWhiteTurn = true;
|
| 244 |
updateCurrentPlayerDisplay();
|
| 245 |
}
|
| 246 |
+
// Get piece image URL
|
| 247 |
+
function getPieceImageUrl(piece) {
|
| 248 |
+
const color = piece[0] === 'w' ? 'white' : 'black';
|
| 249 |
+
const pieceType = piece[1];
|
| 250 |
+
const pieceSymbols = {
|
| 251 |
+
'p': '♟', 'r': '♜', 'n': '♞', 'b': '♝', 'q': '♛', 'k': '♚'
|
| 252 |
+
};
|
| 253 |
+
|
| 254 |
+
// Create a canvas to generate the piece image
|
| 255 |
+
const canvas = document.createElement('canvas');
|
| 256 |
+
canvas.width = 200;
|
| 257 |
+
canvas.height = 200;
|
| 258 |
+
const ctx = canvas.getContext('2d');
|
| 259 |
+
|
| 260 |
+
// Draw background
|
| 261 |
+
ctx.fillStyle = 'transparent';
|
| 262 |
+
ctx.fillRect(0, 0, 200, 200);
|
| 263 |
+
|
| 264 |
+
// Draw piece symbol
|
| 265 |
+
ctx.font = '120px Arial, sans-serif';
|
| 266 |
+
ctx.fillStyle = color === 'white' ? '#ffffff' : '#000000';
|
| 267 |
+
ctx.textAlign = 'center';
|
| 268 |
+
ctx.textBaseline = 'middle';
|
| 269 |
+
ctx.fillText(pieceSymbols[pieceType], 100, 100);
|
| 270 |
+
|
| 271 |
+
return canvas.toDataURL();
|
| 272 |
+
}
|
| 273 |
|
| 274 |
// Render the chess board
|
| 275 |
function renderBoard() {
|
| 276 |
+
chessBoard.innerHTML = '';
|
| 277 |
|
| 278 |
for (let row = 0; row < 8; row++) {
|
| 279 |
for (let col = 0; col < 8; col++) {
|
|
|
|
| 289 |
if (piece) {
|
| 290 |
const pieceElement = document.createElement('div');
|
| 291 |
pieceElement.className = `chess-piece ${piece[0] === 'w' ? 'white-piece' : 'black-piece'}`;
|
| 292 |
+
pieceElement.style.backgroundImage = `url('${getPieceImageUrl(piece)})`;
|
| 293 |
+
pieceElement.dataset.piece = piece;
|
| 294 |
square.appendChild(pieceElement);
|
| 295 |
}
|
| 296 |
|
|
|
|
| 495 |
capturedPieces.white.forEach(piece => {
|
| 496 |
const pieceElement = document.createElement('div');
|
| 497 |
pieceElement.className = 'captured-piece';
|
| 498 |
+
pieceElement.style.backgroundImage = `url('${getPieceImageUrl('w' + piece[1])})`;
|
| 499 |
+
whiteCaptured.appendChild(pieceElement);
|
| 500 |
});
|
| 501 |
|
| 502 |
capturedPieces.black.forEach(piece => {
|
| 503 |
const pieceElement = document.createElement('div');
|
| 504 |
pieceElement.className = 'captured-piece';
|
| 505 |
+
pieceElement.style.backgroundImage = `url('${getPieceImageUrl('b' + piece[1])})`;
|
| 506 |
+
blackCaptured.appendChild(pieceElement);
|
| 507 |
});
|
| 508 |
}
|
| 509 |
|
|
|
|
| 531 |
|
| 532 |
options.forEach(option => {
|
| 533 |
const pieceType = option.dataset.piece;
|
| 534 |
+
option.style.backgroundImage = `url('${getPieceImageUrl(color + pieceType)})`;
|
| 535 |
+
option.onclick = function() {
|
|
|
|
| 536 |
// Promote the pawn
|
| 537 |
board[toRow][toCol] = color + pieceType;
|
| 538 |
board[fromRow][fromCol] = '';
|