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 //Erstellt ein Spiel mit SpielerAnzahl und Array mit Regeln, initialisiert dann das Spiel
constructor(playerAmount, rules) { 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(); this.initGame();
} }
//Richtet das Spiel ein
initGame(){ initGame(){
//CardPool wird generiert
this._cardPool = this.generatePool(); this._cardPool = this.generatePool();
//Spieler werden erstellt
this.createPlayers(this._playerAmount); this.createPlayers(this._playerAmount);
//Die Erste Karte wird auf den Tisch gelegt
this._cardOnDeck = this._cardPool[0]; this._cardOnDeck = this._cardPool[0];
this._cardPool.splice(0,1); this._cardPool.splice(0,1);
} }
//Gibt ein Array zurück mit allen Karten, die in einem Uno Spiel sind //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 //Array mit Karten wird zurückgegeben
return pool; return pool;
} }
//Fügt die Spieler hinzu
createPlayers(playerAmount){ createPlayers(playerAmount){
//Erstelle so viele Spieler, wie bei Erstellung des Spiels übergeben wurden
for (let i = 0; i < playerAmount; i++){ for (let i = 0; i < playerAmount; i++){
this._players.push(new Player("Player" + (i + 1), this)); this._players.push(new Player("Player" + (i + 1), this));
} }
} }
//Beendet den Zug des aktuellen Spielers und beginnt den Zug des nächsten Spielers
nextTurn(){ nextTurn(){
} }
@ -88,14 +102,17 @@ class Game {
return this._cardPool; return this._cardPool;
} }
//Gibt das Array mit allen Spielern des Spiels zurück
get players(){ get players(){
return this._players; return this._players;
} }
//Gibt die aktuelle Karte auf dem Tisch zurück
get cardOnDeck(){ get cardOnDeck(){
return this._cardOnDeck; return this._cardOnDeck;
} }
//Setzt die aktuelle Karte auf dem Tisch
set cardOnDeck(card){ set cardOnDeck(card){
this._cardOnDeck = card; this._cardOnDeck = card;
} }

26
uno/node/js/Player.js

@ -1,35 +1,49 @@
//Klasse Player für Spieler einer Uno Runde //Klasse Player für Spieler einer Uno Runde
class Player { class Player {
//Erstellt ein Spieler mit einem Namen
//Erstellt ein Spieler mit einem Namen und dem Spiel, in dem er teilnimmt
constructor(name, gameInstanz) { constructor(name, gameInstanz) {
this._game = gameInstanz;
this._game = gameInstanz; //Spiel, worin der Spieler ist
this._name = name; //Name des Spielers this._name = name; //Name des Spielers
this._turn = false; //Ob Spieler gerade am Zug this._turn = false; //Ob Spieler gerade am Zug
this._hand = [];
this._hand = []; //Deck des Spielers
this._canPlay = false //Ob spieler gerade Karte legen kann 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]); this._hand.push(this._game.cardPool[0]);
//Lösche die erste Karte aus cardPool
this._game.cardPool.splice(0, 1); 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){ putCard(index){
//Karte muss hinterlegt haben, dass sie gelegt werden kann
if(!this._hand[index].canPut) return; 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){ if(this._game.cardOnDeck != null){
this._game.cardPool.push(this._game.cardOnDeck); this._game.cardPool.push(this._game.cardOnDeck);
} }
//Karte in der Hand wird auf den Tisch gelegt
this._game.cardOnDeck = this._hand[index]; this._game.cardOnDeck = this._hand[index];
//Karte wird aus dem Deck des Spielers entfernt
this._hand.splice(index, 1); this._hand.splice(index, 1);
this._game.nextTurn();
} }
//Gibt den Namen eines Spielers zurück //Gibt den Namen eines Spielers zurück

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

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

Loading…
Cancel
Save