From 531c267ede04048d675538af539f3e56afe22939 Mon Sep 17 00:00:00 2001 From: Richard Halsall <–richard-glyn.halsall@informatik.hs-fulda.e> Date: Tue, 7 Feb 2023 13:11:01 +0100 Subject: [PATCH 01/22] =?UTF-8?q?alte=20DrawLine-Funktion=20gel=C3=B6scht?= =?UTF-8?q?=20und=20durch=20neue=20Canvas-Methode=20ersetzt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- schlangen_und_leitern/css/style.css | 11 ++++- schlangen_und_leitern/js/Bridge.js | 18 +++++-- schlangen_und_leitern/js/makeBoard.js | 67 +++++++++++++++++---------- 3 files changed, 67 insertions(+), 29 deletions(-) diff --git a/schlangen_und_leitern/css/style.css b/schlangen_und_leitern/css/style.css index 2a3c4eb..d62ab60 100644 --- a/schlangen_und_leitern/css/style.css +++ b/schlangen_und_leitern/css/style.css @@ -49,8 +49,8 @@ width: auto; } .th, td{ - width: 80px; - height: 80px; + width: 50px; + height: 50px; outline: 2px dashed black; } @@ -81,4 +81,11 @@ width: auto; border-radius: 50%; background-color: rgb(255, 221, 0); +} +#canvas{ +z-index: 2; +position: fixed; + + + } \ No newline at end of file diff --git a/schlangen_und_leitern/js/Bridge.js b/schlangen_und_leitern/js/Bridge.js index c97f558..4166766 100644 --- a/schlangen_und_leitern/js/Bridge.js +++ b/schlangen_und_leitern/js/Bridge.js @@ -23,7 +23,8 @@ function init(playerCount){ document.getElementById("rollButton").addEventListener("click", function(){gameloop(boardArr,playerArray, playerCount);}); playerInit(playerArray); - + drawCanavas() + drawLine() } function gameloop (boardArr, playerArray, playerCount){ @@ -37,15 +38,26 @@ function gameloop (boardArr, playerArray, playerCount){ //spieler newPosition mit roll Aktualisierung movePlayer(player, roll); //TODO checken ob die Spieler an eine leiter oder Schlange gelandet hat + + //TODO prüfen ob jemand gewonnen hat und wenn ja spiele beenden // weiter spielen + + //TODO checken ob die Spieler an eine leiter oder Schlange gelandet hat + + + //alter Stelle löschen eraseOLd(playerArray,turnCount); // setzen newPostion auf position um und neuPosition leeren resetNewOld(player); - //TODO spieler Stelle auf dem Brett zeichnen + //spieler Stelle auf dem Brett zeichnen drawNew(playerArray,turnCount); - //TODO alter Stelle löschen //TODO prüfen ob jemand gewonnen hat und wenn ja spiele beenden // weiter spielen + // bei gewinn, zwei optionen anbieten; spiel wieter oder beenden + //TODO verstekte new game taste der alles new setzt + //TODO falls spiel weiter, taste verstecken und gewohnen spieler ignorieren (schware) + + // Reihezähler inkrementieren bzw. zurücksetzen if(turnCount >= playerCount){ diff --git a/schlangen_und_leitern/js/makeBoard.js b/schlangen_und_leitern/js/makeBoard.js index e871dbf..41c12e7 100644 --- a/schlangen_und_leitern/js/makeBoard.js +++ b/schlangen_und_leitern/js/makeBoard.js @@ -57,6 +57,11 @@ function drawBoard(arr){ cell.innerHTML = (arr[y][x]); } } + // add drawing of snakes and ladders + + + + } //spielbrett objekt Struktur @@ -95,32 +100,42 @@ function generateBoardObjects (leitern, schlangen, objectArray){ objectArray.push(schlange); } } +//make a canvas the same size as the playbaord +function drawCanavas(){ + var ctx = document.getElementById("canvas"); + var board = document.getElementById("board"); + //get the tables measurements + tableMes = board.getBoundingClientRect() + + tableWidth = tableMes.width; + tableHight = tableMes.height; + console.log(tableHight, tableWidth) + //set canavas to table size + ctx.height = tableHight + ctx.width = tableHight + //divide canvas x and y by the number of rows // coloums + + //find center of each cell + +} + + + + //function that draws a line using x,y cooridinates of two points -function drawLine(type, count, ax,ay, bx, by){ - if(ay>by) - { - bx=ax+bx; - ax=bx-ax; - bx=bx-ax; - by=ay+by; - ay=by-ay; - by=by-ay; - } - var calc=Math.atan((ay-by)/(bx-ax)); - calc=calc*180/Math.PI; - var length=Math.sqrt((ax-bx)*(ax-bx)+(ay-by)*(ay-by)); - console.log(length) - - - let newLine = document.createElement("div") - newLine.id = type + count; - - let style = "height:" + length + "px;width:5px;background-color:black;position:absolute;top:" + (ay) + "px;left:" + (ax) + "px;transform:rotate(" + calc + "deg);-ms-transform:rotate(" + calc + "deg);transform-origin:0% 0%;-moz-transform:rotate(" + calc + "deg);-moz-transform-origin:0% 0%;-webkit-transform:rotate(" + calc + "deg);-webkit-transform-origin:0% 0%;-o-transform:rotate(" + calc + "deg);-o-transform-origin:0% 0%;" - - newLine.style.cssText = style; - document.getElementById("board").appendChild(newLine); - } +function drawLine(startPosX, startPosY, endPosX, endPoseY){ + + var c = document.getElementById("canvas"); + var ctx = c.getContext("2d"); + ctx.beginPath(); + ctx.moveTo(0, 0); + ctx.lineTo(537, 537); + ctx.stroke(); + ctx.strokeStyle; + +} +function boardObjects(){ @@ -128,6 +143,10 @@ function drawLine(type, count, ax,ay, bx, by){ +} + + + From 67c7e71c8d43c9179451c53d0e72f869aed30225 Mon Sep 17 00:00:00 2001 From: Richard Halsall <–richard-glyn.halsall@informatik.hs-fulda.e> Date: Tue, 7 Feb 2023 14:27:32 +0100 Subject: [PATCH 02/22] =?UTF-8?q?Funktion=20zur=20Erstellung=20von=20Koord?= =?UTF-8?q?inaten=20auf=20der=20Canvas=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- schlangen_und_leitern/HTML.html | 1 + schlangen_und_leitern/js/Bridge.js | 9 ++++-- schlangen_und_leitern/js/makeBoard.js | 40 ++++++++++++++++++++++++--- 3 files changed, 44 insertions(+), 6 deletions(-) diff --git a/schlangen_und_leitern/HTML.html b/schlangen_und_leitern/HTML.html index 88d001f..b6f01fb 100644 --- a/schlangen_und_leitern/HTML.html +++ b/schlangen_und_leitern/HTML.html @@ -27,6 +27,7 @@
+
-
- +
+
+
- +
+

Spieler 1 ist dran

+
diff --git a/schlangen_und_leitern/css/style.css b/schlangen_und_leitern/css/style.css index d62ab60..8592a3e 100644 --- a/schlangen_und_leitern/css/style.css +++ b/schlangen_und_leitern/css/style.css @@ -51,7 +51,7 @@ width: auto; .th, td{ width: 50px; height: 50px; - outline: 2px dashed black; + outline: 2px solid black; } @@ -85,6 +85,25 @@ width: auto; #canvas{ z-index: 2; position: fixed; +} + +#leftSide{ + + width: 557px; + height: 537px; + float: left; +} +#rightSide{ + + margin-left: 537px; + height: 537px; +} + +#isUp{ + + text-align: center; + font-size: 60px; + display: none; diff --git a/schlangen_und_leitern/js/Bridge.js b/schlangen_und_leitern/js/Bridge.js index a83b074..9fc20b7 100644 --- a/schlangen_und_leitern/js/Bridge.js +++ b/schlangen_und_leitern/js/Bridge.js @@ -6,6 +6,7 @@ function init(playerCount){ document.getElementById("2Player").style.display = "none"; document.getElementById("3Player").style.display = "none"; document.getElementById("4Player").style.display = "none"; + document.getElementById("isUp").style.display = "block"; // Wufelbereich zeigen. document.getElementById("würfelBereich").style.display = "grid"; @@ -31,6 +32,7 @@ function init(playerCount){ drawCanavas(); canvasPointGen(canvasPointArr); createBoardObjects(canvasPointArr, objectArr) + @@ -39,7 +41,7 @@ function init(playerCount){ function gameloop (boardArr, playerArray, playerCount){ console.log("player " + turnCount + " ist dran"); - + //würfle function aufrufen let roll = rollDice(); @@ -76,5 +78,7 @@ function gameloop (boardArr, playerArray, playerCount){ else { turnCount ++ } + //show who is up + turnIndicater(turnCount); } \ No newline at end of file diff --git a/schlangen_und_leitern/js/playerHandling.js b/schlangen_und_leitern/js/playerHandling.js index 947a317..efc3ec0 100644 --- a/schlangen_und_leitern/js/playerHandling.js +++ b/schlangen_und_leitern/js/playerHandling.js @@ -72,10 +72,10 @@ function movePlayer(player, roll){ } - } +} - //Stele Zeichnen +//Stele Zeichnen function drawNew(playerArray, turnCount){ // wo muss es hin var player = playerArray[turnCount-1]; @@ -131,7 +131,7 @@ function movePlayer(player, roll){ } } - //TODO zeichen für jede Spieler + @@ -166,4 +166,46 @@ function movePlayer(player, roll){ console.log("Error: Zellenummer " + tableId + " nicht gefunden"); //Druckt Errror auf dem console wenn unerfolgereich } } - + + + + +function turnIndicater(turnCount){ + + let isUp =document.getElementById("isUp") + + switch (turnCount) { + case 1: + isUp.innerHTML = "Spieler 1 ist dran" + break; + + case 2: + isUp.innerHTML = "Spieler 2 ist dran" + break; + case 3: + isUp.innerHTML = "Spieler 3 ist dran" + break; + + case 4: + isUp.innerHTML = "Spieler 4 ist dran" + break; + + default: + break; + } + + + +} + + +function checkWin(player){ + + if(player.position == 100){ + } +} + + + + + From 065d257bcf78c64370a7ab06a8002bbf8606d99a Mon Sep 17 00:00:00 2001 From: Richard Halsall <–richard-glyn.halsall@informatik.hs-fulda.e> Date: Wed, 8 Feb 2023 15:36:13 +0100 Subject: [PATCH 05/22] =?UTF-8?q?eine=20Funktion=20erstellt,=20die=20pr?= =?UTF-8?q?=C3=BCft,=20ob=20ein=20Spieler=20auf=20einer=20Schlange=20oder?= =?UTF-8?q?=20Leiter=20steht=20und=20ob=20er=20gewonnen=20hat?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- schlangen_und_leitern/HTML.html | 4 +- schlangen_und_leitern/js/Bridge.js | 76 ++++++++++++---------- schlangen_und_leitern/js/makeBoard.js | 38 +++++++++-- schlangen_und_leitern/js/playerHandling.js | 30 +++++++-- 4 files changed, 101 insertions(+), 47 deletions(-) diff --git a/schlangen_und_leitern/HTML.html b/schlangen_und_leitern/HTML.html index ee5dd4b..2fc2f93 100644 --- a/schlangen_und_leitern/HTML.html +++ b/schlangen_und_leitern/HTML.html @@ -9,7 +9,6 @@ - Document @@ -33,6 +32,9 @@

Spieler 1 ist dran

+ + +

Spieler 1 ist dran

- - + +