diff --git a/src/index.js b/src/index.js index 83dbdbf..a04e4e4 100644 --- a/src/index.js +++ b/src/index.js @@ -3,10 +3,7 @@ console.log('Uno Start') import './css/uno-game.css'; import Card from './js/card.js'; import Player from './js/player.js'; - -let card = new Card(1, 'green'); - -console.log(card.num) +import Room from './js/room.js'; document.addEventListener('DOMContentLoaded', () => { const div = document.getElementById('uno-game'); @@ -14,19 +11,10 @@ document.addEventListener('DOMContentLoaded', () => { }); -const _all_colors = ['red', 'yellow', 'green', 'blue']; -function generateCards() { - let cards = []; - for (let i=0; i<7; i++) { - cards.push({ - num: Math.floor( Math.random() * 14 ), - color: _all_colors[ Math.floor( Math.random() * 4 ) ], - }); - } - const player = new Player(cards); - player.printCards(); - -} -generateCards() +const room = new Room(); +room.addPlayer('newini'); +room.printPlayers(); +room.initCards(); +room.shuffleDeck(); console.log('Uno End') diff --git a/src/js/player.js b/src/js/player.js index c730e7a..98a66c9 100644 --- a/src/js/player.js +++ b/src/js/player.js @@ -1,16 +1,14 @@ import Card from './card.js'; export default class Player { - constructor(cards) { - this._n = cards.length; + constructor(name) { + this._name = name; this._cards = []; - cards.forEach( (card) => { - this._cards.push( new Card( card['num'], card['color'] ) ); - }); + } + addCard(card) { + this._cards.push(card); } printCards() { - this._cards.forEach( (card) => { - console.log(card.num) - }); + console.log(this._cards); } } diff --git a/src/js/room.js b/src/js/room.js new file mode 100644 index 0000000..768debc --- /dev/null +++ b/src/js/room.js @@ -0,0 +1,50 @@ +import Player from './player.js'; +import Card from './card.js'; + +export default class Room { + constructor(id) { + this._id = (typeof id === 'number') ? id : 0; + this._n_players = 0; + this._players = []; + this._cards = []; + this.ALL_COLORS = ['red', 'yellow', 'green', 'blue']; + } + addPlayer(player_name) { + const player = new Player(player_name); + this._players.push(player); + } + printPlayers() { + console.log(this._players); + } + initCards() { + this.ALL_COLORS.forEach( (color) => { + for (let num=0; num<=12; num++) { + const card = new Card(num, color); + this._cards.push( card ); + } + }); + this.ALL_COLORS.forEach( (color) => { + for (let num=1; num<=12; num++) { + const card = new Card(num, color); + this._cards.push( card ); + } + }); + for (let i=0; i<4; i++) { + for (let num=13; num<=14; num++) { + const card = new Card(num, 'none'); + this._cards.push( card ); + } + } + console.log( this._cards ); + } + shuffleDeck() { + this._players.forEach( (player) => { + for (let i=0; i<7; i++) { + let j = Math.floor( Math.random() * this._cards.length ); + const card = this._cards.splice(j, 1); + player.addCard(card); + } + player.printCards(); + }); + } +}