Newer
Older
let row = ['1', '2', '3', '4', '5', '6', '7', '8'];
let col = ['H', 'G', 'F', 'E', 'D', 'C', 'B', 'A'];
if (pov == 'w') {
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;
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
}
// 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);