Skip to content

Commit

Permalink
add more ASDocs;
Browse files Browse the repository at this point in the history
add test for card.destroy();
  • Loading branch information
Crabar committed Mar 4, 2014
1 parent ce14d1e commit d2e7f81
Show file tree
Hide file tree
Showing 9 changed files with 86 additions and 46 deletions.
3 changes: 2 additions & 1 deletion src/animation/Fade.as
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ package animation
{
_goDown = goDown;
_target = target;
_changeFactor = (time / 1000) / target.stage.frameRate;
var curFR:Number = target.stage?target.stage.frameRate:24;
_changeFactor = (time / 1000) / curFR;
_animationTimer = new Timer(time, 1);
_animationTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onAnimationEnd);
}
Expand Down
9 changes: 4 additions & 5 deletions src/engines/Card.as
Original file line number Diff line number Diff line change
@@ -1,16 +1,14 @@
package engines
{
import animation.Fade;

import engines.events.CardEvent;

import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.events.TimerEvent;
import flash.utils.Timer;
import animation.Fade;
import engines.events.CardEvent;

[Event(name="cardOpen", type="engines.events.CardEvent")]
[Event(name="cardClose", type="engines.events.CardEvent")]
Expand Down Expand Up @@ -84,7 +82,8 @@ package engines

private function onFadeAnimationComplete(event:Event):void
{
this.parent.removeChild(this);
if (parent)
parent.removeChild(this);
}
}
}
11 changes: 10 additions & 1 deletion src/engines/CardsGenerator.as
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,17 @@ package engines
import flash.display.BitmapData;
import flash.errors.IOError;

/**
* Used for generating cards in random positions.
* @author Crabar
*/
public class CardsGenerator
{
/**
*
* @param frontImages Array of different front images for cards.
* @param backImage Card's back image.
*/
public function CardsGenerator(frontImages:Vector.<BitmapData>, backImage:BitmapData)
{
_frontImages = frontImages;
Expand Down Expand Up @@ -41,7 +50,7 @@ package engines
}

preparedCards.sortOn("weight", Array.NUMERIC);

for (var j:uint = 0; j < preparedCards.length; j++)
{
cards[j] = preparedCards[j].card;
Expand Down
35 changes: 22 additions & 13 deletions src/engines/RulesEngine.as
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,17 @@ package engines
import flash.text.TextFormatAlign;
import engines.events.CardEvent;

/**
* Used to control game logic.
* @author Crabar
*/
public class RulesEngine
{
/**
*
* @param playGround Sprite that contains cards.
* @param cards Array of cards.
*/
public function RulesEngine(playGround:Sprite, cards:Vector.<Card>)
{
_playGround = playGround;
Expand Down Expand Up @@ -38,19 +47,6 @@ package engines
showWinMessage();
}

private function showWinMessage():void
{
var winText:TextField = new TextField();
winText.text = "Congratulations! You won!";
var winTextFormat:TextFormat = new TextFormat(null, 32, 0x11aa11, true, true, false, "", "", TextFormatAlign.CENTER);
winText.setTextFormat(winTextFormat);
winText.selectable = false;
winText.width = _playGround.stage.stageWidth;
winText.height = 40;
winText.y = _playGround.stage.stageHeight / 2;
_playGround.addChild(winText);
}

private function destroyCard(card:Card):void
{
card.destroy();
Expand Down Expand Up @@ -98,6 +94,19 @@ package engines
_pairsCount--;
}

private function showWinMessage():void
{
var winText:TextField = new TextField();
winText.text = "Congratulations! You won!";
var winTextFormat:TextFormat = new TextFormat(null, 32, 0x11aa11, true, true, false, "", "", TextFormatAlign.CENTER);
winText.setTextFormat(winTextFormat);
winText.selectable = false;
winText.width = _playGround.stage.stageWidth;
winText.height = 40;
winText.y = _playGround.stage.stageHeight / 2;
_playGround.addChild(winText);
}

private function unblockPlayground():void
{
_playGround.mouseChildren = true;
Expand Down
9 changes: 4 additions & 5 deletions src/engines/cardsPlacers/SimpleCardsPlacer.as
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ package engines.cardsPlacers
import flash.geom.Rectangle;
import engines.Card;

/**
* Basic cards' placer. Used for placing cards on playground.
* @author Crabar
*/
public class SimpleCardsPlacer implements ICardsPlacer
{
public function SimpleCardsPlacer():void
Expand All @@ -19,11 +23,6 @@ package engines.cardsPlacers

public function placeCards(target:Sprite, cards:Vector.<Card>):void
{
// var cardSize:Number = calcOptimalCardSize(new Rectangle(paddingLeft,
// paddingTop,
// target.width - paddingRight,
// target.height - paddingBottom),
// cards.length);
var sideCount:uint = uint(Math.sqrt(cards.length));
const cardWidth:Number = cards[0].width;
const cardHeight:Number = cards[0].height;
Expand Down
14 changes: 11 additions & 3 deletions src/engines/events/CardEvent.as
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,18 @@ package engines.events

public class CardEvent extends Event
{
public static const CARD_OPEN:String = "cardOpen";
/**
* Dispatched when target card is closed.
* @default
*/
public static const CARD_CLOSE:String = "cardClose";
/**
* Dispatched when target card is opened.
* @default
*/
public static const CARD_OPEN:String = "cardOpen";

public function CardEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false)
public function CardEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false)
{
super(type, bubbles, cancelable);
}
Expand All @@ -17,4 +25,4 @@ package engines.events
return new CardEvent(type, bubbles, cancelable);
}
}
}
}
47 changes: 29 additions & 18 deletions src/tests/CardTest.as
Original file line number Diff line number Diff line change
@@ -1,36 +1,36 @@
package tests
{
import engines.Card;
import engines.events.CardEvent;

import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Sprite;
import flash.events.Event;

import engines.Card;
import engines.events.CardEvent;
import flexunit.framework.Assert;

import org.flexunit.async.Async;

public class CardTest
{

[Before]
public function setUp():void
[BeforeClass]
public static function setUpBeforeClass():void
{
}

[After]
public function tearDown():void
[AfterClass]
public static function tearDownAfterClass():void
{
}

[BeforeClass]
public static function setUpBeforeClass():void
private var _cardForDestroyTest:Card;

[Before]
public function setUp():void
{
}

[AfterClass]
public static function tearDownAfterClass():void
[After]
public function tearDown():void
{
}

Expand All @@ -53,10 +53,16 @@ package tests
card.close();
}

[Test]
[Test(async)]
public function testDestroy():void
{
Assert.fail("Test method Not yet implemented");
_cardForDestroyTest = new Card(new BitmapData(1, 1), new BitmapData(1, 1));
var parent:Sprite = new Sprite();
parent.addChild(_cardForDestroyTest);
Assert.assertNotNull(_cardForDestroyTest.parent);
const destroyTime:uint = 2000;
_cardForDestroyTest.destroy(destroyTime);
Async.delayCall(this, afterDestroy, destroyTime + 50);
}

[Test(async)]
Expand All @@ -67,10 +73,9 @@ package tests
card.open();
}

private function onCardOpen(event:CardEvent, passThroughData:Object):void
private function afterDestroy():void
{
var cardImage:Bitmap = Bitmap(Card(event.target).getChildAt(0));
Assert.assertEquals("Card is not opened!", cardImage.bitmapData, Card(event.target).front);
Assert.assertNull("Card is not removed from parent!", _cardForDestroyTest.parent);
}

private function onCardClose(event:CardEvent, passThroughData:Object):void
Expand All @@ -83,5 +88,11 @@ package tests
{
Assert.fail("Card event is not dispatched!");
}

private function onCardOpen(event:CardEvent, passThroughData:Object):void
{
var cardImage:Bitmap = Bitmap(Card(event.target).getChildAt(0));
Assert.assertEquals("Card is not opened!", cardImage.bitmapData, Card(event.target).front);
}
}
}
1 change: 1 addition & 0 deletions src/tests/CardsGeneratorTest.as
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ package tests
var cardsCount:uint = 21;
_cardsGenerator.generateRandomCards(cardsCount);
//
cardsCount = 20;
var cards:Vector.<Card> = _cardsGenerator.generateRandomCards(cardsCount);
Assert.assertNotNull(cards);
Assert.assertEquals(cardsCount, cards.length);
Expand Down
3 changes: 3 additions & 0 deletions src/utils/CardsImagesLoader.as
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ package utils
[Event(name="complete", type="flash.events.Event")]
public class CardsImagesLoader extends EventDispatcher
{
/**
* Used for loading cards' images.
*/
public function CardsImagesLoader()
{
}
Expand Down

0 comments on commit d2e7f81

Please sign in to comment.