@@ -24,6 +24,49 @@ Der Singleplayer funktioniert Server-seitig komplett stateless.
...
@@ -24,6 +24,49 @@ Der Singleplayer funktioniert Server-seitig komplett stateless.
Auswertung und GameLogik werden komplett vom Client übernommen, das Fetchen der Fragen funktioniert über SvelteKit Load Funktions, die anhand des Cookies die bereits benutzen Fragen aus Redis auslesen kann.
Auswertung und GameLogik werden komplett vom Client übernommen, das Fetchen der Fragen funktioniert über SvelteKit Load Funktions, die anhand des Cookies die bereits benutzen Fragen aus Redis auslesen kann.
Der Highscore wird im Browser mit Hilfe von Lokalstorage gespeichter.
Der Highscore wird im Browser mit Hilfe von Lokalstorage gespeichter.
## Multiplayer
Im Multiplayer wird für jedes Spiel ein
```mermaid
classDiagram
class Game{
String id
Map players
Enum status
Number roundTime
Number currentRoundTime
Array questions
Number round
Object activeQuestion
Array usedQuestionIDs
Number maxPlayers
Number maxPoints
Object socket
constructor Game(Object socket)
join(Object Player)
leave(String Player.ID)
startTimer(Enum status)
startGame()
fetchQuestions()
getNewQuestion()
roundOver()
checkAnswer(String answerID, String playerID)
gameOver()
}
class Player{
String id
String name
Number points
Boolean correctAnswer
Boolean ready
Boolean answer
Number deltaPoints
constructor(String name, String id)
resetAnswer()
}
```
# Technologien
# Technologien
## SvelteKit
## SvelteKit
> UI-Framework, das außerdem auch Routing und Data-Loading unterstützt.
> UI-Framework, das außerdem auch Routing und Data-Loading unterstützt.