Sasanou commited on
Commit
43fdbce
·
verified ·
1 Parent(s): 420beb6

I don’t see paws ! Did you use css icons ?

Browse files
Files changed (1) hide show
  1. 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
- chessBoard.innerHTML = '';
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('http://static.photos/chess/${piece[0] === 'w' ? 'white' : 'black'}/200x200/${piece[1]})`;
266
- pieceElement.dataset.piece = piece;
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('http://static.photos/chess/white/200x200/${piece[1]})`;
472
- whiteCaptured.appendChild(pieceElement);
473
  });
474
 
475
  capturedPieces.black.forEach(piece => {
476
  const pieceElement = document.createElement('div');
477
  pieceElement.className = 'captured-piece';
478
- pieceElement.style.backgroundImage = `url('http://static.photos/chess/black/200x200/${piece[1]})`;
479
- blackCaptured.appendChild(pieceElement);
480
  });
481
  }
482
 
@@ -504,9 +531,8 @@
504
 
505
  options.forEach(option => {
506
  const pieceType = option.dataset.piece;
507
- option.style.backgroundImage = `url('http://static.photos/chess/${color}/200x200/${pieceType})`;
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] = '';