//Klasse Player für Spieler einer Uno Runde class Player { //Erstellt ein Spieler mit einem Namen und dem Spiel, in dem er teilnimmt constructor(name, 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 = []; //Deck des Spielers this._canPlay = false //Ob spieler gerade Karte legen kann } //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); } //Gibt den Namen eines Spielers zurück get name() { return this._name; } //Gibt zurück, ob der Spieler am Zug ist get turn(){ return this._turn; } //Gibt zurück, ob der Spieler eine Karte legen kann get canPlay(){ return this._canPlay; } //Gibt das SpielerDeck zurück get hand(){ return this._hand; } } //Exportiert Modul Player module.exports = Player;