As3cards provides a skinnable card engine for creating playing card games. The project has an example implementation of Klondike Solitaire.
Sample
/** * Creates the initial layout for the game, sets up the * card piles but does not deal. */ private function createBoard():void { // TODO: Get board dimensions from a style manager? visualDeck = new VisualDeck( DeckType.WITHOUT_JOKERS ); visualDeck.x = 0; visualDeck.y = 0; addChild( visualDeck ); // TODO: Use a factory to get the dealtPile based on the // user's deal settings (deal one vs. deal three) dealtPile = new DealOnePile(); dealtPile.x = 90; dealtPile.y = 0; addChild( dealtPile ); // Store references to the Klondike piles klondikePiles = new Array(); var curX:int = 0; var curY:int = 100; // There are 7 Klondike piles to create for ( var i:int = 0; i < 7; i++ ) { var kp:KlondikePile = new KlondikePile(); kp.x = curX; kp.y = curY; // Saves the reference klondikePiles.push( kp ); // Add the pile to the screen addChild( kp ); // Move the next pile 90 to the right curX += 90; } acePiles = new Array(); curX = 90*3; curY = 0; // There are 4 Ace piles to create for ( i = 0; i < 4; i++ ) { var ap:AcePile = new AcePile(); ap.x = curX; ap.y = curY; // Save the reference acePiles.push( ap ); // Add the pile to the screen addChild( ap ); // Move the next pile 90 to the right curX += 90; } } /** * Deals the cards from the deck into the klondike piles */ private function dealCards():void { // First, shuffle the deck visualDeck.shuffle(); // Deal rows horizontally for ( var i:int = 0; i < 7; i++ ) { // Flip over the first card, deal the rest face down var card:VisualCard = new VisualCard( visualDeck.deal(), false ); // Set up the card for drag and drop configureDrag( card ); // Add the card to the pile klondikePiles[i].addCard( card ); // Add face down cards to all of the card piles on the right of this one for ( var j:int = i + 1; j < 7; j++ ) { klondikePiles[j].addCard( new VisualCard( visualDeck.deal(), true ) ); } } }
I have made a game using this library. Very cool!
It’s Astral solitaire: http://www.mochigames.com/game/astral-solitaire/
Nice! Thanks for sharing!