diff --git a/src_folder/FrontEnd/app/public/12oder3-logo.png b/src_folder/FrontEnd/app/public/12oder3-logo.png index 243e7e1..8a5dbe1 100644 Binary files a/src_folder/FrontEnd/app/public/12oder3-logo.png and b/src_folder/FrontEnd/app/public/12oder3-logo.png differ diff --git a/src_folder/FrontEnd/app/src/App.css b/src_folder/FrontEnd/app/src/App.css index 8c2d057..77fc1ea 100644 --- a/src_folder/FrontEnd/app/src/App.css +++ b/src_folder/FrontEnd/app/src/App.css @@ -19,7 +19,7 @@ height: 200px; border-radius: 20px; background: linear-gradient(white, white) padding-box, - linear-gradient(to right, #a10012 0%, #fba51b 50%, #3b5da4 100%) border-box; + linear-gradient(to right, #a10012 0%, #72FF50 50%, #3b5da4 100%) border-box; border-style: solid; border-width: 5px; border-color: transparent; @@ -33,7 +33,7 @@ margin-top: -15px; border-radius: 5px; background: linear-gradient(white, white) padding-box, - linear-gradient(to right, #a10012 0%, #fba51b 50%, #3b5da4 100%) border-box; + linear-gradient(to right, #a10012 0%, #72FF50 50%, #3b5da4 100%) border-box; border-style: solid; border-width: 2px; box-shadow: 1px 1px black; @@ -59,7 +59,7 @@ padding: 10px; box-shadow: 5px 5px black; background: linear-gradient(white, white) padding-box, - linear-gradient(to right, #a10012 0%, #fba51b 50%, #3b5da4 100%) border-box; + linear-gradient(to right, #a10012 0%, #72FF50 50%, #3b5da4 100%) border-box; border-style: solid; border-width: 5px; border-radius: 20px; @@ -68,7 +68,7 @@ .TimerDiv { background: linear-gradient(white, white) padding-box, - linear-gradient(to right, #a10012 0%, #fba51b 50%, #3b5da4 100%) border-box; + linear-gradient(to right, #a10012 0%, #72FF50 50%, #3b5da4 100%) border-box; border-style: solid; border-width: 5px; border-radius: 20px; @@ -117,7 +117,7 @@ height: auto; padding: 10px ; background: linear-gradient(white, white) padding-box, - linear-gradient(to right, #a10012 0%, #fba51b 50%, #3b5da4 100%) border-box; + linear-gradient(to right, #a10012 0%, #72FF50 50%, #3b5da4 100%) border-box; border-style: solid; border-width: 5px; border-radius: 20px; @@ -138,10 +138,11 @@ max-width: 600px;; height: 300px; margin-left: 110px; - - + } +.Answer { +} .AnswerBox { margin-left: 6px; position: relative; @@ -151,7 +152,7 @@ border: solid 2px; border-radius: 20px; box-shadow: 5px 5px black; - background-color: white;; + background-color: white; } @@ -160,7 +161,7 @@ } #secondans { - border: solid 5px #fba51b; + border: solid 5px #72FF50; } #thirdans { @@ -219,7 +220,7 @@ height: 300px; margin-left: 50px; background: linear-gradient(white, white) padding-box, - linear-gradient(to right, #a10012 0%, #fba51b 50%, #3b5da4 100%) border-box; + linear-gradient(to right, #a10012 0%, #72FF50 50%, #3b5da4 100%) border-box; border-style: solid; border-width: 5px; border-radius: 20px; @@ -229,14 +230,14 @@ } #StartButton { - background-color: #4CAF50; + background-color: #ff863d; } #QuitButton { background-color: red; } -.MyButton:hover { - background-color: #3E8E41; /* darker shade of green */ +#StartButton:hover { + background-color: #ae572e; /* darker shade of green */ } diff --git a/src_folder/FrontEnd/app/src/App.js b/src_folder/FrontEnd/app/src/App.js index 170e283..dd21dbb 100644 --- a/src_folder/FrontEnd/app/src/App.js +++ b/src_folder/FrontEnd/app/src/App.js @@ -2,14 +2,31 @@ import { useEffect, useState} from "react"; import './App.css'; import Header from "./components/Header"; import Body from "./components/Body"; -import question from "./components/Question"; +import {getQuestion, getScoreboard, getReset} from "./components/api"; function App() { const [timeLeft, setTimeLeft] = useState(10*1000); + const [question, setQuestion] = useState('?') + const [ans1, setAns1] = useState('?') + const [ans2, setAns2] = useState('?') + const [ans3, setAns3] = useState('?') + const [correctans, setCorrectAns] = useState() + const [correctfield, setCorrectField] = useState() + const [scoreblue, setScoreBlue] = useState() + const [scoregreen, setScoreGreen] = useState() + const [scorered, setScoreRed] = useState() + + const [timerRunning, setTimerRunning] = useState(false); const [questionCount, setQuestionCount] = useState(0); const [teamsize, setTeamSize] = useState(0); + useEffect(() => { + // This function will be executed when the component is loaded + getReset(setAns1, setAns2, setAns3, setQuestion); + getScoreboard(setScoreBlue, setScoreGreen, setScoreRed); + }, []); + useEffect(() => { let timer; if (timerRunning && timeLeft > 0) { @@ -18,6 +35,8 @@ function App() { }, 10);} else if (timeLeft === 0) { alert("Zeit ist um !"); + showcorrect(); + getScoreboard(setScoreBlue, setScoreGreen, setScoreRed); setTimerRunning(false); setTimeLeft(10); } @@ -30,14 +49,20 @@ function App() { return `${seconds} s`; } + const showcorrect = () => { + alert("Richtiges Feld: " + correctfield + "\nRichtige Antwort: " + correctans) + } + const startQuestion = () => { if (questionCount <= 5){ setQuestionCount(questionCount+1) + getQuestion(setAns1, setAns2, setAns3, setQuestion, setCorrectField, setCorrectAns).then(r => console.log(r)) setTimeLeft(10*1000); setTimerRunning(true); } else { alert("Spiel vorbei !"); + getReset(setAns1, setAns2, setAns3, setQuestion); } } @@ -47,8 +72,14 @@ function App() { } return (<> -
- +
+ ); } diff --git a/src_folder/FrontEnd/app/src/components/Answers.js b/src_folder/FrontEnd/app/src/components/Answers.js index 5fce13f..f4f4ed9 100644 --- a/src_folder/FrontEnd/app/src/components/Answers.js +++ b/src_folder/FrontEnd/app/src/components/Answers.js @@ -1,11 +1,17 @@ import React from "react"; -function Answers() { +function Answers({ans1, ans2, ans3}) { return(
-
Jemand anderen doppelt ...
-
Ronaldo >>> Messi
-
I got right foot ...
+
+
{ans1}
+
+
+
{ans2}
+
+
+
{ans3}
+
) } diff --git a/src_folder/FrontEnd/app/src/components/Body.js b/src_folder/FrontEnd/app/src/components/Body.js index cca7c7f..b044bfc 100644 --- a/src_folder/FrontEnd/app/src/components/Body.js +++ b/src_folder/FrontEnd/app/src/components/Body.js @@ -2,12 +2,16 @@ import React from "react"; import Buttons from "./Buttons"; import Answers from "./Answers"; import ScoreBoard from "./ScoreBoard"; -function Body({startQuestion, timerRunning, stopTimer, setQuestionCount, setTeamSize, teamsize}) { +function Body({startQuestion, timerRunning, stopTimer, setQuestionCount, setTeamSize, teamsize, ans1, ans2, ans3, scoreblue, + scoregreen, scorered, setScoreBlue, setScoreGreen, setScoreRed, + setAns1, setAns2, setAns3, setQuestion}) { return(
- - - + + +
) } diff --git a/src_folder/FrontEnd/app/src/components/Buttons.js b/src_folder/FrontEnd/app/src/components/Buttons.js index fbe9554..b5700dc 100644 --- a/src_folder/FrontEnd/app/src/components/Buttons.js +++ b/src_folder/FrontEnd/app/src/components/Buttons.js @@ -2,8 +2,10 @@ import React, {useState} from "react"; import StartButton from "./StartButton"; import QuitButton from "./QuitButton"; import TeamSizePopUp from "./TeamsizePopUp"; +import {getReset, getScoreboard} from "./api"; -function Buttons({startQuestion, timerRunning, stopTimer, setQuestionCount, setTeamSize}) { +function Buttons({startQuestion, timerRunning, stopTimer, setQuestionCount, setTeamSize, setScoreBlue, setScoreGreen, setScoreRed, + setAns1, setAns2, setAns3, setQuestion}) { const [gameStarted, setGameStarted] = useState(false) const [openPopUp, setOpenPopUp] = useState(false) const [quitvisible, setQuitvisible] = useState(false) @@ -26,6 +28,9 @@ function Buttons({startQuestion, timerRunning, stopTimer, setQuestionCount, setT changeGame(false); stopTimer(); setQuestionCount(0); + getReset(setAns1, setAns2, setAns3, setQuestion); + alert("Spiel abgebrochen !"); + getScoreboard(setScoreBlue, setScoreGreen, setScoreRed); } diff --git a/src_folder/FrontEnd/app/src/components/Header.js b/src_folder/FrontEnd/app/src/components/Header.js index 9cd37a5..7711538 100644 --- a/src_folder/FrontEnd/app/src/components/Header.js +++ b/src_folder/FrontEnd/app/src/components/Header.js @@ -2,11 +2,11 @@ import React from "react"; import Heading from "./Heading"; import Timer from "./Timer"; import Question from "./Question"; -function Header({timerRunning, timerContent, questionCount}) { +function Header({timerRunning, timerContent, questionCount, question}) { return(
- +
) diff --git a/src_folder/FrontEnd/app/src/components/Question.js b/src_folder/FrontEnd/app/src/components/Question.js index 104b856..3a6beae 100644 --- a/src_folder/FrontEnd/app/src/components/Question.js +++ b/src_folder/FrontEnd/app/src/components/Question.js @@ -1,13 +1,13 @@ import React from "react"; -function Question({questionCount}) { +function Question({questionCount, question}) { return(

{questionCount ? questionCount + ".Frage" : "Fragen"}

-

Warum ist Kerem so schrott ?

+

{question}

) diff --git a/src_folder/FrontEnd/app/src/components/ScoreBoard.js b/src_folder/FrontEnd/app/src/components/ScoreBoard.js index 95f5dbb..066501e 100644 --- a/src_folder/FrontEnd/app/src/components/ScoreBoard.js +++ b/src_folder/FrontEnd/app/src/components/ScoreBoard.js @@ -1,6 +1,6 @@ import React from "react"; -function ScoreBoard({teamsize}) { +function ScoreBoard({teamsize, scoreblue, scoregreen, scorered}) { return(
@@ -16,15 +16,15 @@ function ScoreBoard({teamsize}) { Red - 0 + {scorered} - Yellow - 0 + Green + {scoregreen} Blue - 0 + {scoreblue} diff --git a/src_folder/FrontEnd/app/src/components/TeamsizePopUp.js b/src_folder/FrontEnd/app/src/components/TeamsizePopUp.js index b4c3816..7495b15 100644 --- a/src_folder/FrontEnd/app/src/components/TeamsizePopUp.js +++ b/src_folder/FrontEnd/app/src/components/TeamsizePopUp.js @@ -15,19 +15,20 @@ function TeamSizePopUp({closeModal, changeGameState, startQuestion, setTeamSize} } const TeamSizeButtonClicked = () => { - if(inputValue <= 2 && inputValue > 0){ - /* - postTeamsize({ - "Teamsize": inputValue - }).then(data => console.log("Received answer" + data)) - */ - setTeamSize(inputValue) + if(inputValue <= 3 && inputValue > 0){ + try { + console.log(typeof inputValue) + postTeamsize(inputValue).then(r => { if (r.ok) {console.log("OK")} }); + setTeamSize(inputValue); changeGameState(true); closePopUp(); startQuestion(); + } catch (error) { + console.error(error) + } } else { - alert("Bitte Zahl zwischen 1 und 2 eingeben ! ") + alert("Bitte Zahl zwischen 1 und 3 eingeben ! ") } } @@ -40,7 +41,7 @@ function TeamSizePopUp({closeModal, changeGameState, startQuestion, setTeamSize}

Bitte Teamgröße wählen

-
diff --git a/src_folder/FrontEnd/app/src/components/api.js b/src_folder/FrontEnd/app/src/components/api.js index 7b4030e..07c1a4f 100644 --- a/src_folder/FrontEnd/app/src/components/api.js +++ b/src_folder/FrontEnd/app/src/components/api.js @@ -1,31 +1,53 @@ -import {createContext} from "react"; export function postTeamsize(data) { - return fetch("URL:PORT/TEAMSIZE",{ - methods: 'POST', + const requestOptions = { + method: 'POST', headers: { - "Content-Type": "application/json" - }, - body: JSON.stringify(data) - }) - .then(response => response.json()) + 'Accept': 'application/json', + 'Content-Type': 'application/json'}, + body: JSON.stringify({ teamsize: data}) + } + return fetch("http://192.168.0.94:5555/teamsize", requestOptions) + } export function getConnection() { - + return 0 } -export function getQuestionandPrint() { - +export function getQuestion(setAns1, setAns2, setAns3, setQuestion, setCorrectField, setCorrectAnsw) { + return fetch("http://192.168.0.94:5555/question") + .then(response => response.json()) + .then(data => { + setQuestion(data.QuestionNr) + setAns1(data.Answeroption_1) + setAns2(data.Answeroption_2) + setAns3(data.Answeroption_3) + setCorrectField(data.Correct_field) + setCorrectAnsw(data.Correct_answeroption) + console.log(data) + }) + .catch(error => console.error(error)); } -export function getScoreboard() { - +export function getScoreboard(setScoreBlue, setScoreGreen, setScoreRed) { + return fetch("http://192.168.0.94:5555/scoreboard") + .then(response => response.json()) + .then(data => { + setScoreBlue(data.score_blue) + setScoreRed(data.score_red) + setScoreGreen(data.score_green) + }) + .catch(error => console.error(error)) } export function getCheck() { } -export function getReset() { - +export function getReset(setAns1, setAns2, setAns3, setQuestion) { + setAns1('?'); + setAns2('?'); + setAns3('?'); + setQuestion('?'); + return fetch("http://192.168.0.94:5555/reset") } \ No newline at end of file