-
Notifications
You must be signed in to change notification settings - Fork 0
/
deck_of_cards.html
73 lines (61 loc) · 1.34 KB
/
deck_of_cards.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Deck of Cards</title>
</head>
<body>
<script type="text/javascript">
class deck {
constructor() {
this.deck = [];
}
reset(){
this.deck = [];
const suits = ['Clubs','Hearts','Diamonds','Spades'];
const values = ['Ace',2,3,4,5,6,7,8,9,10,'Jack','Queen','King'];
for (const suit of suits){
for(const value of values){
this.deck.push(`${value} of ${suit}`);
}
}
return this;
}
shuffle(){
let m = this.deck.length, t, i;
while(m){
i = Math.floor(Math.random() * m--);
t = this.deck[m];
this.deck[m] = this.deck[i];
this.deck[i] = t;
}
return this;
}
deal(){
return this.deck.pop();
}
}
class Player {
constructor(name) {
this.name = name;
this.hand = [];
}
draw(deck) {
this.hand.push(deck.deal());
return this;
}
discard(){
this.hand.pop();
return this;
}
}
const deck2 = new deck();
deck2.reset().shuffle();
console.log(deck2);
const player2 = new Player ("Noel");
player2.draw(deck2).draw(deck2);
console.log(player2);
console.log(deck2);
</script>
</body>
</html>