Also ich weiß gerad net weiter. Es soll eine table erstellt werden (9x9) und wenn eine Zelle angeklickt wird, soll deren Index in der Konsole ausgegeben werden:
Die Variablen i und j werden in der anonymen Funktion gecaptured, und da sie in ihren Schleifen weiterlaufen, siehst du ihre Werte beim click-Aufruf in ihrem letzten Zustand. Ein einfacher Fix ist, dem Index eine Konstante zu spendieren:
function makeTable() {
for (var i = 0; i < 3; i++) {
var tr = document.createElement('tr');
for (var j = 0; j < 3; j++) {
const index = i * 3 + j;
var td = document.createElement('td');
td.style.width = '50px';
td.style.height = '25px';
td.style.border = '1px solid black';
td.style.padding = '0';
td.style.textAlign = 'center';
td.appendChild(document.createTextNode(array1[index]));
tr.appendChild(td);
td.addEventListener('click', function () { clickl(index); });
}
document.getElementById('ta1').appendChild(tr);
}
}
Ich bin kein JS-Experte, aber statt var sollte man wohl lieber let und const verwenden.
Ich auch nicht, bzw., nur selten etwas damit zu tun. (Bin mehr für die andere Seite verantwortlich). Aber ich hoffe nicht, dass var jetzt i. A. veraltet ist…
let ermöglicht es Variablen zu deklarieren, deren Gültigkeitsbereich auf den Block, den Befehl oder den Ausdruck beschränkt ist, in dem sie deklariert sind. Der Unterschied zum var Schlüsselwort ist, dass der Gültigkeitsbereich auf Blöcke und nicht auf Funktionen
Ich wusste nicht, dass var „funktionsweite“ Gültigkeit besitzt.
Ziel ist es, ein kleines TicTacToe-Spiel zu schreiben, wobei der Spieler gegen MiniMax (nicht schlagbar) antreten kann, oder gegen ein neuronales Netz (manchmal schlagbar), das zuvor aber mit einer gewissen Anzahl MiniMax-Iterationen (also Spielsitautionen) antrainiert wird. Ich stelle mir das so vor, wenn man das NN mit 10 Spielsituationen füttert, macht es gelegentlich noch Fehler, bei 100 Spielsituationen hingegen aber net mehr.
Aber eigentlich… ist das doch etwas aufwändig, es sollte schon gestern fertig sein, und ich werd’s doch erst mal lassen.