Package com.google.gwt.gin.higherlower.client.gin

Source Code of com.google.gwt.gin.higherlower.client.gin.DeckProvider

package com.google.gwt.gin.higherlower.client.gin;

import com.google.gwt.gin.higherlower.client.DeckOfCardsImageBundle;
import com.google.gwt.gin.higherlower.client.Shuffler;
import com.google.gwt.gin.higherlower.client.model.Card;
import com.google.gwt.gin.higherlower.client.model.Deck;
import com.google.gwt.gin.higherlower.client.model.Rank;
import com.google.gwt.gin.higherlower.client.model.Suit;
import com.google.inject.Inject;
import com.google.inject.Provider;

import java.util.LinkedList;

/**
* Provides a deck of playing cards.
*/
public class DeckProvider implements Provider<Deck> {
  private final DeckOfCardsImageBundle deckImages;
  private final Shuffler shuffler;

  @Inject // Image bundles can be injected as-is!
  public DeckProvider(DeckOfCardsImageBundle deckImages, Shuffler shuffler) {
    this.deckImages = deckImages;
    this.shuffler = shuffler;
  }

  public Deck get() {
    // TODO we could probably use a generator instead of this nonsense.
    LinkedList<Card> deck = new LinkedList<Card>();
    deck.add(new Card(Suit.CLUBS, Rank.ONE,  this.deckImages.ace_clubs().createImage()));
    deck.add(new Card(Suit.CLUBS, Rank.TWO,  this.deckImages.two_clubs().createImage()));
    deck.add(new Card(Suit.CLUBS, Rank.THREE,  this.deckImages.three_clubs().createImage()));
    deck.add(new Card(Suit.CLUBS, Rank.FOUR,  this.deckImages.four_clubs().createImage()));
    deck.add(new Card(Suit.CLUBS, Rank.FIVE,  this.deckImages.five_clubs().createImage()));
    deck.add(new Card(Suit.CLUBS, Rank.SIX,  this.deckImages.six_clubs().createImage()));
    deck.add(new Card(Suit.CLUBS, Rank.SEVEN,  this.deckImages.seven_clubs().createImage()));
    deck.add(new Card(Suit.CLUBS, Rank.EIGHT,  this.deckImages.eight_clubs().createImage()));
    deck.add(new Card(Suit.CLUBS, Rank.NINE,  this.deckImages.nine_clubs().createImage()));
    deck.add(new Card(Suit.CLUBS, Rank.TEN,  this.deckImages.ten_clubs().createImage()));
    deck.add(new Card(Suit.CLUBS, Rank.JACK,  this.deckImages.jack_clubs().createImage()));
    deck.add(new Card(Suit.CLUBS, Rank.QUEEN,  this.deckImages.queen_clubs().createImage()));
    deck.add(new Card(Suit.CLUBS, Rank.KING,  this.deckImages.king_clubs().createImage()));

    deck.add(new Card(Suit.DIAMONDS, Rank.ONE,  this.deckImages.ace_diamond().createImage()));
    deck.add(new Card(Suit.DIAMONDS, Rank.TWO,  this.deckImages.two_diamond().createImage()));
    deck.add(new Card(Suit.DIAMONDS, Rank.THREE,  this.deckImages.three_diamond().createImage()));
    deck.add(new Card(Suit.DIAMONDS, Rank.FOUR,  this.deckImages.four_diamond().createImage()));
    deck.add(new Card(Suit.DIAMONDS, Rank.FIVE,  this.deckImages.five_diamond().createImage()));
    deck.add(new Card(Suit.DIAMONDS, Rank.SIX,  this.deckImages.six_diamond().createImage()));
    deck.add(new Card(Suit.DIAMONDS, Rank.SEVEN,  this.deckImages.seven_diamond().createImage()));
    deck.add(new Card(Suit.DIAMONDS, Rank.EIGHT,  this.deckImages.eight_diamond().createImage()));
    deck.add(new Card(Suit.DIAMONDS, Rank.NINE,  this.deckImages.nine_diamond().createImage()));
    deck.add(new Card(Suit.DIAMONDS, Rank.TEN,  this.deckImages.ten_diamond().createImage()));
    deck.add(new Card(Suit.DIAMONDS, Rank.JACK,  this.deckImages.jack_diamond().createImage()));
    deck.add(new Card(Suit.DIAMONDS, Rank.QUEEN,  this.deckImages.queen_diamond().createImage()));
    deck.add(new Card(Suit.DIAMONDS, Rank.KING,  this.deckImages.king_diamond().createImage()));

    deck.add(new Card(Suit.HEARTS, Rank.ONE,  this.deckImages.ace_heart().createImage()));
    deck.add(new Card(Suit.HEARTS, Rank.TWO,  this.deckImages.two_heart().createImage()));
    deck.add(new Card(Suit.HEARTS, Rank.THREE,  this.deckImages.three_heart().createImage()));
    deck.add(new Card(Suit.HEARTS, Rank.FOUR,  this.deckImages.four_heart().createImage()));
    deck.add(new Card(Suit.HEARTS, Rank.FIVE,  this.deckImages.five_heart().createImage()));
    deck.add(new Card(Suit.HEARTS, Rank.SIX,  this.deckImages.six_heart().createImage()));
    deck.add(new Card(Suit.HEARTS, Rank.SEVEN,  this.deckImages.seven_heart().createImage()));
    deck.add(new Card(Suit.HEARTS, Rank.EIGHT,  this.deckImages.eight_heart().createImage()));
    deck.add(new Card(Suit.HEARTS, Rank.NINE,  this.deckImages.nine_heart().createImage()));
    deck.add(new Card(Suit.HEARTS, Rank.TEN,  this.deckImages.ten_heart().createImage()));
    deck.add(new Card(Suit.HEARTS, Rank.JACK,  this.deckImages.jack_heart().createImage()));
    deck.add(new Card(Suit.HEARTS, Rank.QUEEN,  this.deckImages.queen_heart().createImage()));
    deck.add(new Card(Suit.HEARTS, Rank.KING,  this.deckImages.king_heart().createImage()));

    deck.add(new Card(Suit.SPADES, Rank.ONE,  this.deckImages.ace_spade().createImage()));
    deck.add(new Card(Suit.SPADES, Rank.TWO,  this.deckImages.two_spade().createImage()));
    deck.add(new Card(Suit.SPADES, Rank.THREE,  this.deckImages.three_spade().createImage()));
    deck.add(new Card(Suit.SPADES, Rank.FOUR,  this.deckImages.four_spade().createImage()));
    deck.add(new Card(Suit.SPADES, Rank.FIVE,  this.deckImages.five_spade().createImage()));
    deck.add(new Card(Suit.SPADES, Rank.SIX,  this.deckImages.six_spade().createImage()));
    deck.add(new Card(Suit.SPADES, Rank.SEVEN,  this.deckImages.seven_spade().createImage()));
    deck.add(new Card(Suit.SPADES, Rank.EIGHT,  this.deckImages.eight_spade().createImage()));
    deck.add(new Card(Suit.SPADES, Rank.NINE,  this.deckImages.nine_spade().createImage()));
    deck.add(new Card(Suit.SPADES, Rank.TEN,  this.deckImages.ten_spade().createImage()));
    deck.add(new Card(Suit.SPADES, Rank.JACK,  this.deckImages.jack_spade().createImage()));
    deck.add(new Card(Suit.SPADES, Rank.QUEEN,  this.deckImages.queen_spade().createImage()));
    deck.add(new Card(Suit.SPADES, Rank.KING,  this.deckImages.king_spade().createImage()));

    return new Deck(deck, shuffler);
  }
}
TOP

Related Classes of com.google.gwt.gin.higherlower.client.gin.DeckProvider

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.