Guten Morgen,
vielen Dank für eure Hilfe. Besonders für die 2 Empfehlungen Sempervivum ! 
Das Spiel läuft 
Ich habe bis eben nochmal den Code umgeschrieben und dabei festgestellt, dass die mehrfache Ausgabe zum Teil auch an der Ausgabefunktion lag. Ich habe nun den Eventlistener, die Start Variable sowie ein Boolean, der überprüft ob bereits auf das Feld geklickt wurde, außerhalb platziert sowie die Ausgabefunktion umgeschrieben und die Spielerliste nach der Bestzeit sortiert.
basti1012 :
tbodyContent += `<tr>
<td>${playerList[a][0]}</td>
<td>${playerList[a][1]}</td>
</tr>`;
}
Du hast den Ausgabe HTML Code in `` gesetzt und musstest dann damit auf das JS-Array zugegriffen wird ein $ vor dem JS Array setzten. Ich finde zu dieser Möglichkeit im Internet überhaupt nichts.
Kannst du mir dies bitte genauer erklären? Darüber wäre ich sehr dankbar.
Das ist der endgültig funktionierende JS Code:
"use strict";
window.addEventListener("load", function(){
let formularSection = document.getElementById("formularBereich");
let formular = document.getElementById("gameFormular");
let playForm = document.getElementById("playForm");
let buttonsAfterGame = document.getElementById("buttonsAfterGame");
let playerNameField = document.getElementById("spielername");
let ergebnisSection = document.getElementById("ergebnis");
let startGameButton = document.getElementById("startGame");
let startGameAgain = document.getElementById("startGameAgain");
let startGameWithNewName = document.getElementById("startGameWithNewName");
let error = document.getElementById("fehler");
let player;
let randomSeconds;
let start = null;
let end;
let neededTime;
let isPlayed = false;
let playerList = [];
let gameSection = document.getElementById("clickBereich");
let eventListenerGameLogicExecuted = false;
gameSection.style.display = "none";
buttonsAfterGame.style.display = "none";
let startGame = function(event){
event.preventDefault();
randomSeconds = Math.random() * 5000;
if(!isPlayed){
player = playerNameField.value;
if(player !== ""){
if(error.innerText !== ""){
error.innerText = "";
}
formular.reset();
formularSection.style.display = "none";
gameSection.style.display = "block";
setTimeout(playGame, randomSeconds);
} else{
error.innerText = "Bitte trage deinen Namen ein!";
}
}else{
formularSection.style.display = "none";
gameSection.style.display = "block";
setTimeout(playGame, randomSeconds);
}
};
let playGame = function(){
start = Date.now();
gameSection.style.backgroundColor = "blue";
if(eventListenerGameLogicExecuted){
gameSection.addEventListener("click", gameLogic, false);
}
};
let gameLogic = function(){
end = Date.now();
neededTime = (end - start) / 1000;
if(neededTime < 1){
ergebnisSection.innerText = "Super Reaktion! Du hast " + neededTime + " Sekunden benötigt";
} else if(neededTime > 1 && neededTime < 3){
ergebnisSection.innerText = "Gute Reaktion! Du hast " + neededTime + " Sekunden benötigt";
} else{
ergebnisSection.innerText = "Deine Reaktion war okay! Du hast " + neededTime + " Sekunden benötigt";
}
isPlayed = true;
getPlayerScores(neededTime);
showPlayersScores();
eventListenerGameLogicExecuted = true;
gameSection.removeEventListener('click', gameLogic, false);
setTimeout(showButtonsAfterGame, 4000);
}
let showButtonsAfterGame = function(){
ergebnisSection.innerText = "";
gameSection.style.display = "none";
gameSection.style.backgroundColor = "white";
formularSection.style.display = "block";
playForm.style.display = "none";
buttonsAfterGame.style.display = "block";
};
let showTheGameFormular = function(event){
event.preventDefault();
isPlayed = false;
playForm.style.display = "block";
buttonsAfterGame.style.display = "none";
}
let getPlayerScores = function(neededTime){
playerList.push([player, neededTime]);
};
let showPlayersScores = function(){
let tBody = document.getElementById("body");
let tbodyContent = "";
if(playerList.length > 0){
for(let a = 0; a < playerList.length; a++){
playerList.sort(function(a,b) {
return a[1] - b[1];
});
tbodyContent += `<tr>
<td>${playerList[a][0]}</td>
<td>${playerList[a][1]}</td>
</tr>`;
}
tBody.innerHTML = tbodyContent;
}
};
gameSection.addEventListener("click", gameLogic, false);
startGameButton.addEventListener("click", startGame);
startGameAgain.addEventListener("click", startGame);
startGameWithNewName.addEventListener("click", showTheGameFormular);
});
Alles anzeigen
Grüße,
Stef