Browse Source

Merge remote-tracking branch 'origin/main'

main
Nicolas Fritz 2 years ago
parent
commit
2eb56c6e82
  1. 16
      kniffel/inc/dreierPasch.js
  2. 92
      kniffel/inc/helper.js
  3. 26
      kniffel/index.html
  4. 29
      kniffel/test/test_dreierPasch.test.js

16
kniffel/inc/dreierPasch.js

@ -0,0 +1,16 @@
function dreierPasch(wuerfelArr){
let output = 0;
let countObj = {}
for(let x of wuerfelArr){
countObj[x] = (countObj[x] || 0) + 1;
}
let vals = Object.values(countObj);
if(( vals[1] === 3) || (vals[0] === 3)|| (vals[2] === 3)){
wuerfelArr.forEach(element => {
output += element;
});
}
return output;
}
module.exports = dreierPasch;

92
kniffel/inc/helper.js

@ -5,4 +5,96 @@ function moeglicheWuerfeZuruecksetzen(){
document.getElementById('CheckBoxWuerfel3').checked = false;
document.getElementById('CheckBoxWuerfel4').checked = false;
document.getElementById('CheckBoxWuerfel5').checked = false;
}
function dreierPasch(spieler){
var w1 = document.getElementById('AusgabeWuerfel1').innerHTML;
var w2 = document.getElementById('AusgabeWuerfel2').innerHTML;
var w3 = document.getElementById('AusgabeWuerfel3').innerHTML;
var w4 = document.getElementById('AusgabeWuerfel4').innerHTML;
var w5 = document.getElementById('AusgabeWuerfel5').innerHTML;
let wuerfelArr = [Number(w1), Number(w2), Number(w3), Number(w4), Number(w5)];
let output = 0;
let countObj = {}
for(let x of wuerfelArr){
countObj[x] = (countObj[x] || 0) + 1;
}
let vals = Object.values(countObj);
if(( vals[1] === 3) || (vals[0] === 3)|| (vals[2] === 3)){
wuerfelArr.forEach(element => {
output += element;
});
}
switch (spieler){
case 1:
document.getElementById('DreierPasch_Spieler1').innerHTML = output;
document.getElementById('aktuellerSpieler').innerHTML = "Spieler 2 ist an der Reihe";
break;
case 2:
document.getElementById('DreierPasch_Spieler2').innerHTML = output;
document.getElementById('aktuellerSpieler').innerHTML = "Spieler 3 ist an der Reihe";
break;
case 3:
document.getElementById('DreierPasch_Spieler3').innerHTML = output;
document.getElementById('aktuellerSpieler').innerHTML = "Spieler 4 ist an der Reihe";
break;
case 4:
document.getElementById('DreierPasch_Spieler4').innerHTML = output;
document.getElementById('aktuellerSpieler').innerHTML = "Spieler 1 ist an der Reihe";
break;
}
moeglicheWuerfeZuruecksetzen();
}
function fullHouse(spieler){
var w1 = document.getElementById('AusgabeWuerfel1').innerHTML;
var w2 = document.getElementById('AusgabeWuerfel2').innerHTML;
var w3 = document.getElementById('AusgabeWuerfel3').innerHTML;
var w4 = document.getElementById('AusgabeWuerfel4').innerHTML;
var w5 = document.getElementById('AusgabeWuerfel5').innerHTML;
let wuerfelArr = [Number(w1), Number(w2), Number(w3), Number(w4), Number(w5)];
let output = 0;
let countObj = {}
for(let x of wuerfelArr){
countObj[x] = (countObj[x] || 0) + 1;
}
let vals = Object.values(countObj);
if((vals[0] === 2 && vals[1] === 3) || (vals[1] === 2 && vals[0] === 3)){
output = 25;
}
switch (spieler){
case 1:
document.getElementById('fullHouse_Spieler1').innerHTML = output;
document.getElementById('aktuellerSpieler').innerHTML = "Spieler 2 ist an der Reihe";
break;
case 2:
document.getElementById('fullHouse_Spieler2').innerHTML = output;
document.getElementById('aktuellerSpieler').innerHTML = "Spieler 3 ist an der Reihe";
break;
case 3:
document.getElementById('fullHouse_Spieler3').innerHTML = output;
document.getElementById('aktuellerSpieler').innerHTML = "Spieler 4 ist an der Reihe";
break;
case 4:
document.getElementById('fullHouse_Spieler4').innerHTML = output;
document.getElementById('aktuellerSpieler').innerHTML = "Spieler 1 ist an der Reihe";
break;
}
moeglicheWuerfeZuruecksetzen();
}

26
kniffel/index.html

@ -7,6 +7,8 @@
<script type="text/javascript" src="inc/sammleGleicheZahlen.js"></script>
<script type="text/javascript" src="inc/helper.js"></script>
<script type="text/javascript" src="inc/summeObererTeil.js"></script>
<script type="text/javascript" src="inc/viererPasch.js"></script>
<title>Kniffel</title>
</head>
<body>
@ -103,26 +105,26 @@
<tr>
<td>Dreierpasch</td>
<td>alle Augen Zählen</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td id="DreierPasch_Spieler1" onclick="dreierPasch(1)"></td>
<td id="DreierPasch_Spieler2" onclick="dreierPasch(2)"></td>
<td id="DreierPasch_Spieler3" onclick="dreierPasch(3)"></td>
<td id="DreierPasch_Spieler4" onclick="dreierPasch(4)"></td>
</tr>
<tr>
<td>Viererpasch</td>
<td>alle Augen zählen</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td id="ViererPasch_Spieler1" onclick="viererPasch(1)"></td>
<td id="ViererPasch_Spieler2" onclick="viererPasch(2)"></td>
<td id="ViererPasch_Spieler3" onclick="viererPasch(3)"></td>
<td id="ViererPasch_Spieler4" onclick="viererPasch(4)"></td>
</tr>
<tr>
<td>Full House</td>
<td>25 Punkte</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td id="fullHouse_Spieler1" onclick="fullHouse(1)"></td>
<td id="fullHouse_Spieler2" onclick="fullHouse(2)"></td>
<td id="fullHouse_Spieler3" onclick="fullHouse(3)"></td>
<td id="fullHouse_Spieler4" onclick="fullHouse(4)"></td>
</tr>
<tr>
<td>Kleine Straße</td>

29
kniffel/test/test_dreierPasch.test.js

@ -0,0 +1,29 @@
const dreierPasch = require('../inc/dreierPasch');
//Eine Test Gruppe, mit mehreren Tests
describe('tests kniffel', () => {
it('teste ob drei gleiche Augenzahlen existieren (Dreier Pasch)', ()=>{
//Vergleiche Ist- und Sollergebnis
expect(dreierPasch([2, 1, 5, 5, 5])).toBe(18);
});
it('teste ob drei gleiche Augenzahlen existieren (Dreier Pasch)', ()=>{
//Vergleiche Ist- und Sollergebnis
expect(dreierPasch([5, 5, 5, 6, 2])).toBe(23);
});
it('teste wenn drei gleiche Augenzahlen nicht existieren --> keine Punkte vergeben', ()=>{
//Vergleiche Ist- und Sollergebnis
expect(dreierPasch([2, 5, 6, 4, 1])).toBe(0);
});
})
Loading…
Cancel
Save