You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

57 lines
1.3 KiB

  1. //Klasse Player für Spieler einer Uno Runde
  2. class Player {
  3. //Erstellt ein Spieler mit einem Namen
  4. constructor(name, gameInstanz) {
  5. this._game = gameInstanz;
  6. this._name = name; //Name des Spielers
  7. this._turn = false; //Ob Spieler gerade am Zug
  8. this._hand = [];
  9. this._canPlay = false //Ob spieler gerade Karte legen kann
  10. }
  11. drawCard(cards){
  12. for (let i = 0; i < cards; i++){
  13. this._hand.push(this._game.cardPool[0]);
  14. this._game.cardPool.splice(0, 1);
  15. }
  16. }
  17. putCard(index){
  18. if(!this._hand[index].canPut) return;
  19. if(this._game.cardOnDeck != null){
  20. this._game.cardPool.push(this._game.cardOnDeck);
  21. }
  22. this._game.cardOnDeck = this._hand[index];
  23. this._hand.splice(index, 1);
  24. this._game.nextTurn();
  25. }
  26. //Gibt den Namen eines Spielers zurück
  27. get name() {
  28. return this._name;
  29. }
  30. //Gibt zurück, ob der Spieler am Zug ist
  31. get turn(){
  32. return this._turn;
  33. }
  34. //Gibt zurück, ob der Spieler eine Karte legen kann
  35. get canPlay(){
  36. return this._canPlay;
  37. }
  38. //Gibt das SpielerDeck zurück
  39. get hand(){
  40. return this._hand;
  41. }
  42. }
  43. //Exportiert Modul Player
  44. module.exports = Player;