Browse Source

refactoring: Codeformatierung und Kommentierung

- Card.js
- Game.js
- Player.js
main
Nicolas Fritz 2 years ago
parent
commit
d3444b3024
  1. 33
      uno/node/js/Game.js
  2. 26
      uno/node/js/Player.js
  3. 1
      uno/node/js/cards/Card.js

33
uno/node/js/Game.js

@ -13,24 +13,32 @@ class Game {
//Erstellt ein Spiel mit SpielerAnzahl und Array mit Regeln, initialisiert dann das Spiel
constructor(playerAmount, rules) {
this._cardOnDeck = null;
this._currentPlayer = 0;
this._direction = 0;
this._players = [];
this._cardPool = []
this._cardOnDeck = null; //Karte die auf dem Tisch liegt
this._currentPlayer = 0; //Aktueller Spieler Index im Player Array
this._direction = 0; //Spielrichtung
this._players = []; //Array mit allen Spielern drin
this._cardPool = [] //Pool aus Karten
this._playerAmount = playerAmount;
this._rules = rules;
this._playerAmount = playerAmount; //Anzahl der Spieler
this._rules = rules; //Array mit Regeln für das Spiel
//Spiel einrichten
this.initGame();
}
//Richtet das Spiel ein
initGame(){
//CardPool wird generiert
this._cardPool = this.generatePool();
//Spieler werden erstellt
this.createPlayers(this._playerAmount);
//Die Erste Karte wird auf den Tisch gelegt
this._cardOnDeck = this._cardPool[0];
this._cardPool.splice(0,1);
}
//Gibt ein Array zurück mit allen Karten, die in einem Uno Spiel sind
@ -68,18 +76,24 @@ class Game {
}
pool.sort(()=> Math.random() - 0.5); //mischen
//Mischt das Array
pool.sort(()=> Math.random() - 0.5);
//Array mit Karten wird zurückgegeben
return pool;
}
//Fügt die Spieler hinzu
createPlayers(playerAmount){
//Erstelle so viele Spieler, wie bei Erstellung des Spiels übergeben wurden
for (let i = 0; i < playerAmount; i++){
this._players.push(new Player("Player" + (i + 1), this));
}
}
//Beendet den Zug des aktuellen Spielers und beginnt den Zug des nächsten Spielers
nextTurn(){
}
@ -88,14 +102,17 @@ class Game {
return this._cardPool;
}
//Gibt das Array mit allen Spielern des Spiels zurück
get players(){
return this._players;
}
//Gibt die aktuelle Karte auf dem Tisch zurück
get cardOnDeck(){
return this._cardOnDeck;
}
//Setzt die aktuelle Karte auf dem Tisch
set cardOnDeck(card){
this._cardOnDeck = card;
}

26
uno/node/js/Player.js

@ -1,35 +1,49 @@
//Klasse Player für Spieler einer Uno Runde
class Player {
//Erstellt ein Spieler mit einem Namen
//Erstellt ein Spieler mit einem Namen und dem Spiel, in dem er teilnimmt
constructor(name, gameInstanz) {
this._game = gameInstanz;
this._game = gameInstanz; //Spiel, worin der Spieler ist
this._name = name; //Name des Spielers
this._turn = false; //Ob Spieler gerade am Zug
this._hand = [];
this._hand = []; //Deck des Spielers
this._canPlay = false //Ob spieler gerade Karte legen kann
}
drawCard(cards){
for (let i = 0; i < cards; i++){
//Lässt den Spieler eine Anzahl "amount" an Karten ziehen
drawCard(amount){
//Ziehe so viele Karten, wie amount übergeben wurde
for (let i = 0; i < amount; i++){
//Füge die erste Karte aus cardPool der Hand des Spielers hinzu
this._hand.push(this._game.cardPool[0]);
//Lösche die erste Karte aus cardPool
this._game.cardPool.splice(0, 1);
}
}
//Lässt den Spieler eine Karte in seiner Hand legen
//Parameter: Index vom Deck des Spielers, wo die Karte liegt
putCard(index){
//Karte muss hinterlegt haben, dass sie gelegt werden kann
if(!this._hand[index].canPut) return;
//Wenn eine Karte auf dem Tisch liegt, soll diese erst wieder dem cardPool hinzugefügt werden
if(this._game.cardOnDeck != null){
this._game.cardPool.push(this._game.cardOnDeck);
}
//Karte in der Hand wird auf den Tisch gelegt
this._game.cardOnDeck = this._hand[index];
//Karte wird aus dem Deck des Spielers entfernt
this._hand.splice(index, 1);
this._game.nextTurn();
}
//Gibt den Namen eines Spielers zurück

1
uno/node/js/cards/Card.js

@ -32,6 +32,7 @@ class Card {
return this._onScreen;
}
//Setzt, ob die Karte gelegt werden kann, oder nicht
set canPut(bool){
this._canPut = bool;
}

Loading…
Cancel
Save