// Tutorial 3 // Task 2 function renderChessboard(pov){ // Erstellung eines HTML-Strings // POV Schwarz let row = ['1', '2', '3', '4', '5', '6', '7', '8']; let col = ['H', 'G', 'F', 'E', 'D', 'C', 'B', 'A']; if (pov == 'w') { // POV Weiß row.reverse(); col.reverse(); } let result = ''; result += '<table id="chessboard">'; for (let i of row) { result += '<tr id="row' + i + '">'; for (let j of col) { result += '<td id="' + j + i + '">' + j + i + '</td>'; } result += '</tr>'; } result += '</table>'; return result; } // Task 4 function convertFEN(fen){ // wandelt FEN-String in Schachfiguren-Unicode Liste um let FEN = fen; // E steht für leeres (empty) Feld FEN = FEN.replaceAll("8", "EEEEEEEE"); FEN = FEN.replaceAll("7", "EEEEEEE"); FEN = FEN.replaceAll("6", "EEEEEE"); FEN = FEN.replaceAll("5", "EEEEE"); FEN = FEN.replaceAll("4", "EEEE"); FEN = FEN.replaceAll("3", "EEE"); FEN = FEN.replaceAll("2", "EE"); FEN = FEN.replaceAll("1", "E"); FEN = FEN.replaceAll("/", ""); FEN = FEN.split(""); // Austausch aller Buchstaben mit Unicode für Schachfiguren for (let i = 0; i < FEN.length; i++) { switch(FEN[i]){ case "K": FEN[i] = "♔"; break; case "Q": FEN[i] = "♕"; break; case "R": FEN[i] = "♖"; break; case "B": FEN[i] = "♗"; break; case "N": FEN[i] = "♘"; break; case "P": FEN[i] = "♙"; break; case "k": FEN[i] = "♚"; break; case "q": FEN[i] = "♛"; break; case "r": FEN[i] = "♜"; break; case "b": FEN[i] = "♝"; break; case "n": FEN[i] = "♞"; break; case "p": FEN[i] = "♟"; break; default: FEN[i] = ""; break; } } return FEN; } function renderCompleteChessboard(fen, pov){ // es wir von korrekten FEN ausgegangen // POV Schwarz let row = ['1', '2', '3', '4', '5', '6', '7', '8']; let col = ['H', 'G', 'F', 'E', 'D', 'C', 'B', 'A']; if (pov == 'w') { // POV Weiß row.reverse(); col.reverse(); } // Tabelle erstellen let table = document.createElement("table"); table.id = "chessboard"; // Array aus Unicode für Schachfiguren let FEN = convertFEN(fen); for (let i of row) { // Spalten erzeugen let tr = document.createElement("tr"); tr.id = "row" + i; for (let j of col) { // Zellen erzeugen let td = document.createElement("td"); td.id = j + i; // Feldposition let boardPosition = document. createElement("span"); boardPosition.className = "boardPosition"; boardPosition.innerHTML = j + i; td.appendChild(boardPosition); // Schachfigur let chessPiece = document.createElement("span"); chessPiece.className = "chessPiece"; chessPiece.innerHTML = FEN.shift(); // entfernt ersten Eintrag aus Array und gibt ihn zurück td.appendChild(chessPiece); tr.appendChild(td); } table.appendChild(tr); } document.getElementById("chessboardElement").appendChild(table); }