From 3d36ed972769191de47126835a747ddd48a4e980 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Raphael=20Elstr=C3=B6m?= Date: Tue, 7 Feb 2023 09:28:09 +0100 Subject: [PATCH 01/26] Funktion Gewinner: vier Steine in einer Spalte --- vier_gewinnt/JS/steinSetzen.js | 4 +- vier_gewinnt/JS/steineInSpalte.js | 22 ++++-- vier_gewinnt/JS/vierInSpalte.js | 13 ++++ vier_gewinnt/tests/test_vierGewint.test.js | 9 ++- vier_gewinnt/vierGewinnt.html | 84 +++++++++++----------- 5 files changed, 80 insertions(+), 52 deletions(-) create mode 100644 vier_gewinnt/JS/vierInSpalte.js diff --git a/vier_gewinnt/JS/steinSetzen.js b/vier_gewinnt/JS/steinSetzen.js index 1f7de7f..4189dd2 100644 --- a/vier_gewinnt/JS/steinSetzen.js +++ b/vier_gewinnt/JS/steinSetzen.js @@ -2,10 +2,10 @@ function setzeStein(reihe, spalte) { var aktuellerSpieler = document.getElementById("aktuellerSpieler").innerHTML; var color; if (aktuellerSpieler == 1) { - color = "red"; + color = "green"; } else { - color = "green"; + color = "red"; } document.getElementById(reihe + "/" + spalte).style.backgroundColor= color; spielerWechsel(); diff --git a/vier_gewinnt/JS/steineInSpalte.js b/vier_gewinnt/JS/steineInSpalte.js index 764ea8c..554c61d 100644 --- a/vier_gewinnt/JS/steineInSpalte.js +++ b/vier_gewinnt/JS/steineInSpalte.js @@ -1,20 +1,28 @@ + + + + function steinInSpalte(spalte) { // Feld mit Steinen in Zeile // O = kein Stein // 1 = gruener Stein // 2 = roter Stein - var zeile = []; + var zeile1 = []; for (let i = 1; i <= 6; i++) { + var color = document.getElementById(i + "/" + spalte).style.backgroundColor; - if (document.getElementById( i +"/"+ spalte).style.backgroundColor == "red") { - zeile.push(2); - }if (document.getElementById(i + "/"+ spalte).style.backgroundColor == "green") { - zeile.push(1); + if (color == "red") { + zeile1.push(2); + }else if (color == "green") { + zeile1.push(1); } else { - zeile.push(0); + zeile1.push(0); } } + + return zeile1; -} \ No newline at end of file +} +//module.exports = steinInSpalte; \ No newline at end of file diff --git a/vier_gewinnt/JS/vierInSpalte.js b/vier_gewinnt/JS/vierInSpalte.js new file mode 100644 index 0000000..6fb48b8 --- /dev/null +++ b/vier_gewinnt/JS/vierInSpalte.js @@ -0,0 +1,13 @@ +function vierInSpalte(spalte){ + if(spalte == [0, 0, 1, 1, 1, 1] || spalte == [0, 1, 1, 1, 1, 0] || spalte == [1, 1, 1, 1, 0, 0]|| spalte == [1, 1, 1, 1, 1, 0]|| spalte == [0, 1, 1, 1, 1, 1]|| spalte == [1, 1, 1, 1, 1, 1] || spalte == [2, 2, 1, 1, 1, 1] || spalte == [2, 1, 1, 1, 1, 2] || spalte == [1, 1, 1, 1, 2, 2]|| spalte == [1, 1, 1, 1, 1, 2]|| spalte == [2, 1, 1, 1, 1, 1]){ + //Spieler Gruen + return 1; + } + else if(spalte == [0, 0, 2, 2, 2, 2] || spalte == [0, 2, 2, 2, 2, 0] || spalte == [2, 2, 2, 2, 0, 0]|| spalte == [2, 2, 2, 2, 2, 0]|| spalte == [0, 2, 2, 2, 2, 2]|| spalte == [2, 2, 2, 2, 2, 2] || spalte == [1, 1, 2, 2, 2, 2] || spalte == [1, 2, 2, 2, 2, 1] || spalte == [2, 2, 2, 2, 1, 1]|| spalte == [2, 2, 2, 2, 2, 1]|| spalte == [1, 2, 2, 2, 2, 2]){ + //Spieler Rot + return 2; + } else { + return 0; + } +} +module.exports = vierInSpalte; \ No newline at end of file diff --git a/vier_gewinnt/tests/test_vierGewint.test.js b/vier_gewinnt/tests/test_vierGewint.test.js index efc6144..75baf45 100644 --- a/vier_gewinnt/tests/test_vierGewint.test.js +++ b/vier_gewinnt/tests/test_vierGewint.test.js @@ -5,4 +5,11 @@ describe("Test Vier Gewinnt", () => { expect(neuer_stein_in_spalte(5)).toBe(6); expect(neuer_stein_in_spalte(6)).toBe("Spalte voll"); }) -}) \ No newline at end of file +}) + +// const steinInSpalte = require("../JS/steineInSpalte"); +// describe("Test Vier Gewinnt", () => { +// it("Test Stein und Spielerfarbe erkennen", () =>{ +// expect(steinInSpalte(1)).toStrictEqual([0,0,0,0,0,0]); +// }) +// }) \ No newline at end of file diff --git a/vier_gewinnt/vierGewinnt.html b/vier_gewinnt/vierGewinnt.html index b425127..83dd58e 100644 --- a/vier_gewinnt/vierGewinnt.html +++ b/vier_gewinnt/vierGewinnt.html @@ -13,62 +13,62 @@

Vier Gewinnt

Vier Gewinnt ist ein Spiel, indem Spieler abwechseld Steine in Felder legen, wer als erstes vier Steine nebeneinader, übereinander oder diagonal hat, hat gewonnen.

-

Spieler an Zug:

1

+

Spieler am Zug:

1

- - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - + + + + + + From bad0899c160e4152afab85404816fe1656ac295e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Raphael=20Elstr=C3=B6m?= Date: Tue, 7 Feb 2023 12:10:00 +0100 Subject: [PATCH 02/26] Test Gewinner, wenn vier Steine in Spalte --- vier_gewinnt/JS/vierInSpalte.js | 23 ++++++++++++-------- vier_gewinnt/tests/test_vierInSpalte.test.js | 10 +++++++++ 2 files changed, 24 insertions(+), 9 deletions(-) create mode 100644 vier_gewinnt/tests/test_vierInSpalte.test.js diff --git a/vier_gewinnt/JS/vierInSpalte.js b/vier_gewinnt/JS/vierInSpalte.js index 6fb48b8..a900485 100644 --- a/vier_gewinnt/JS/vierInSpalte.js +++ b/vier_gewinnt/JS/vierInSpalte.js @@ -1,13 +1,18 @@ -function vierInSpalte(spalte){ - if(spalte == [0, 0, 1, 1, 1, 1] || spalte == [0, 1, 1, 1, 1, 0] || spalte == [1, 1, 1, 1, 0, 0]|| spalte == [1, 1, 1, 1, 1, 0]|| spalte == [0, 1, 1, 1, 1, 1]|| spalte == [1, 1, 1, 1, 1, 1] || spalte == [2, 2, 1, 1, 1, 1] || spalte == [2, 1, 1, 1, 1, 2] || spalte == [1, 1, 1, 1, 2, 2]|| spalte == [1, 1, 1, 1, 1, 2]|| spalte == [2, 1, 1, 1, 1, 1]){ - //Spieler Gruen - return 1; +function vierInSpalte(arr){ + var Gewinner = 0; + //Spieler Gruen + for (let i = 0; i < arr.length - 3; i++) { + if (arr[i] === 1 && arr[i + 1] === 1 && arr[i + 2] === 1 && arr[i + 3] === 1) { + Gewinner = 1; + } } - else if(spalte == [0, 0, 2, 2, 2, 2] || spalte == [0, 2, 2, 2, 2, 0] || spalte == [2, 2, 2, 2, 0, 0]|| spalte == [2, 2, 2, 2, 2, 0]|| spalte == [0, 2, 2, 2, 2, 2]|| spalte == [2, 2, 2, 2, 2, 2] || spalte == [1, 1, 2, 2, 2, 2] || spalte == [1, 2, 2, 2, 2, 1] || spalte == [2, 2, 2, 2, 1, 1]|| spalte == [2, 2, 2, 2, 2, 1]|| spalte == [1, 2, 2, 2, 2, 2]){ - //Spieler Rot - return 2; - } else { - return 0; + //Spieler Rot + for (let i = 0; i < arr.length - 3; i++) { + if (arr[i] === 2 && arr[i + 1] === 2 && arr[i + 2] === 2 && arr[i + 3] === 2) { + Gewinner = 2; + } } + return Gewinner; + } module.exports = vierInSpalte; \ No newline at end of file diff --git a/vier_gewinnt/tests/test_vierInSpalte.test.js b/vier_gewinnt/tests/test_vierInSpalte.test.js new file mode 100644 index 0000000..e675dee --- /dev/null +++ b/vier_gewinnt/tests/test_vierInSpalte.test.js @@ -0,0 +1,10 @@ +const vierInSpalte = require("../JS/vierInSpalte"); + +describe("Test Vier Gewinnt", () => { + it("Test vier Stein in einer Spalte vorhanden und gebe Gewinner 1 aus", () =>{ + expect(vierInSpalte([1, 1, 1, 1, 0, 0])).toBe(1); + }) + it("Test vier Stein in einer Spalte vorhanden und gebe Gewinner 2 aus", () =>{ + expect(vierInSpalte([0, 2, 2, 2, 2, 0])).toBe(2); + }) +}) \ No newline at end of file From ef5f27c63aa0797fec8020c50489b49816d8c99e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Raphael=20Elstr=C3=B6m?= Date: Tue, 7 Feb 2023 12:35:20 +0100 Subject: [PATCH 03/26] =?UTF-8?q?Test=20welcher=20Platz=20als=20n=C3=A4chs?= =?UTF-8?q?tes=20Frei=20ist?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vier_gewinnt/JS/naechsteFreierPlatz.js | 9 +++++++++ vier_gewinnt/tests/test_naechsterFreierPlatz.test.js | 8 ++++++++ 2 files changed, 17 insertions(+) create mode 100644 vier_gewinnt/JS/naechsteFreierPlatz.js create mode 100644 vier_gewinnt/tests/test_naechsterFreierPlatz.test.js diff --git a/vier_gewinnt/JS/naechsteFreierPlatz.js b/vier_gewinnt/JS/naechsteFreierPlatz.js new file mode 100644 index 0000000..f8d8950 --- /dev/null +++ b/vier_gewinnt/JS/naechsteFreierPlatz.js @@ -0,0 +1,9 @@ +function ersterFerierPlatz(arr) { + for (let elem = 0; elem < arr.length; elem++) { + if (arr[elem] === 0) { + return elem+1; + } + + } +} +module.exports= ersterFerierPlatz; \ No newline at end of file diff --git a/vier_gewinnt/tests/test_naechsterFreierPlatz.test.js b/vier_gewinnt/tests/test_naechsterFreierPlatz.test.js new file mode 100644 index 0000000..a8365a4 --- /dev/null +++ b/vier_gewinnt/tests/test_naechsterFreierPlatz.test.js @@ -0,0 +1,8 @@ +const ersterFerierPlatz = require("../JS/naechsteFreierPlatz"); + +describe("Test Vier Gewinnt", () => { + it("Test welcher naechster platz ist frei", () =>{ + expect(ersterFerierPlatz([1, 1, 0, 0, 0, 0])).toBe(3); + expect(ersterFerierPlatz([1, 1, 2, 1, 0, 0])).toBe(5); + }) +}) \ No newline at end of file From a856b6ba3fbbab71b9744ee0ce01f1f378d7c85a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Raphael=20Elstr=C3=B6m?= Date: Tue, 7 Feb 2023 13:19:36 +0100 Subject: [PATCH 04/26] =?UTF-8?q?Stein=20unten=20platzieren=20und=20Stein?= =?UTF-8?q?=20wird=20nicht=20mehr=20=C3=BCberschrieben?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vier_gewinnt/JS/naechsteFreierPlatz.js | 4 ++-- vier_gewinnt/JS/steinSetzen.js | 4 ++++ vier_gewinnt/tests/test_naechsterFreierPlatz.test.js | 6 +++--- vier_gewinnt/tests/test_vierGewint.test.js | 9 +-------- vier_gewinnt/vierGewinnt.html | 1 + 5 files changed, 11 insertions(+), 13 deletions(-) diff --git a/vier_gewinnt/JS/naechsteFreierPlatz.js b/vier_gewinnt/JS/naechsteFreierPlatz.js index f8d8950..a41d52f 100644 --- a/vier_gewinnt/JS/naechsteFreierPlatz.js +++ b/vier_gewinnt/JS/naechsteFreierPlatz.js @@ -1,4 +1,4 @@ -function ersterFerierPlatz(arr) { +function ersterFreierPlatz(arr) { for (let elem = 0; elem < arr.length; elem++) { if (arr[elem] === 0) { return elem+1; @@ -6,4 +6,4 @@ function ersterFerierPlatz(arr) { } } -module.exports= ersterFerierPlatz; \ No newline at end of file +module.exports= ersterFreierPlatz; \ No newline at end of file diff --git a/vier_gewinnt/JS/steinSetzen.js b/vier_gewinnt/JS/steinSetzen.js index 4189dd2..27f7acd 100644 --- a/vier_gewinnt/JS/steinSetzen.js +++ b/vier_gewinnt/JS/steinSetzen.js @@ -1,4 +1,5 @@ function setzeStein(reihe, spalte) { + // const ersterFreierPlatz = require("./naechsteFreierPlatz"); var aktuellerSpieler = document.getElementById("aktuellerSpieler").innerHTML; var color; if (aktuellerSpieler == 1) { @@ -7,6 +8,9 @@ function setzeStein(reihe, spalte) { } else { color = "red"; } + + var reihe = ersterFreierPlatz(steinInSpalte(spalte)); + document.getElementById(reihe + "/" + spalte).style.backgroundColor= color; spielerWechsel(); } \ No newline at end of file diff --git a/vier_gewinnt/tests/test_naechsterFreierPlatz.test.js b/vier_gewinnt/tests/test_naechsterFreierPlatz.test.js index a8365a4..2a55f21 100644 --- a/vier_gewinnt/tests/test_naechsterFreierPlatz.test.js +++ b/vier_gewinnt/tests/test_naechsterFreierPlatz.test.js @@ -1,8 +1,8 @@ -const ersterFerierPlatz = require("../JS/naechsteFreierPlatz"); +const ersterFreierPlatz = require("../JS/naechsteFreierPlatz"); describe("Test Vier Gewinnt", () => { it("Test welcher naechster platz ist frei", () =>{ - expect(ersterFerierPlatz([1, 1, 0, 0, 0, 0])).toBe(3); - expect(ersterFerierPlatz([1, 1, 2, 1, 0, 0])).toBe(5); + expect(ersterFreierPlatz([1, 1, 0, 0, 0, 0])).toBe(3); + expect(ersterFreierPlatz([1, 1, 2, 1, 0, 0])).toBe(5); }) }) \ No newline at end of file diff --git a/vier_gewinnt/tests/test_vierGewint.test.js b/vier_gewinnt/tests/test_vierGewint.test.js index 75baf45..efc6144 100644 --- a/vier_gewinnt/tests/test_vierGewint.test.js +++ b/vier_gewinnt/tests/test_vierGewint.test.js @@ -5,11 +5,4 @@ describe("Test Vier Gewinnt", () => { expect(neuer_stein_in_spalte(5)).toBe(6); expect(neuer_stein_in_spalte(6)).toBe("Spalte voll"); }) -}) - -// const steinInSpalte = require("../JS/steineInSpalte"); -// describe("Test Vier Gewinnt", () => { -// it("Test Stein und Spielerfarbe erkennen", () =>{ -// expect(steinInSpalte(1)).toStrictEqual([0,0,0,0,0,0]); -// }) -// }) \ No newline at end of file +}) \ No newline at end of file diff --git a/vier_gewinnt/vierGewinnt.html b/vier_gewinnt/vierGewinnt.html index 83dd58e..e67b1fe 100644 --- a/vier_gewinnt/vierGewinnt.html +++ b/vier_gewinnt/vierGewinnt.html @@ -8,6 +8,7 @@ + Vier Gewinnt From e23ee32289fbd65527ae916fdb697210767bc6d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Raphael=20Elstr=C3=B6m?= Date: Tue, 7 Feb 2023 19:00:46 +0100 Subject: [PATCH 05/26] Vier horizontal in Reihe wird erkannt --- vier_gewinnt/JS/gewinnErmitteln.js | 8 ++++++++ vier_gewinnt/JS/steinSetzen.js | 3 ++- vier_gewinnt/JS/steineInSpalte.js | 14 +++++--------- vier_gewinnt/vierGewinnt.html | 2 ++ 4 files changed, 17 insertions(+), 10 deletions(-) create mode 100644 vier_gewinnt/JS/gewinnErmitteln.js diff --git a/vier_gewinnt/JS/gewinnErmitteln.js b/vier_gewinnt/JS/gewinnErmitteln.js new file mode 100644 index 0000000..5a8d2b8 --- /dev/null +++ b/vier_gewinnt/JS/gewinnErmitteln.js @@ -0,0 +1,8 @@ +function gewinnErmitteln(spalte) { + if (vierInSpalte(steinInSpalte(spalte)) === 1) { + alert("Spieler 1 (Grün) hat gewonnen") + }if (vierInSpalte(steinInSpalte(spalte)) === 2) { + alert("Spieler 2 (Rot) hat gewonnen") + } + +} \ No newline at end of file diff --git a/vier_gewinnt/JS/steinSetzen.js b/vier_gewinnt/JS/steinSetzen.js index 27f7acd..fed4f56 100644 --- a/vier_gewinnt/JS/steinSetzen.js +++ b/vier_gewinnt/JS/steinSetzen.js @@ -1,5 +1,4 @@ function setzeStein(reihe, spalte) { - // const ersterFreierPlatz = require("./naechsteFreierPlatz"); var aktuellerSpieler = document.getElementById("aktuellerSpieler").innerHTML; var color; if (aktuellerSpieler == 1) { @@ -12,5 +11,7 @@ function setzeStein(reihe, spalte) { var reihe = ersterFreierPlatz(steinInSpalte(spalte)); document.getElementById(reihe + "/" + spalte).style.backgroundColor= color; + gewinnErmitteln(spalte); spielerWechsel(); + } \ No newline at end of file diff --git a/vier_gewinnt/JS/steineInSpalte.js b/vier_gewinnt/JS/steineInSpalte.js index 554c61d..5ba41d2 100644 --- a/vier_gewinnt/JS/steineInSpalte.js +++ b/vier_gewinnt/JS/steineInSpalte.js @@ -1,27 +1,23 @@ - - - - function steinInSpalte(spalte) { // Feld mit Steinen in Zeile // O = kein Stein // 1 = gruener Stein // 2 = roter Stein - var zeile1 = []; + var zeile = []; for (let i = 1; i <= 6; i++) { var color = document.getElementById(i + "/" + spalte).style.backgroundColor; if (color == "red") { - zeile1.push(2); + zeile.push(2); }else if (color == "green") { - zeile1.push(1); + zeile.push(1); } else { - zeile1.push(0); + zeile.push(0); } } - return zeile1; + return zeile; } diff --git a/vier_gewinnt/vierGewinnt.html b/vier_gewinnt/vierGewinnt.html index e67b1fe..16815b7 100644 --- a/vier_gewinnt/vierGewinnt.html +++ b/vier_gewinnt/vierGewinnt.html @@ -9,6 +9,8 @@ + + Vier Gewinnt From d966f5a91948919ac2a357555404e04286fb07d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Raphael=20Elstr=C3=B6m?= Date: Tue, 7 Feb 2023 19:27:04 +0100 Subject: [PATCH 06/26] Reihen auslesen und Array ausgeben --- vier_gewinnt/JS/steineInReihe.js | 23 +++++++++++++++++++++++ vier_gewinnt/vierGewinnt.html | 1 + 2 files changed, 24 insertions(+) create mode 100644 vier_gewinnt/JS/steineInReihe.js diff --git a/vier_gewinnt/JS/steineInReihe.js b/vier_gewinnt/JS/steineInReihe.js new file mode 100644 index 0000000..d4ffd3c --- /dev/null +++ b/vier_gewinnt/JS/steineInReihe.js @@ -0,0 +1,23 @@ +function steinInReihe(reiheImFeld) { + // Feld mit Steinen in Reihe + // O = kein Stein + // 1 = gruener Stein + // 2 = roter Stein + var reihe = []; + + for (let i = 1; i <= 7; i++) { + var color = document.getElementById(reiheImFeld + "/" + i).style.backgroundColor; + + if (color == "red") { + reihe.push(2); + }else if (color == "green") { + reihe.push(1); + } else { + reihe.push(0); + } + } + + return reihe; + + +} \ No newline at end of file diff --git a/vier_gewinnt/vierGewinnt.html b/vier_gewinnt/vierGewinnt.html index 16815b7..95bcf35 100644 --- a/vier_gewinnt/vierGewinnt.html +++ b/vier_gewinnt/vierGewinnt.html @@ -8,6 +8,7 @@ + From 5c5592f12619f4c3bc3cce8a9a8a49b3111d95f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Raphael=20Elstr=C3=B6m?= Date: Tue, 7 Feb 2023 19:41:26 +0100 Subject: [PATCH 07/26] Test: Vier vertikal in Reihe nebeneinander wird erkannt --- vier_gewinnt/JS/vierInReihe.js | 18 ++++++++++++++++++ vier_gewinnt/tests/test_vierInReihe.test.js | 10 ++++++++++ 2 files changed, 28 insertions(+) create mode 100644 vier_gewinnt/JS/vierInReihe.js create mode 100644 vier_gewinnt/tests/test_vierInReihe.test.js diff --git a/vier_gewinnt/JS/vierInReihe.js b/vier_gewinnt/JS/vierInReihe.js new file mode 100644 index 0000000..c62735b --- /dev/null +++ b/vier_gewinnt/JS/vierInReihe.js @@ -0,0 +1,18 @@ +function vierInReihe(arr){ + var Gewinner = 0; + //Spieler Gruen + for (let i = 0; i < arr.length - 3; i++) { + if (arr[i] === 1 && arr[i + 1] === 1 && arr[i + 2] === 1 && arr[i + 3] === 1) { + Gewinner = 1; + } + } + //Spieler Rot + for (let i = 0; i < arr.length - 3; i++) { + if (arr[i] === 2 && arr[i + 1] === 2 && arr[i + 2] === 2 && arr[i + 3] === 2) { + Gewinner = 2; + } + } + return Gewinner; + +} +module.exports = vierInReihe; \ No newline at end of file diff --git a/vier_gewinnt/tests/test_vierInReihe.test.js b/vier_gewinnt/tests/test_vierInReihe.test.js new file mode 100644 index 0000000..ccd9796 --- /dev/null +++ b/vier_gewinnt/tests/test_vierInReihe.test.js @@ -0,0 +1,10 @@ +const vierInSpalte = require("../JS/vierInSpalte"); + +describe("Test Vier Gewinnt", () => { + it("Test vier Steine nebeneinander in einer Reihe vorhanden und gebe Gewinner 1 aus", () =>{ + expect(vierInSpalte([0, 1, 1, 1, 1, 0, 0])).toBe(1); + }) + it("Test vier Steine nebeneinander in einer Reihe vorhanden und gebe Gewinner 2 aus", () =>{ + expect(vierInSpalte([0, 0, 2, 2, 2, 2, 0])).toBe(2); + }) +}) \ No newline at end of file From 5a7b675d2514f8bdec420420e77e7e5415a4d936 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Raphael=20Elstr=C3=B6m?= Date: Tue, 7 Feb 2023 19:55:00 +0100 Subject: [PATCH 08/26] Vier horizontal in Reihe wird erkannt und Gewinner genannt --- vier_gewinnt/JS/gewinnErmitteln.js | 6 +++++- vier_gewinnt/JS/steinSetzen.js | 2 +- vier_gewinnt/vierGewinnt.html | 1 + 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/vier_gewinnt/JS/gewinnErmitteln.js b/vier_gewinnt/JS/gewinnErmitteln.js index 5a8d2b8..0cab2d3 100644 --- a/vier_gewinnt/JS/gewinnErmitteln.js +++ b/vier_gewinnt/JS/gewinnErmitteln.js @@ -1,8 +1,12 @@ -function gewinnErmitteln(spalte) { +function gewinnErmitteln(spalte,reihe) { if (vierInSpalte(steinInSpalte(spalte)) === 1) { alert("Spieler 1 (Grün) hat gewonnen") }if (vierInSpalte(steinInSpalte(spalte)) === 2) { alert("Spieler 2 (Rot) hat gewonnen") + }if (vierInReihe(steinInReihe(reihe)) === 1) { + alert("Spieler 1 (Grün) hat gewonnen") + }if (vierInReihe(steinInReihe(reihe)) === 2) { + alert("Spieler 2 (Rot) hat gewonnen") } } \ No newline at end of file diff --git a/vier_gewinnt/JS/steinSetzen.js b/vier_gewinnt/JS/steinSetzen.js index fed4f56..16337f8 100644 --- a/vier_gewinnt/JS/steinSetzen.js +++ b/vier_gewinnt/JS/steinSetzen.js @@ -11,7 +11,7 @@ function setzeStein(reihe, spalte) { var reihe = ersterFreierPlatz(steinInSpalte(spalte)); document.getElementById(reihe + "/" + spalte).style.backgroundColor= color; - gewinnErmitteln(spalte); + gewinnErmitteln(spalte, reihe); spielerWechsel(); } \ No newline at end of file diff --git a/vier_gewinnt/vierGewinnt.html b/vier_gewinnt/vierGewinnt.html index 95bcf35..8ff58b4 100644 --- a/vier_gewinnt/vierGewinnt.html +++ b/vier_gewinnt/vierGewinnt.html @@ -11,6 +11,7 @@ + Vier Gewinnt From b134e8480416744e4707a6b9f791335e83722887 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Raphael=20Elstr=C3=B6m?= Date: Tue, 7 Feb 2023 20:00:25 +0100 Subject: [PATCH 09/26] Button zum Spiel neustarten hinzugefuegt --- vier_gewinnt/vierGewinnt.html | 1 + 1 file changed, 1 insertion(+) diff --git a/vier_gewinnt/vierGewinnt.html b/vier_gewinnt/vierGewinnt.html index 8ff58b4..bd5c818 100644 --- a/vier_gewinnt/vierGewinnt.html +++ b/vier_gewinnt/vierGewinnt.html @@ -78,5 +78,6 @@
+ From e18bd8c61da3594ed2f9d95cfb5cda8d57e7b1f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Raphael=20Elstr=C3=B6m?= Date: Wed, 8 Feb 2023 09:01:08 +0100 Subject: [PATCH 10/26] =?UTF-8?q?Alle=20Spalten=20werden=20in=20ein=20Arra?= =?UTF-8?q?y=20zusammengef=C3=BChrt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vier_gewinnt/JS/allSpaltenArrays.js | 8 ++++++++ vier_gewinnt/vierGewinnt.html | 1 + 2 files changed, 9 insertions(+) create mode 100644 vier_gewinnt/JS/allSpaltenArrays.js diff --git a/vier_gewinnt/JS/allSpaltenArrays.js b/vier_gewinnt/JS/allSpaltenArrays.js new file mode 100644 index 0000000..62e4a69 --- /dev/null +++ b/vier_gewinnt/JS/allSpaltenArrays.js @@ -0,0 +1,8 @@ +function allSpaltenArrays() { + var allSpaltenArray =[]; + for (let i = 1; i <= 7; i++) { + allSpaltenArray.push(steinInSpalte(i)) + } + + return allSpaltenArray +} \ No newline at end of file diff --git a/vier_gewinnt/vierGewinnt.html b/vier_gewinnt/vierGewinnt.html index bd5c818..9b0cfc5 100644 --- a/vier_gewinnt/vierGewinnt.html +++ b/vier_gewinnt/vierGewinnt.html @@ -9,6 +9,7 @@ + From f92b57ec88afd53e4dd3f370c4ed1837510d740d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Raphael=20Elstr=C3=B6m?= Date: Wed, 8 Feb 2023 13:39:47 +0100 Subject: [PATCH 11/26] =?UTF-8?q?Test:=20Ausgabe=20und=20auslese=20des=20A?= =?UTF-8?q?rrays=20=C3=BCberpr=C3=BCfen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vier_gewinnt/JS/vierDiagonalRechts.js | 4 ++++ vier_gewinnt/tests/test_vierDiagonalRechts.test.js | 7 +++++++ vier_gewinnt/vierGewinnt.html | 1 + 3 files changed, 12 insertions(+) create mode 100644 vier_gewinnt/JS/vierDiagonalRechts.js create mode 100644 vier_gewinnt/tests/test_vierDiagonalRechts.test.js diff --git a/vier_gewinnt/JS/vierDiagonalRechts.js b/vier_gewinnt/JS/vierDiagonalRechts.js new file mode 100644 index 0000000..b943c91 --- /dev/null +++ b/vier_gewinnt/JS/vierDiagonalRechts.js @@ -0,0 +1,4 @@ +function vierDiagonalRechts(allSpaltenArray) { + return allSpaltenArray[0][0]; +} +module.exports = vierDiagonalRechts; \ No newline at end of file diff --git a/vier_gewinnt/tests/test_vierDiagonalRechts.test.js b/vier_gewinnt/tests/test_vierDiagonalRechts.test.js new file mode 100644 index 0000000..8cdbdaa --- /dev/null +++ b/vier_gewinnt/tests/test_vierDiagonalRechts.test.js @@ -0,0 +1,7 @@ +const vierDiagonalRechts = require("../JS/vierDiagonalRechts"); + +describe("Test Vier Gewinnt", () => { + it("Test vierDiagonalRechts: rückgabe des Arrays testen", () =>{ + expect(vierDiagonalRechts([[1, 0, 0, 0, 0, 0], [2, 1, 0, 0, 0, 0], [2, 1, 1, 0, 0, 0], [2, 2, 1, 1, 0, 0], [0, 0, 0, 0, 0, 0], [2, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0]])).toBe(1); + }) +}) \ No newline at end of file diff --git a/vier_gewinnt/vierGewinnt.html b/vier_gewinnt/vierGewinnt.html index 9b0cfc5..adda224 100644 --- a/vier_gewinnt/vierGewinnt.html +++ b/vier_gewinnt/vierGewinnt.html @@ -13,6 +13,7 @@ + Vier Gewinnt From a31aa2abaf8c9358eb6a912b03f5bb16cb4f3853 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Raphael=20Elstr=C3=B6m?= Date: Wed, 8 Feb 2023 15:05:21 +0100 Subject: [PATCH 12/26] Test: Vier Diagonal nach rechts erkannt --- vier_gewinnt/JS/gewinnErmitteln.js | 2 +- vier_gewinnt/JS/vierDiagonalRechts.js | 12 +++++++++++- vier_gewinnt/tests/test_vierDiagonalRechts.test.js | 6 +++++- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/vier_gewinnt/JS/gewinnErmitteln.js b/vier_gewinnt/JS/gewinnErmitteln.js index 0cab2d3..ef79924 100644 --- a/vier_gewinnt/JS/gewinnErmitteln.js +++ b/vier_gewinnt/JS/gewinnErmitteln.js @@ -7,6 +7,6 @@ function gewinnErmitteln(spalte,reihe) { alert("Spieler 1 (Grün) hat gewonnen") }if (vierInReihe(steinInReihe(reihe)) === 2) { alert("Spieler 2 (Rot) hat gewonnen") - } + } } \ No newline at end of file diff --git a/vier_gewinnt/JS/vierDiagonalRechts.js b/vier_gewinnt/JS/vierDiagonalRechts.js index b943c91..2ab394d 100644 --- a/vier_gewinnt/JS/vierDiagonalRechts.js +++ b/vier_gewinnt/JS/vierDiagonalRechts.js @@ -1,4 +1,14 @@ function vierDiagonalRechts(allSpaltenArray) { - return allSpaltenArray[0][0]; + var Gewinner =0; + for (let i = 0; i <= allSpaltenArray.length -3; i++) { + for (let j = 0; j <= allSpaltenArray[0].length -3; j++) { + if (allSpaltenArray[j][i]===1 && allSpaltenArray[j+1][i+1]===1 && allSpaltenArray[j+2][i+2]===1 && allSpaltenArray[j+3][i+3]===1) { + Gewinner = 1; + } + } + + + } + return Gewinner; } module.exports = vierDiagonalRechts; \ No newline at end of file diff --git a/vier_gewinnt/tests/test_vierDiagonalRechts.test.js b/vier_gewinnt/tests/test_vierDiagonalRechts.test.js index 8cdbdaa..e64d522 100644 --- a/vier_gewinnt/tests/test_vierDiagonalRechts.test.js +++ b/vier_gewinnt/tests/test_vierDiagonalRechts.test.js @@ -1,7 +1,11 @@ const vierDiagonalRechts = require("../JS/vierDiagonalRechts"); describe("Test Vier Gewinnt", () => { - it("Test vierDiagonalRechts: rückgabe des Arrays testen", () =>{ + it("Test vierDiagonalRechts: Vier Diagonal erkennen und Gewinner zuruek geben", () =>{ expect(vierDiagonalRechts([[1, 0, 0, 0, 0, 0], [2, 1, 0, 0, 0, 0], [2, 1, 1, 0, 0, 0], [2, 2, 1, 1, 0, 0], [0, 0, 0, 0, 0, 0], [2, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0]])).toBe(1); + expect(vierDiagonalRechts([[1, 2, 1, 0, 0, 0], [2, 1, 2, 1, 0, 0], [2, 1, 1, 2, 1, 0], [2, 2, 1, 2, 1, 1], [0, 0, 0, 0, 0, 0], [2, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0]])).toBe(1); + expect(vierDiagonalRechts([[2, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [2, 1, 0, 0, 0, 0], [2, 1, 1, 0, 0, 0], [2, 1, 2, 1, 0, 0], [1, 2, 1, 2, 1, 0]])).toBe(1); + expect(vierDiagonalRechts([[2, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0], [2, 0, 0, 0, 0, 0], [1, 2, 1, 0, 0, 0], [2, 1, 2, 1, 0, 0], [2, 1, 2, 1, 1, 0], [2, 2, 1, 2, 1, 1]])).toBe(1); + expect(vierDiagonalRechts([[2, 0, 0, 0, 0, 0], [2, 0, 0, 0, 0, 0], [1, 2, 1, 0, 0, 0], [2, 1, 2, 1, 0, 0], [2, 1, 2, 1, 1, 0], [2, 2, 1, 2, 1, 1], [1, 0, 0, 0, 0, 0]])).toBe(1); }) }) \ No newline at end of file From 7c3ca75fa1e28f62a828fc70345db65d75b248fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Raphael=20Elstr=C3=B6m?= Date: Wed, 8 Feb 2023 15:11:29 +0100 Subject: [PATCH 13/26] =?UTF-8?q?Test:=20Vier=20Diagonal=20nach=20rechts?= =?UTF-8?q?=20erkannt=20f=C3=BCr=20Spieler=202=20(rot)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vier_gewinnt/JS/vierDiagonalRechts.js | 9 +++++---- vier_gewinnt/tests/test_vierDiagonalRechts.test.js | 12 +++++++++++- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/vier_gewinnt/JS/vierDiagonalRechts.js b/vier_gewinnt/JS/vierDiagonalRechts.js index 2ab394d..81d1a29 100644 --- a/vier_gewinnt/JS/vierDiagonalRechts.js +++ b/vier_gewinnt/JS/vierDiagonalRechts.js @@ -4,10 +4,11 @@ function vierDiagonalRechts(allSpaltenArray) { for (let j = 0; j <= allSpaltenArray[0].length -3; j++) { if (allSpaltenArray[j][i]===1 && allSpaltenArray[j+1][i+1]===1 && allSpaltenArray[j+2][i+2]===1 && allSpaltenArray[j+3][i+3]===1) { Gewinner = 1; - } - } - - + } + if (allSpaltenArray[j][i]===2 && allSpaltenArray[j+1][i+1]===2 && allSpaltenArray[j+2][i+2]===2 && allSpaltenArray[j+3][i+3]===2) { + Gewinner = 2; + } + } } return Gewinner; } diff --git a/vier_gewinnt/tests/test_vierDiagonalRechts.test.js b/vier_gewinnt/tests/test_vierDiagonalRechts.test.js index e64d522..cb4e536 100644 --- a/vier_gewinnt/tests/test_vierDiagonalRechts.test.js +++ b/vier_gewinnt/tests/test_vierDiagonalRechts.test.js @@ -1,11 +1,21 @@ const vierDiagonalRechts = require("../JS/vierDiagonalRechts"); describe("Test Vier Gewinnt", () => { - it("Test vierDiagonalRechts: Vier Diagonal erkennen und Gewinner zuruek geben", () =>{ + it("Test vierDiagonalRechts: Vier Diagonal erkennen und Gewinner 1(Gruen) zuruek geben", () =>{ expect(vierDiagonalRechts([[1, 0, 0, 0, 0, 0], [2, 1, 0, 0, 0, 0], [2, 1, 1, 0, 0, 0], [2, 2, 1, 1, 0, 0], [0, 0, 0, 0, 0, 0], [2, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0]])).toBe(1); expect(vierDiagonalRechts([[1, 2, 1, 0, 0, 0], [2, 1, 2, 1, 0, 0], [2, 1, 1, 2, 1, 0], [2, 2, 1, 2, 1, 1], [0, 0, 0, 0, 0, 0], [2, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0]])).toBe(1); expect(vierDiagonalRechts([[2, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [2, 1, 0, 0, 0, 0], [2, 1, 1, 0, 0, 0], [2, 1, 2, 1, 0, 0], [1, 2, 1, 2, 1, 0]])).toBe(1); expect(vierDiagonalRechts([[2, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0], [2, 0, 0, 0, 0, 0], [1, 2, 1, 0, 0, 0], [2, 1, 2, 1, 0, 0], [2, 1, 2, 1, 1, 0], [2, 2, 1, 2, 1, 1]])).toBe(1); expect(vierDiagonalRechts([[2, 0, 0, 0, 0, 0], [2, 0, 0, 0, 0, 0], [1, 2, 1, 0, 0, 0], [2, 1, 2, 1, 0, 0], [2, 1, 2, 1, 1, 0], [2, 2, 1, 2, 1, 1], [1, 0, 0, 0, 0, 0]])).toBe(1); }) +}) + +describe("Test Vier Gewinnt", () => { + it("Test vierDiagonalRechts: Vier Diagonal erkennen und Gewinner 2 (rot) zuruek geben", () =>{ + expect(vierDiagonalRechts([[2, 0, 0, 0, 0, 0], [1, 2, 0, 0, 0, 0], [1, 2, 2, 0, 0, 0], [1, 1, 2, 2, 0, 0], [0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0]])).toBe(2); + expect(vierDiagonalRechts([[2, 1, 2, 0, 0, 0], [1, 2, 1, 2, 0, 0], [1, 2, 2, 1, 2, 0], [1, 1, 2, 1, 2, 2], [0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0]])).toBe(2); + expect(vierDiagonalRechts([[1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [1, 2, 0, 0, 0, 0], [1, 2, 2, 0, 0, 0], [1, 2, 1, 2, 0, 0], [2, 1, 2, 1, 2, 0]])).toBe(2); + expect(vierDiagonalRechts([[1, 0, 0, 0, 0, 0], [2, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0], [2, 1, 2, 0, 0, 0], [1, 2, 1, 2, 0, 0], [1, 2, 1, 2, 2, 0], [1, 1, 2, 1, 2, 2]])).toBe(2); + expect(vierDiagonalRechts([[1, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0], [2, 1, 2, 0, 0, 0], [1, 2, 1, 2, 0, 0], [1, 2, 1, 2, 2, 0], [1, 1, 2, 1, 2, 2], [2, 0, 0, 0, 0, 0]])).toBe(2); + }) }) \ No newline at end of file From 63ac96790d06eab0a6963232d80867d02ab98590 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Raphael=20Elstr=C3=B6m?= Date: Wed, 8 Feb 2023 15:52:16 +0100 Subject: [PATCH 14/26] Gewinner wird erkannt, bei vier Diagonal bei Spieler 1 (gruen --- vier_gewinnt/JS/gewinnErmitteln.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/vier_gewinnt/JS/gewinnErmitteln.js b/vier_gewinnt/JS/gewinnErmitteln.js index ef79924..6b73e45 100644 --- a/vier_gewinnt/JS/gewinnErmitteln.js +++ b/vier_gewinnt/JS/gewinnErmitteln.js @@ -7,6 +7,8 @@ function gewinnErmitteln(spalte,reihe) { alert("Spieler 1 (Grün) hat gewonnen") }if (vierInReihe(steinInReihe(reihe)) === 2) { alert("Spieler 2 (Rot) hat gewonnen") + }if (vierDiagonalRechts(allSpaltenArrays()) === 1) { + alert("Spieler 1 (Grün) hat gewonnen") } } \ No newline at end of file From 32ccc765a79e25d4c7c8847ec1d23710896ac1fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Raphael=20Elstr=C3=B6m?= Date: Wed, 8 Feb 2023 15:54:02 +0100 Subject: [PATCH 15/26] Gewinner wird erkannt, bei vier Diagonal nach rechts bei Spieler 2 (rot) --- vier_gewinnt/JS/gewinnErmitteln.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/vier_gewinnt/JS/gewinnErmitteln.js b/vier_gewinnt/JS/gewinnErmitteln.js index 6b73e45..4aff3e3 100644 --- a/vier_gewinnt/JS/gewinnErmitteln.js +++ b/vier_gewinnt/JS/gewinnErmitteln.js @@ -9,6 +9,8 @@ function gewinnErmitteln(spalte,reihe) { alert("Spieler 2 (Rot) hat gewonnen") }if (vierDiagonalRechts(allSpaltenArrays()) === 1) { alert("Spieler 1 (Grün) hat gewonnen") + }if (vierDiagonalRechts(allSpaltenArrays()) === 2) { + alert("Spieler 2 (Rot) hat gewonnen") } } \ No newline at end of file From f13c2770bc66de2d6171768d9fd810c53746b25e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Raphael=20Elstr=C3=B6m?= Date: Wed, 8 Feb 2023 16:40:26 +0100 Subject: [PATCH 16/26] =?UTF-8?q?Test:=20Vier=20Diagonal=20nach=20links=20?= =?UTF-8?q?erkannt=20f=C3=BCr=20Spieler=201=20(gruen)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vier_gewinnt/JS/vierDiagonalLinks.js | 12 ++++++++++++ vier_gewinnt/tests/test_vierDiagonalLinks.test.js | 12 ++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 vier_gewinnt/JS/vierDiagonalLinks.js create mode 100644 vier_gewinnt/tests/test_vierDiagonalLinks.test.js diff --git a/vier_gewinnt/JS/vierDiagonalLinks.js b/vier_gewinnt/JS/vierDiagonalLinks.js new file mode 100644 index 0000000..e0d8369 --- /dev/null +++ b/vier_gewinnt/JS/vierDiagonalLinks.js @@ -0,0 +1,12 @@ +function vierDiagonalLinks(allSpaltenArray) { + var Gewinner =0; + for (let i = 3; i <= allSpaltenArray.length; i++) { + for (let j = 0; j <= allSpaltenArray[0].length -3; j++) { + if (allSpaltenArray[j][i]===1 && allSpaltenArray[j+1][i-1]===1 && allSpaltenArray[j+2][i-2]===1 && allSpaltenArray[j+3][i-3]===1) { + Gewinner = 1; + } + } + } + return Gewinner; +} +module.exports = vierDiagonalLinks; \ No newline at end of file diff --git a/vier_gewinnt/tests/test_vierDiagonalLinks.test.js b/vier_gewinnt/tests/test_vierDiagonalLinks.test.js new file mode 100644 index 0000000..9d65ddf --- /dev/null +++ b/vier_gewinnt/tests/test_vierDiagonalLinks.test.js @@ -0,0 +1,12 @@ +const vierDiagonalLinks = require("../JS/vierDiagonalLinks"); + +describe("Test Vier Gewinnt", () => { + it("Test vierDiagonalLinks: Vier Diagonal nach links erkennen und Gewinner 1(Gruen) zuruek geben", () =>{ + expect(vierDiagonalLinks([[0, 0, 0, 0, 0, 0], [2, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [2, 2, 1, 1, 0, 0], [2, 1, 1, 0, 0, 0], [2, 1, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0]])).toBe(1); + expect(vierDiagonalLinks([[2, 1, 2, 1, 0, 0], [2, 1, 1, 0, 0, 0], [2, 1, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [2, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0]])).toBe(1); + expect(vierDiagonalLinks([[0, 0, 0, 0, 0, 0], [2, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [2, 2, 1, 2, 1, 1], [2, 1, 2, 1, 1, 0], [2, 1, 2, 1, 0, 0], [1, 2, 1, 0, 0, 0]])).toBe(1); + expect(vierDiagonalLinks([[2, 2, 1, 2, 1, 1], [2, 1, 2, 1, 1, 0], [2, 1, 2, 1, 0, 0], [1, 2, 1, 0, 0, 0], [0, 0, 0, 0, 0, 0], [2, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0]])).toBe(1); + expect(vierDiagonalLinks([[0, 0, 0, 0, 0, 0], [1, 2, 1, 2, 1, 0], [2, 1, 2, 1, 0, 0], [2, 1, 1, 0, 0, 0], [2, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [1, 2, 2, 0, 0, 0]])).toBe(1); + + }) +}) \ No newline at end of file From 618debcb06e1610b6e43cd7007ec8ad8507ff50d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Raphael=20Elstr=C3=B6m?= Date: Wed, 8 Feb 2023 16:45:15 +0100 Subject: [PATCH 17/26] =?UTF-8?q?Test:=20Vier=20Diagonal=20nach=20links=20?= =?UTF-8?q?erkannt=20f=C3=BCr=20Spieler=202=20(rot)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vier_gewinnt/JS/vierDiagonalLinks.js | 4 +++- vier_gewinnt/tests/test_vierDiagonalLinks.test.js | 12 ++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/vier_gewinnt/JS/vierDiagonalLinks.js b/vier_gewinnt/JS/vierDiagonalLinks.js index e0d8369..18e8c79 100644 --- a/vier_gewinnt/JS/vierDiagonalLinks.js +++ b/vier_gewinnt/JS/vierDiagonalLinks.js @@ -4,7 +4,9 @@ function vierDiagonalLinks(allSpaltenArray) { for (let j = 0; j <= allSpaltenArray[0].length -3; j++) { if (allSpaltenArray[j][i]===1 && allSpaltenArray[j+1][i-1]===1 && allSpaltenArray[j+2][i-2]===1 && allSpaltenArray[j+3][i-3]===1) { Gewinner = 1; - } + }if (allSpaltenArray[j][i]===2 && allSpaltenArray[j+1][i-1]===2 && allSpaltenArray[j+2][i-2]===2 && allSpaltenArray[j+3][i-3]===2) { + Gewinner = 2; + } } } return Gewinner; diff --git a/vier_gewinnt/tests/test_vierDiagonalLinks.test.js b/vier_gewinnt/tests/test_vierDiagonalLinks.test.js index 9d65ddf..1970e3a 100644 --- a/vier_gewinnt/tests/test_vierDiagonalLinks.test.js +++ b/vier_gewinnt/tests/test_vierDiagonalLinks.test.js @@ -8,5 +8,17 @@ describe("Test Vier Gewinnt", () => { expect(vierDiagonalLinks([[2, 2, 1, 2, 1, 1], [2, 1, 2, 1, 1, 0], [2, 1, 2, 1, 0, 0], [1, 2, 1, 0, 0, 0], [0, 0, 0, 0, 0, 0], [2, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0]])).toBe(1); expect(vierDiagonalLinks([[0, 0, 0, 0, 0, 0], [1, 2, 1, 2, 1, 0], [2, 1, 2, 1, 0, 0], [2, 1, 1, 0, 0, 0], [2, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [1, 2, 2, 0, 0, 0]])).toBe(1); + }) +}) + + +describe("Test Vier Gewinnt", () => { + it("Test vierDiagonalLinks: Vier Diagonal nach links erkennen und Gewinner 2(Rot) zuruek geben", () =>{ + expect(vierDiagonalLinks([[0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [1, 1, 2, 2, 0, 0], [1, 2, 2, 0, 0, 0], [1, 2, 0, 0, 0, 0], [2, 0, 0, 0, 0, 0]])).toBe(2); + expect(vierDiagonalLinks([[1, 2, 1, 2, 0, 0], [1, 2, 2, 0, 0, 0], [1, 2, 0, 0, 0, 0], [2, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0]])).toBe(2); + expect(vierDiagonalLinks([[0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [1, 1, 2, 1, 2, 2], [1, 2, 1, 2, 2, 0], [1, 2, 1, 2, 0, 0], [2, 1, 2, 0, 0, 0]])).toBe(2); + expect(vierDiagonalLinks([[1, 1, 2, 1, 2, 2], [1, 2, 1, 2, 2, 0], [1, 2, 1, 2, 0, 0], [2, 1, 2, 0, 0, 0], [0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0]])).toBe(2); + expect(vierDiagonalLinks([[0, 0, 0, 0, 0, 0], [2, 1, 2, 1, 2, 0], [1, 2, 1, 2, 0, 0], [1, 2, 2, 0, 0, 0], [1, 2, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [2, 1, 1, 0, 0, 0]])).toBe(2); + }) }) \ No newline at end of file From 75b78190491dc9c9e8f880dfbdb746187668cdd0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Raphael=20Elstr=C3=B6m?= Date: Wed, 8 Feb 2023 16:47:59 +0100 Subject: [PATCH 18/26] vierDiagonalLinks in HTML aufgenommen --- vier_gewinnt/vierGewinnt.html | 1 + 1 file changed, 1 insertion(+) diff --git a/vier_gewinnt/vierGewinnt.html b/vier_gewinnt/vierGewinnt.html index adda224..c0c4fba 100644 --- a/vier_gewinnt/vierGewinnt.html +++ b/vier_gewinnt/vierGewinnt.html @@ -14,6 +14,7 @@ + Vier Gewinnt From cd75e9f7f834c1644faf53b40fc5d1a2cc0fc00e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Raphael=20Elstr=C3=B6m?= Date: Wed, 8 Feb 2023 16:50:23 +0100 Subject: [PATCH 19/26] Gewinner wird erkannt, bei vier Diagonal nach links bei Spieler 1 (gruen) --- vier_gewinnt/JS/gewinnErmitteln.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/vier_gewinnt/JS/gewinnErmitteln.js b/vier_gewinnt/JS/gewinnErmitteln.js index 4aff3e3..83e38b8 100644 --- a/vier_gewinnt/JS/gewinnErmitteln.js +++ b/vier_gewinnt/JS/gewinnErmitteln.js @@ -11,6 +11,8 @@ function gewinnErmitteln(spalte,reihe) { alert("Spieler 1 (Grün) hat gewonnen") }if (vierDiagonalRechts(allSpaltenArrays()) === 2) { alert("Spieler 2 (Rot) hat gewonnen") + }if (vierDiagonalLinks(allSpaltenArrays()) === 1) { + alert("Spieler 1 (Grün) hat gewonnen") } } \ No newline at end of file From b99dd44e2f9ea95dd19af0e672490cb8bb95fa1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Raphael=20Elstr=C3=B6m?= Date: Wed, 8 Feb 2023 16:51:40 +0100 Subject: [PATCH 20/26] Gewinner wird erkannt, bei vier Diagonal nach links bei Spieler 2 (rot) --- vier_gewinnt/JS/gewinnErmitteln.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/vier_gewinnt/JS/gewinnErmitteln.js b/vier_gewinnt/JS/gewinnErmitteln.js index 83e38b8..0adb85e 100644 --- a/vier_gewinnt/JS/gewinnErmitteln.js +++ b/vier_gewinnt/JS/gewinnErmitteln.js @@ -13,6 +13,8 @@ function gewinnErmitteln(spalte,reihe) { alert("Spieler 2 (Rot) hat gewonnen") }if (vierDiagonalLinks(allSpaltenArrays()) === 1) { alert("Spieler 1 (Grün) hat gewonnen") + }if (vierDiagonalLinks(allSpaltenArrays()) === 2) { + alert("Spieler 2 (Rot) hat gewonnen") } } \ No newline at end of file From c2f2a6b8d04593341cdf233ca53c88918047ce6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Raphael=20Elstr=C3=B6m?= Date: Wed, 8 Feb 2023 18:10:16 +0100 Subject: [PATCH 21/26] Gewinner wird erkannt, bei vier Diagonal nach links bei Spieler 2 (rot --- vier_gewinnt/JS/gewinnErmitteln.js | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/vier_gewinnt/JS/gewinnErmitteln.js b/vier_gewinnt/JS/gewinnErmitteln.js index 0adb85e..53e1959 100644 --- a/vier_gewinnt/JS/gewinnErmitteln.js +++ b/vier_gewinnt/JS/gewinnErmitteln.js @@ -1,18 +1,12 @@ function gewinnErmitteln(spalte,reihe) { - if (vierInSpalte(steinInSpalte(spalte)) === 1) { + if (vierInSpalte(steinInSpalte(spalte)) === 1 || vierInReihe(steinInReihe(reihe)) === 1 || vierDiagonalRechts(allSpaltenArrays()) === 1 || vierDiagonalLinks(allSpaltenArrays()) === 1) { alert("Spieler 1 (Grün) hat gewonnen") }if (vierInSpalte(steinInSpalte(spalte)) === 2) { alert("Spieler 2 (Rot) hat gewonnen") - }if (vierInReihe(steinInReihe(reihe)) === 1) { - alert("Spieler 1 (Grün) hat gewonnen") }if (vierInReihe(steinInReihe(reihe)) === 2) { alert("Spieler 2 (Rot) hat gewonnen") - }if (vierDiagonalRechts(allSpaltenArrays()) === 1) { - alert("Spieler 1 (Grün) hat gewonnen") }if (vierDiagonalRechts(allSpaltenArrays()) === 2) { alert("Spieler 2 (Rot) hat gewonnen") - }if (vierDiagonalLinks(allSpaltenArrays()) === 1) { - alert("Spieler 1 (Grün) hat gewonnen") }if (vierDiagonalLinks(allSpaltenArrays()) === 2) { alert("Spieler 2 (Rot) hat gewonnen") } From 503325784e4284f5ba92c85d8c69bf5c48abc75c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Raphael=20Elstr=C3=B6m?= Date: Wed, 8 Feb 2023 18:14:53 +0100 Subject: [PATCH 22/26] refactoring: Gewinner erkennen sauberer geschrieben --- vier_gewinnt/JS/gewinnErmitteln.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vier_gewinnt/JS/gewinnErmitteln.js b/vier_gewinnt/JS/gewinnErmitteln.js index 53e1959..c3133f4 100644 --- a/vier_gewinnt/JS/gewinnErmitteln.js +++ b/vier_gewinnt/JS/gewinnErmitteln.js @@ -1,6 +1,6 @@ function gewinnErmitteln(spalte,reihe) { if (vierInSpalte(steinInSpalte(spalte)) === 1 || vierInReihe(steinInReihe(reihe)) === 1 || vierDiagonalRechts(allSpaltenArrays()) === 1 || vierDiagonalLinks(allSpaltenArrays()) === 1) { - alert("Spieler 1 (Grün) hat gewonnen") + alert("Herzlichen Glückwunsch Spieler 1 (Grün) du hast gewonnen") }if (vierInSpalte(steinInSpalte(spalte)) === 2) { alert("Spieler 2 (Rot) hat gewonnen") }if (vierInReihe(steinInReihe(reihe)) === 2) { From b91454073822e5fa8e1aab7a666a73d0647273ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Raphael=20Elstr=C3=B6m?= Date: Wed, 8 Feb 2023 18:23:59 +0100 Subject: [PATCH 23/26] =?UTF-8?q?refactoring:=20Gewinner=20erkennen=20f?= =?UTF-8?q?=C3=BCr=20Spieler=202=20sauberer=20geschrieben?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vier_gewinnt/JS/gewinnErmitteln.js | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/vier_gewinnt/JS/gewinnErmitteln.js b/vier_gewinnt/JS/gewinnErmitteln.js index c3133f4..0a4446c 100644 --- a/vier_gewinnt/JS/gewinnErmitteln.js +++ b/vier_gewinnt/JS/gewinnErmitteln.js @@ -1,13 +1,7 @@ function gewinnErmitteln(spalte,reihe) { if (vierInSpalte(steinInSpalte(spalte)) === 1 || vierInReihe(steinInReihe(reihe)) === 1 || vierDiagonalRechts(allSpaltenArrays()) === 1 || vierDiagonalLinks(allSpaltenArrays()) === 1) { alert("Herzlichen Glückwunsch Spieler 1 (Grün) du hast gewonnen") - }if (vierInSpalte(steinInSpalte(spalte)) === 2) { - alert("Spieler 2 (Rot) hat gewonnen") - }if (vierInReihe(steinInReihe(reihe)) === 2) { - alert("Spieler 2 (Rot) hat gewonnen") - }if (vierDiagonalRechts(allSpaltenArrays()) === 2) { - alert("Spieler 2 (Rot) hat gewonnen") - }if (vierDiagonalLinks(allSpaltenArrays()) === 2) { + }if (vierInSpalte(steinInSpalte(spalte)) === 2 || vierInReihe(steinInReihe(reihe)) === 2 || vierDiagonalRechts(allSpaltenArrays()) === 2 || vierDiagonalLinks(allSpaltenArrays()) === 2){ alert("Spieler 2 (Rot) hat gewonnen") } From 5a5e53106bf6c06e8d31e5639b38b67846e34d79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Raphael=20Elstr=C3=B6m?= Date: Wed, 8 Feb 2023 19:00:01 +0100 Subject: [PATCH 24/26] Funktion zum Regeln anzeigen und verstecken erstellt --- vier_gewinnt/JS/regeln.js | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 vier_gewinnt/JS/regeln.js diff --git a/vier_gewinnt/JS/regeln.js b/vier_gewinnt/JS/regeln.js new file mode 100644 index 0000000..07540c0 --- /dev/null +++ b/vier_gewinnt/JS/regeln.js @@ -0,0 +1,8 @@ +function regelAnzeige() { + if (document.getElementById("regeln").innerHTML === '') { + document.getElementById("regeln").innerHTML = "Vier Gewinnt ist ein Spiel, indem Spieler abwechseld Steine in Felder legen, wer als erstes vier Steine nebeneinader, übereinander oder diagonal hat, hat gewonnen."; + }else { + document.getElementById("regeln").innerHTML = ""; + } + +} \ No newline at end of file From 1875eee1e1eb599f07cf8f1ccff9c520f943b723 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Raphael=20Elstr=C3=B6m?= Date: Wed, 8 Feb 2023 19:08:01 +0100 Subject: [PATCH 25/26] Funktion Regeln ein-/ausblenden & Button zur HTML hinzugefuegt --- vier_gewinnt/vierGewinnt.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/vier_gewinnt/vierGewinnt.html b/vier_gewinnt/vierGewinnt.html index c0c4fba..2d01e3f 100644 --- a/vier_gewinnt/vierGewinnt.html +++ b/vier_gewinnt/vierGewinnt.html @@ -16,11 +16,13 @@ + Vier Gewinnt

Vier Gewinnt

-

Vier Gewinnt ist ein Spiel, indem Spieler abwechseld Steine in Felder legen, wer als erstes vier Steine nebeneinader, übereinander oder diagonal hat, hat gewonnen.

+ +

Vier Gewinnt ist ein Spiel, indem Spieler abwechseld Steine in Felder legen, wer als erstes vier Steine nebeneinader, übereinander oder diagonal hat, hat gewonnen.

Spieler am Zug:

1

From bc01c7790a348c4511a37636cd4a384247377db5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Raphael=20Elstr=C3=B6m?= Date: Wed, 8 Feb 2023 19:21:36 +0100 Subject: [PATCH 26/26] Button waechselt Text: Regeln anzeigen/ausblenden --- vier_gewinnt/JS/regeln.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/vier_gewinnt/JS/regeln.js b/vier_gewinnt/JS/regeln.js index 07540c0..de165db 100644 --- a/vier_gewinnt/JS/regeln.js +++ b/vier_gewinnt/JS/regeln.js @@ -1,7 +1,9 @@ function regelAnzeige() { if (document.getElementById("regeln").innerHTML === '') { + document.getElementById("regelButton").innerHTML = "Regeln ausblenden"; document.getElementById("regeln").innerHTML = "Vier Gewinnt ist ein Spiel, indem Spieler abwechseld Steine in Felder legen, wer als erstes vier Steine nebeneinader, übereinander oder diagonal hat, hat gewonnen."; }else { + document.getElementById("regelButton").innerHTML = "Regeln anzeigen"; document.getElementById("regeln").innerHTML = ""; }