/* für table_payoff_matrix */ // Radio-Buttons Spieler 1 holen let radioButton_S1_7 = document.querySelector('#id_effort-0'); let radioButton_S1_6 = document.querySelector('#id_effort-1'); let radioButton_S1_5 = document.querySelector('#id_effort-2'); let radioButton_S1_4 = document.querySelector('#id_effort-3'); let radioButton_S1_3 = document.querySelector('#id_effort-4'); let radioButton_S1_2 = document.querySelector('#id_effort-5'); let radioButton_S1_1 = document.querySelector('#id_effort-6'); // Unterste Zellen (1) holen let cell1 = document.querySelector('#table_payoffMatrix tr:nth-last-child(1)'); // Unterste Zellen (2) holen let cell2 = document.querySelector('#table_payoffMatrix tr:nth-last-child(2)'); // Unterste Zellen (3) holen let cell3 = document.querySelector('#table_payoffMatrix tr:nth-last-child(3)'); // Unterste Zellen (4) holen let cell4 = document.querySelector('#table_payoffMatrix tr:nth-last-child(4)'); // Unterste Zellen (5) holen let cell5 = document.querySelector('#table_payoffMatrix tr:nth-last-child(5)'); // Unterste Zellen (6) holen let cell6 = document.querySelector('#table_payoffMatrix tr:nth-last-child(6)'); // Unterste Zellen (7) holen let cell7 = document.querySelector('#table_payoffMatrix tr:nth-last-child(7)'); // Funktion, die den Hintergrund aller zellen zurücksetzt function resetAllCells() { cell1.style.backgroundColor = 'transparent'; cell2.style.backgroundColor = 'transparent'; cell3.style.backgroundColor = 'transparent'; cell4.style.backgroundColor = 'transparent'; cell5.style.backgroundColor = 'transparent'; cell6.style.backgroundColor = 'transparent'; cell7.style.backgroundColor = 'transparent'; } // Funktion, um Hintergrundfarbe hellgrün oder transparent zu machen function updateCells(radioButton, cell, rowNumber) { if (radioButton.checked && haveAllPlayersChosen()) { resetAllCells(); cell.style.backgroundColor = possiblePayoffsColor; // Vorher lightGreen selectedRow = rowNumber; // Speichern Sie die Zeilennummer updateIntersection(); // Überprüfen und aktualisieren Sie die Kreuzung } } // Funktion, um Hintergrundfarbe für mögliche Payoffs zu setzen function updateCellsForPlayer1(radioButton, cell, rowNumber) { resetAllCells(); cell.style.backgroundColor = possiblePayoffsColor; // Sandfarbe für mögliche Payoffs selectedRow = rowNumber; // Speichern Sie die Zeilennummer updateIntersection(); // Überprüfen und aktualisieren Sie die Kreuzung } // Event-Listener hinzufügen und Funktion updateCellsForPlayer1 ausführen radioButton_S1_7.addEventListener('change', function () { updateCellsForPlayer1(radioButton_S1_7, cell7, 6); }); radioButton_S1_6.addEventListener('change', function () { updateCellsForPlayer1(radioButton_S1_6, cell6, 5); }); radioButton_S1_5.addEventListener('change', function () { updateCellsForPlayer1(radioButton_S1_5, cell5, 4); }); radioButton_S1_4.addEventListener('change', function () { updateCellsForPlayer1(radioButton_S1_4, cell4, 3); }); radioButton_S1_3.addEventListener('change', function () { updateCellsForPlayer1(radioButton_S1_3, cell3, 2); }); radioButton_S1_2.addEventListener('change', function () { updateCellsForPlayer1(radioButton_S1_2, cell2, 1); }); radioButton_S1_1.addEventListener('change', function () { updateCellsForPlayer1(radioButton_S1_1, cell1, 0); }); /********************************************************/ /* für table_other_players */ // Radio-Buttons Spieler 2 holen let radioButton_S2_7 = document.querySelector('#id_effort_player2_7'); let radioButton_S2_6 = document.querySelector('#id_effort_player2_6'); let radioButton_S2_5 = document.querySelector('#id_effort_player2_5'); let radioButton_S2_4 = document.querySelector('#id_effort_player2_4'); let radioButton_S2_3 = document.querySelector('#id_effort_player2_3'); let radioButton_S2_2 = document.querySelector('#id_effort_player2_2'); let radioButton_S2_1 = document.querySelector('#id_effort_player2_1'); // Radio-Buttons Spieler 3 holen let radioButton_S3_7 = document.querySelector('#id_effort_player3_7'); let radioButton_S3_6 = document.querySelector('#id_effort_player3_6'); let radioButton_S3_5 = document.querySelector('#id_effort_player3_5'); let radioButton_S3_4 = document.querySelector('#id_effort_player3_4'); let radioButton_S3_3 = document.querySelector('#id_effort_player3_3'); let radioButton_S3_2 = document.querySelector('#id_effort_player3_2'); let radioButton_S3_1 = document.querySelector('#id_effort_player3_1'); // Radio-Buttons Spieler 4 holen let radioButton_S4_7 = document.querySelector('#id_effort_player4_7'); let radioButton_S4_6 = document.querySelector('#id_effort_player4_6'); let radioButton_S4_5 = document.querySelector('#id_effort_player4_5'); let radioButton_S4_4 = document.querySelector('#id_effort_player4_4'); let radioButton_S4_3 = document.querySelector('#id_effort_player4_3'); let radioButton_S4_2 = document.querySelector('#id_effort_player4_2'); let radioButton_S4_1 = document.querySelector('#id_effort_player4_1'); // Radio-Buttons Spieler 5 holen let radioButton_S5_7 = document.querySelector('#id_effort_player5_7'); let radioButton_S5_6 = document.querySelector('#id_effort_player5_6'); let radioButton_S5_5 = document.querySelector('#id_effort_player5_5'); let radioButton_S5_4 = document.querySelector('#id_effort_player5_4'); let radioButton_S5_3 = document.querySelector('#id_effort_player5_3'); let radioButton_S5_2 = document.querySelector('#id_effort_player5_2'); let radioButton_S5_1 = document.querySelector('#id_effort_player5_1'); // Radio-Buttons Spieler2-5 in einem Array speichern let radioButtons1_5 = [ radioButton_S1_7, radioButton_S1_6, radioButton_S1_5, radioButton_S1_4, radioButton_S1_3, radioButton_S1_2, radioButton_S1_1, radioButton_S2_7, radioButton_S2_6, radioButton_S2_5, radioButton_S2_4, radioButton_S2_3, radioButton_S2_2, radioButton_S2_1, radioButton_S3_7, radioButton_S3_6, radioButton_S3_5, radioButton_S3_4, radioButton_S3_3, radioButton_S3_2, radioButton_S3_1, radioButton_S4_7, radioButton_S4_6, radioButton_S4_5, radioButton_S4_4, radioButton_S4_3, radioButton_S4_2, radioButton_S4_1, radioButton_S5_7, radioButton_S5_6, radioButton_S5_5, radioButton_S5_4, radioButton_S5_3, radioButton_S5_2, radioButton_S5_1 ]; let minValue1_5 = Infinity; // Startwert auf Unendlich setzen // Funktion, um den niedrigsten Wert zu finden und minValue1_5 zu aktualisieren function updateminValue1_5() { if (haveAllPlayersChosen()) { minValue1_5 = Infinity; // Zurücksetzen auf Unendlich for (let i = 0; i < radioButtons1_5.length; i++) { if (radioButtons1_5[i].checked) { let value = parseInt(radioButtons1_5[i].value); if (value < minValue1_5) { minValue1_5 = value; } } } // Hervorheben der Zelle nach der Aktualisierung von minValue1_5 highlightMinValueCell(); console.log(minValue1_5); // Den aktuellen Mindestwert ausgeben } } // Event-Listener zu jedem Radio-Button hinzufügen radioButtons1_5.forEach(radioButton => { radioButton.addEventListener('change', updateminValue1_5); }); ////////////////////////////////// // Radio-Buttons Spieler1 in einem Array speichern let radioButtons1 = [ radioButton_S1_7, radioButton_S1_6, radioButton_S1_5, radioButton_S1_4, radioButton_S1_3, radioButton_S1_2, radioButton_S1_1, ]; // Funktion, um den ausgewählten Wert zu finden let selectedEffortPlayer1; function updateSelectedEffortPlayer1() { if (haveAllPlayersChosen()) { for(let i = 0; i < radioButtons1.length; i++) { if(radioButtons1[i].checked) { selectedEffortPlayer1 = radioButtons1[i].value; console.log(selectedEffortPlayer1); break; // Beende die Schleife, wenn der ausgewählte Button gefunden wurde } } } } // Event-Listener zu jedem Radio-Button hinzufügen radioButtons1.forEach(radioButton => { radioButton.addEventListener('change', updateSelectedEffortPlayer1); }); // Funktion, um die entsprechende Zelle blau zu machen function highlightMinValueCell() { // Zugriff auf alle Zeilen der Tabelle let rows = document.querySelectorAll("#table_payoffMatrix tr"); // Zuerst alle Zellen zurücksetzen rows.forEach(row => { Array.from(row.cells).forEach(cell => { cell.style.backgroundColor = ''; // Setzen Sie dies auf den Standardwert oder einen anderen gewünschten Wert }); }); // Markiere die Spalte, die minValue1_5 entspricht, mit blau if (minValue1_5 !== Infinity) { // Berechnung des umgekehrten Spaltenindex let columnIndex = 8 - minValue1_5; selectedColumn = columnIndex; // Speichern Sie die Spaltennummer // Durchlaufen aller Zeilen und Hervorheben der Zelle am columnIndex rows.forEach(row => { let cell = row.cells[columnIndex]; if (cell) { cell.style.backgroundColor = lowestEffortLevelColor; // Vorher lightBlue } }); updateIntersection(); // Überprüfen und aktualisieren Sie die Kreuzung } } // Funktion, um zu überprüfen, ob alle Spieler eine Auswahl getroffen haben function haveAllPlayersChosen() { // Überprüfen Sie, ob Spieler 1 eine Auswahl getroffen hat let allChosen = document.querySelector(`input[name='effort']:checked`) != null; // Überprüfen Sie die anderen Spieler for (let i = 2; i <= 5 && allChosen; i++) { allChosen = document.querySelector(`input[name='effort_player${i}']:checked`) != null; } return allChosen; } ///////////////////////////Definitiver Payoff dunkelgrau/////////////////////////////////////// // Farben definieren const possiblePayoffsColor = '#DDD5B5'; // Mögliche Payoffs für Spieler 1 anzeigen const lowestEffortLevelColor = '#B8B8B8'; // Zeigt die Spalte für den von allen 5 Spielern tiefsten Effortlevel an const definitivePayoffColor = '#708090'; // Zeigt den definitiven Payoff an (die Überkreuzung) // Zusätzliche Variablen, um die Auswahl der Zeile und Spalte zu speichern let selectedRow = null; let selectedColumn = null; // Funktion, um die Kreuzung zu überprüfen und zu markieren function updateIntersection() { if (selectedRow !== null && selectedColumn !== null) { let intersectionCell = document.querySelector(`#table_payoffMatrix tr:nth-last-child(${selectedRow + 1}) td:nth-child(${selectedColumn + 1})`); if (intersectionCell) { intersectionCell.style.backgroundColor = definitivePayoffColor; // Vorher darkBlue } } } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////