Hello,
I made a memory game with a tutorial. My knowledge of AS3 is not that good so I have the following question.
There is a function like Math.Random to random generate number and put them on stage. I made a memory game and the cards are on the same place every time I play the “movie”.
I want them to shuffle every time I restart the game. How can I write a good random function in AS3?
Thank you.
The code:
package
{
import flash.display.MovieClip;
import flash.events.MouseEvent;
import Card;
import Computer;
import Muis;
import Radio;
import Iphone;
import Beamer;
import Platenspeler;
public class MemoryGame extends MovieClip
{
private var _card:Card;
private var _computer:Computer;
private var _muis:Muis;
private var _radio:Radio;
private var _iphone:Iphone;
private var _beamer:Beamer;
private var _platenspeler:Platenspeler;
private var _cardX:Number;
private var _cardY:Number;
private var _firstCard:*;
private var _totalMatches:Number;
private var _currentMatches:Number;
public function MemoryGame()
{
_totalMatches = 6;
_currentMatches = 0;
createCards();
}
private function createCards():void
{
_cardX = 45;
_cardY = 31;
for(var i:Number = 0; i < 2; i++)
{
_card = new Card();
addChild(_card);
_computer = new Computer();
_card.setType(_computer);
_card.x = _cardX;
_card.y = _cardY;
_cardX += _card.width + 50;
_card.addEventListener(MouseEvent.CLICK, checkCards);
}
for(var j:Number = 0; j < 2; j++)
{
_card = new Card();
addChild(_card);
_muis = new Muis();
_card.setType(_muis);
_card.x = _cardX;
_card.y = _cardY;
_cardX += _card.width + 50;
_card.addEventListener(MouseEvent.CLICK, checkCards);
}
_cardX = 45;
_cardY += _card.height + 50;
for(var k:Number = 0; k < 2; k++)
{
_card = new Card();
addChild(_card);
_radio = new Radio();
_card.setType(_radio);
_card.x = _cardX;
_card.y = _cardY;
_cardX += _card.width + 50;
_card.addEventListener(MouseEvent.CLICK, checkCards);
}
for(var l:Number = 0; l < 2; l++)
{
_card = new Card();
addChild(_card);
_iphone = new Iphone();
_card.setType(_iphone);
_card.x = _cardX;
_card.y = _cardY;
_cardX += _card.width + 50;
_card.addEventListener(MouseEvent.CLICK, checkCards);
}
_cardX = 45;
_cardY += _card.height + 50;
for(var m:Number = 0; m < 2; m++)
{
_card = new Card();
addChild(_card);
_beamer = new Beamer();
_card.setType(_beamer);
_card.x = _cardX;
_card.y = _cardY;
_cardX += _card.width + 50;
_card.addEventListener(MouseEvent.CLICK, checkCards);
}
for(var n:Number = 0; n < 2; n++)
{
_card = new Card();
addChild(_card);
_platenspeler = new Platenspeler();
_card.setType(_platenspeler);
_card.x = _cardX;
_card.y = _cardY;
_cardX += _card.width + 50;
_card.addEventListener(MouseEvent.CLICK, checkCards);
}
}
private function checkCards(event:MouseEvent):void
{
event.currentTarget.removeEventListener(MouseEvent.CLICK, checkCards);
if(_firstCard == undefined)
{
_firstCard = event.currentTarget;
}
else if(String(_firstCard._type) == String(event.currentTarget._type))
{
_firstCard = undefined;
_currentMatches ++;
if(_currentMatches >= _totalMatches)
{
}
}
else
{
_firstCard.gotoAndPlay("flipBack");
event.currentTarget.gotoAndPlay("flipBack");
_firstCard.addEventListener(MouseEvent.CLICK, checkCards);
event.currentTarget.addEventListener(MouseEvent.CLICK, checkCards);
_firstCard = undefined;
}
}
}
}