Added room class

This commit is contained in:
Eunchong Kim 2021-07-17 11:58:18 +09:00
parent 7b82f26def
commit c1b8b8a86b
3 changed files with 62 additions and 26 deletions

View File

@ -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')

View File

@ -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);
}
}

50
src/js/room.js Normal file
View File

@ -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();
});
}
}