move card pile to own file
This commit is contained in:
		
							parent
							
								
									d4145a9797
								
							
						
					
					
						commit
						5e990df0d6
					
				
							
								
								
									
										39
									
								
								cardpile.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								cardpile.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,39 @@
 | 
				
			|||||||
 | 
					class CardPile {
 | 
				
			||||||
 | 
					  constructor() {
 | 
				
			||||||
 | 
					    this.cards = new Set();
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  add(cardName) {
 | 
				
			||||||
 | 
					    this.cards.add(cardName);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  has(cardName) {
 | 
				
			||||||
 | 
					    return this.cards.has(cardName);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  get size() {
 | 
				
			||||||
 | 
					    return this.cards.size;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  drawRandom() {
 | 
				
			||||||
 | 
					    const size = this.cards.size
 | 
				
			||||||
 | 
					    if (size === 0) {
 | 
				
			||||||
 | 
					      return null;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    const index = Math.floor(Math.random() * Math.floor(size));
 | 
				
			||||||
 | 
					    let i = 0;
 | 
				
			||||||
 | 
					    let cardName = "";
 | 
				
			||||||
 | 
					    for (let card of this.cards) {
 | 
				
			||||||
 | 
					      if (i === index) {
 | 
				
			||||||
 | 
					        cardName = card;
 | 
				
			||||||
 | 
					        break
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      i++;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    this.cards.delete(cardName);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return cardName;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default CardPile;
 | 
				
			||||||
							
								
								
									
										40
									
								
								tarot.js
									
									
									
									
									
								
							
							
						
						
									
										40
									
								
								tarot.js
									
									
									
									
									
								
							@ -1,6 +1,5 @@
 | 
				
			|||||||
import cardDB from './cards.js';
 | 
					import cardDB from './cards.js';
 | 
				
			||||||
 | 
					import CardPile from './cardpile.js';
 | 
				
			||||||
// TODO reset state button
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
class Tarot {
 | 
					class Tarot {
 | 
				
			||||||
  constructor() {
 | 
					  constructor() {
 | 
				
			||||||
@ -130,42 +129,5 @@ class Renderer {
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class CardPile {
 | 
					 | 
				
			||||||
  constructor() {
 | 
					 | 
				
			||||||
    this.cards = new Set();
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  add(cardName) {
 | 
					 | 
				
			||||||
    this.cards.add(cardName);
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  has(cardName) {
 | 
					 | 
				
			||||||
    return this.cards.has(cardName);
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  get size() {
 | 
					 | 
				
			||||||
    return this.cards.size;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  drawRandom() {
 | 
					 | 
				
			||||||
    const size = this.cards.size
 | 
					 | 
				
			||||||
    if (size === 0) {
 | 
					 | 
				
			||||||
      return null;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    const index = Math.floor(Math.random() * Math.floor(size));
 | 
					 | 
				
			||||||
    let i = 0;
 | 
					 | 
				
			||||||
    let cardName = "";
 | 
					 | 
				
			||||||
    for (let card of this.cards) {
 | 
					 | 
				
			||||||
      if (i === index) {
 | 
					 | 
				
			||||||
        cardName = card;
 | 
					 | 
				
			||||||
        break
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
      i++;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    this.cards.delete(cardName);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return cardName;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default Tarot;
 | 
					export default Tarot;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user