diff --git a/kniffel/inc/dreierPasch.js b/kniffel/inc/dreierPasch.js new file mode 100644 index 0000000..a355adf --- /dev/null +++ b/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; \ No newline at end of file diff --git a/kniffel/inc/helper.js b/kniffel/inc/helper.js index 5c2d58c..edad3f2 100644 --- a/kniffel/inc/helper.js +++ b/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(); + } \ No newline at end of file diff --git a/kniffel/index.html b/kniffel/index.html index 2a2328f..6494951 100644 --- a/kniffel/index.html +++ b/kniffel/index.html @@ -7,6 +7,8 @@ + + Kniffel @@ -103,26 +105,26 @@ Dreierpasch alle Augen Zählen - - - - + + + + Viererpasch alle Augen zählen - - - - + + + + Full House 25 Punkte - - - - + + + + Kleine Straße diff --git a/kniffel/test/test_dreierPasch.test.js b/kniffel/test/test_dreierPasch.test.js new file mode 100644 index 0000000..930c8b5 --- /dev/null +++ b/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); + + }); + + +})