<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Flash actionscript &#187; memory</title>
	<atom:link href="http://blog.flash-actionscript.com/tag/memory/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.flash-actionscript.com</link>
	<description>Tutoriaux, trucs et astuces sur actionscript, papervision 3D, fms ... Un peu de tout sur l'univers flash.</description>
	<lastBuildDate>Thu, 09 Dec 2010 10:56:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>[Code Source] Code complet pour le jeu de memory en flash</title>
		<link>http://blog.flash-actionscript.com/code-source-code-complet-pour-le-jeu-de-memory-en-flash/</link>
		<comments>http://blog.flash-actionscript.com/code-source-code-complet-pour-le-jeu-de-memory-en-flash/#comments</comments>
		<pubDate>Fri, 06 Mar 2009 12:48:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Code Source]]></category>
		<category><![CDATA[jeu flash]]></category>
		<category><![CDATA[memory]]></category>

		<guid isPermaLink="false">http://blog.flash-actionscript.com/?p=137</guid>
		<description><![CDATA[Après les quelques articles sur le jeu de memory, voici le code complet du jeu pour flash.]]></description>
			<content:encoded><![CDATA[<p>Après les quelques articles sur le jeu de memory, voici le code complet du jeu pour flash. Dans ce code, il y a le chrono et la fonction de fin de jeu qui n&#8217;ont pas été expliqué dans les articles précédents, mais le code ne devrait pas vous poser de problème. Les déclarations de variables n&#8217;ont pas non plus été faites dans les précédents articles. Mais là vous avez tout le code fonctionnel.</p>
<pre class="brush: js">stop();

import gs.TweenMax;
import gs.easing.*;

var conteneur:Sprite = new Sprite( ) ;
addChild( conteneur ) ;

var arrTeinte:Array = new Array( ) ;
var arrTeinteTmp:Array = new Array( ) ;
var arrCouleurCarte:Array = new Array( ) ;
var nbCarteRetournee:Number = 0 ;
var carteNumero1:MovieClip ;
var carteNumero2:MovieClip ;
var nbCartes:Number ;
var nbPairesADefinir:Number ;
var paireATrouver:Number ;
var paireTrouvee:Number = 0 ;
var nbMouvement:Number = 0 ;
var txtChrono:TextField = new TextField( ) ;
var tempsJeu:Number ;
var timerChrono:Timer = new Timer( 1000 ) ;

arrTeinte[ 0 ] = &quot;0x999999&quot; ;
arrTeinte[ 1 ] = &quot;0x33ffff&quot; ;
arrTeinte[ 2 ] = &quot;0xff33ff&quot; ;
arrTeinte[ 3 ] = &quot;0xffff33&quot; ;
arrTeinte[ 4 ] = &quot;0x66ffff&quot; ;
arrTeinte[ 5 ] = &quot;0xff66ff&quot; ;
arrTeinte[ 6 ] = &quot;0xffff66&quot; ;
arrTeinte[ 7 ] = &quot;0x6666ff&quot; ;
arrTeinte[ 8 ] = &quot;0xff9966&quot; ;
arrTeinte[ 9 ] = &quot;0x66ff99&quot; ;

function fctInit( ):void {
fctPlacerElements( 2, 3 ) ;
fctAttribuerCouleur( 2, 3 ) ;
trace( &quot;Nombre d&#039;elements que contient le conteneur: &quot; + conteneur.numChildren );
conteneur.addEventListener( MouseEvent.CLICK, fctRetourner ) ;
fctChrono( 30 ) ;
}
fctInit( ) ;

function fctPlacerElements( nbLignes:Number, nbColonnes:Number ):void {
// Liaison d&#039;un MovieClip de la bibliotheque
// Il represente la carte de dos
// A l interieur de ce MovieClip il y a une shape
// On peut mettre une image
var carte:DosCarte ;

// La paire a trouver est une variable globale qui nous servira a savoir si le joueur a tout trouver ou non.
paireATrouver = ( nbLignes * nbColonnes ) / 2 ;

for ( var i:uint = 1 ; i &amp;lt;= nbLignes ; i++ ) {
for ( var j:uint = 1 ; j &amp;lt;= nbColonnes ; j++ ) {
// On instancie les carte avec le nom de liaison de la bibliotheque
carte = new DosCarte( ) ;
// On donne un id a chaque carte
carte[&quot;numId&quot;] = ( nbColonnes * ( i - 1 ) ) + j ;
// On donne les coordonnees des cartes
carte.x = ( carte.width + 10 ) * ( j - 1 ) + ( carte.width / 2 ) + 10 ;
carte.y = ( carte.height + 10 ) * ( i - 1 ) + ( carte.height / 2 ) + 10 ;
// On donne la main au survol des boutons
carte.buttonMode = true ;
// On ajoute les cartes au conteneur
conteneur.addChild( carte ) ;
}
}
}

function fctAttribuerCouleur( nbLignes:Number, nbColonnes:Number ):void {
nbCartes = nbLignes * nbColonnes ;
nbPairesADefinir = nbCartes / 2 ;

// On initialise le tableau temporaire avec les couleurs du tableau principal
arrTeinteTmp = arrTeinte ;

// La boucle qui va attribuer les couleurs aux cartes
for ( var i:int = 0 ; i &amp;lt; nbCartes ; i++ ) {
if ( arrTeinteTmp.length &amp;gt; 1 ) {
arrCouleurCarte[ i ] = arrTeinteTmp[ Math.round( Math.random( ) * ( nbPairesADefinir - 1 ) + 1 ) ] ;
}
else {
// La valeur 0 du tableau arrTeinteTmp est celle de la dos de carte
arrCouleurCarte[ i ] = arrTeinteTmp[ 1 ] ;
}
for ( var j:int = 0 ; j &amp;lt; nbCartes ; j++ ) {
if ( arrCouleurCarte[ i ] == arrCouleurCarte[ j ] &amp;amp;amp;&amp;amp;amp; i != j ) {
// On appelle la fonction qui va supprimer la couleur qui est utilisée deux fois.
fctRedefinirArrTeinteTemp( arrCouleurCarte [ i ] ) ;
break ;
}
}
}
}

function fctRedefinirArrTeinteTemp( couleur:String ) {
var placeCouleurAChanger:Number ;
nbPairesADefinir-- ;

for ( var i:int = 0 ; i &amp;lt; arrTeinteTmp.length ; i++ ) {
if ( arrTeinteTmp[ i ] == couleur || i &amp;gt;= placeCouleurAChanger ) {
placeCouleurAChanger = i ;
arrTeinteTmp[ i ] = arrTeinteTmp[ i + 1 ] ;
}
}
}

function fctRetourner( pEvt:MouseEvent ):void {
// On verifie qu&#039;il n&#039;y ait pas deja deux cartes de retournees ou qu&#039;on ne clique pas sur une carte deja retournee
if ( nbCarteRetournee != 2 &amp;amp;amp;&amp;amp;amp; carteNumero1 != pEvt.target as MovieClip ) {
// On attribue la carte cliquee
// A la premiere carte si celle ci est non attribuee
if ( carteNumero1 == null ) {
carteNumero1 = MovieClip( pEvt.target ) ;
}
// A la deuxiemme si la premiere est deja retournee
else {
carteNumero2 = MovieClip( pEvt.target ) ;
}
// On cree un effet de retournement de la carte. A la fin de celui-ci on decouvre la couleur
TweenMax.to( pEvt.target, 0.2, { scaleX:0.1, alpha:0.3, onComplete:fctDecouvrirCarte, onCompleteParams:[ pEvt.target ] } ) ;
}
}

function fctDecouvrirCarte( carte:MovieClip ):void {
// Variable initialisee a 0
nbCarteRetournee++ ;
// Grace a TweenMax on retablit la taille de la carte et l alpha de la carte
// Avec la propriete teinte et le tableau qu&#039;on a prealablement defini on lui donne sa couleur
TweenMax.to( carte, 0.2, { scaleX:1, alpha:1, tint:arrCouleurCarte[ carte[&quot;numId&quot;] - 1 ] } ) ;

// Si deux cartes sont retournees on verifie si la paire correspond ou non
if ( nbCarteRetournee == 2 ) {
var myTimer:Timer = new Timer( 1000, 1 ) ;
myTimer.addEventListener( TimerEvent.TIMER, fctCheckPaire ) ;
myTimer.start( ) ;
}
}

function fctCheckPaire( pEvt:TimerEvent ):void {
// On compte le nombre d action effectuees par le joueur, juste pour lui dire le nombre de coups dont il a eu besoin pour finir le jeu
nbMouvement++ ;
// Si la carte 1 et la carte deux ont la meme couleur
if ( arrCouleurCarte[ carteNumero1[&quot;numId&quot;] - 1 ] == arrCouleurCarte[ carteNumero2[&quot;numId&quot;] - 1 ] ) {
paireTrouvee++ ;

// Si toutes les paires ont ete trouvees
if ( paireTrouvee == paireATrouver ) {
fctFinJeu( ) ;
}
// La reinitialisation de la paire permet de libere les cartes en jeu
// On remet a 0 le nombre de carte et on libere les cartes : carteNumero1, carteNumero2
else {
fctReinitPaire( ) ;
}
}
// Si la paire ne correspond pas on lui met la couleur de dos de carte et on libere les cartes a la fin
else {
TweenMax.to( carteNumero1, 0.2, { scaleX:0.1, alpha:0.3, tint:arrTeinte[ 0 ] } ) ;
TweenMax.to( carteNumero2, 0.2, { scaleX:0.1, alpha:0.3, tint:arrTeinte[ 0 ], onComplete:fctRecouvrirCarte } ) ;
}
}

function fctRecouvrirCarte( ):void {
TweenMax.to( carteNumero1, 0.2, { scaleX:1, alpha:1 } ) ;
TweenMax.to( carteNumero2, 0.2, { scaleX:1, alpha:1, onComplete:fctReinitPaire } ) ;
}

function fctReinitPaire( ):void {
nbCarteRetournee = 0 ;
carteNumero1 = null ;
carteNumero2 = null ;
}

function fctChrono( temps:Number ):void {
tempsJeu = temps ;
conteneur.addChild( txtChrono ) ;
txtChrono.y = conteneur.height ;
txtChrono.height = 18 ;

timerChrono.addEventListener( TimerEvent.TIMER, fctAfficherChrono ) ;
timerChrono.start( ) ;
}

function fctAfficherChrono( pEvt:TimerEvent ):void {
if ( tempsJeu &amp;gt; 0 ) {
txtChrono.htmlText = &quot;Temps de jeu: &quot; + String( tempsJeu-- ) ;
}
else {
fctFinJeu( ) ;
}
}

function fctFinJeu( ):void {
timerChrono.stop( ) ;
conteneur.removeEventListener( MouseEvent.CLICK, fctRetourner ) ;

var monTexte:TextField = new TextField( ) ;
conteneur.addChild( monTexte ) ;

monTexte.selectable = false ;
monTexte.width = stage.stageWidth ;
monTexte.y = conteneur.height ;

monTexte.htmlText = &quot;Vous avez réussi le jeu en &quot; + nbMouvement + &quot; mouvements.\nLe nombre minimum de coups étant de &quot; + paireATrouver + &quot; mouvements.&quot; ;
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.flash-actionscript.com/code-source-code-complet-pour-le-jeu-de-memory-en-flash/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Code source] Jeu memory en actionscript 3, partie 8.</title>
		<link>http://blog.flash-actionscript.com/code-source-jeu-memory-en-actionscript-3-partie-8/</link>
		<comments>http://blog.flash-actionscript.com/code-source-jeu-memory-en-actionscript-3-partie-8/#comments</comments>
		<pubDate>Thu, 05 Mar 2009 13:38:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[actionscript 3]]></category>
		<category><![CDATA[Code Source]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[jeu]]></category>
		<category><![CDATA[memory]]></category>

		<guid isPermaLink="false">http://blog.flash-actionscript.com/?p=136</guid>
		<description><![CDATA[Ca y est c'est la fin, avec le prochain article je vous mettrais tout le code source de l'application memory en actionscript 3.]]></description>
			<content:encoded><![CDATA[<p>Ca y est c&#8217;est la fin, avec le prochain article je vous mettrais tout le code source de l&#8217;application memory en <strong>actionscript 3</strong>. Mais pour cette dernière partie, je vais vous montrer les fonctions qui permettent de remettre les cartes à 0, dans l&#8217;état non retourné.</p>
<pre class="brush: js">function fctRecouvrirCarte( ):void {
TweenMax.to( carteNumero1, 0.2, { scaleX:1, alpha:1 } ) ;
TweenMax.to( carteNumero2, 0.2, { scaleX:1, alpha:1, onComplete:fctReinitPaire } ) ;
}

function fctReinitPaire( ):void {
nbCarteRetournee = 0 ;
carteNumero1 = null ;
carteNumero2 = null ;
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.flash-actionscript.com/code-source-jeu-memory-en-actionscript-3-partie-8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Code source] Jeu memory en actionscript 3, partie 7.</title>
		<link>http://blog.flash-actionscript.com/code-source-jeu-memory-en-actionscript-3-partie-7/</link>
		<comments>http://blog.flash-actionscript.com/code-source-jeu-memory-en-actionscript-3-partie-7/#comments</comments>
		<pubDate>Wed, 04 Mar 2009 14:18:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[actionscript 3]]></category>
		<category><![CDATA[Code Source]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[jeu]]></category>
		<category><![CDATA[memory]]></category>
		<category><![CDATA[tweenmax]]></category>

		<guid isPermaLink="false">http://blog.flash-actionscript.com/?p=133</guid>
		<description><![CDATA[Nous allons dans cet article voir la fonction qui va checker si on a une paire ou non, l'essence même du jeu de memory.]]></description>
			<content:encoded><![CDATA[<p>On approche de la fin avec cette 7ème partie du jeu de memory en actionscript 3. Nous allons dans cet article voir la fonction qui va checker si on a une paire ou non, l&#8217;essence même du jeu de memory. On est toujours dans la programmation événementiel et on travaille une fois de plus avec TweenMax.</p>
<pre class="brush: js">function fctCheckPaire( pEvt:TimerEvent ):void {
// On compte le nombre d action effectuees par le joueur, juste pour lui dire le nombre de coups dont il a eu besoin pour finir le jeu
nbMouvement++ ;
// Si la carte 1 et la carte deux ont la meme couleur
if ( arrCouleurCarte[ carteNumero1[&quot;numId&quot;] - 1 ] == arrCouleurCarte[ carteNumero2[&quot;numId&quot;] - 1 ] ) {
paireTrouvee++ ;

// Si toutes les paires ont ete trouvees
if ( paireTrouvee == paireATrouver ) {
fctFinJeu( ) ;
}
// La reinitialisation de la paire permet de libere les cartes en jeu
// On remet a 0 le nombre de carte et on libere les cartes : carteNumero1, carteNumero2
else {
fctReinitPaire( ) ;
}
}
// Si la paire ne correspond pas on lui met la couleur de dos de carte et on libere les cartes a la fin
else {
TweenMax.to( carteNumero1, 0.2, { scaleX:0.1, alpha:0.3, tint:arrTeinte[ 0 ] } ) ;
TweenMax.to( carteNumero2, 0.2, { scaleX:0.1, alpha:0.3, tint:arrTeinte[ 0 ], onComplete:fctRecouvrirCarte } ) ;
}
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.flash-actionscript.com/code-source-jeu-memory-en-actionscript-3-partie-7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Code source] Jeu memory en actionscript 3, partie 6.</title>
		<link>http://blog.flash-actionscript.com/code-source-jeu-memory-en-actionscript-3-partie-6/</link>
		<comments>http://blog.flash-actionscript.com/code-source-jeu-memory-en-actionscript-3-partie-6/#comments</comments>
		<pubDate>Tue, 03 Mar 2009 13:36:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[actionscript 3]]></category>
		<category><![CDATA[Code Source]]></category>
		<category><![CDATA[jeu]]></category>
		<category><![CDATA[memory]]></category>
		<category><![CDATA[tween]]></category>
		<category><![CDATA[tweenmax]]></category>

		<guid isPermaLink="false">http://blog.flash-actionscript.com/?p=128</guid>
		<description><![CDATA[Une fois que les cartes sont retournées, il faut voir si les couleurs correspondent. Avec l'aide de TweenMax, on va remettre la carte à sa taille et son alpha d'origine.]]></description>
			<content:encoded><![CDATA[<p>Une fois que les cartes sont retournées, il faut voir si les couleurs correspondent. Avec l&#8217;aide de <strong><a title="tween facile avec Tweenmax" href="http://blog.flash-actionscript.com/extension-tweenmax-et-tweenlite-facilitent-la-gestion-des-tween/">TweenMax</a></strong>, on va remettre la carte à sa taille et son alpha d&#8217;origine. Et grâce au paramètre tint et au <a title="tableau couleurs des cartes du memory" href="http://blog.flash-actionscript.com/code-source-jeu-memory-en-actionscript-3-partie-2/">tableau de couleurs</a> que l&#8217;on a préalablement créé, on va pouvoir mettre une couleur à la carte.</p>
<pre class="brush: js">function fctDecouvrirCarte( carte:MovieClip ):void {
// Variable initialisee a 0
nbCarteRetournee++ ;
// Grace a TweenMax on retablit la taille de la carte et l alpha de la carte
// Avec la propriete teinte et le tableau qu&#039;on a prealablement defini on lui donne sa couleur
TweenMax.to( carte, 0.2, { scaleX:1, alpha:1, tint:arrCouleurCarte[ carte[&amp;amp;amp;quot;numId&amp;amp;amp;quot;] - 1 ] } ) ;

// Si deux cartes sont retournees on verifie si la paire correspond ou non
if ( nbCarteRetournee == 2 ) {
var myTimer:Timer = new Timer( 1000, 1 ) ;
myTimer.addEventListener( TimerEvent.TIMER, fctCheckPaire ) ;
myTimer.start( ) ;
}
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.flash-actionscript.com/code-source-jeu-memory-en-actionscript-3-partie-6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Code source] Jeu memory en actionscript 3, partie 5.</title>
		<link>http://blog.flash-actionscript.com/code-source-jeu-memory-en-actionscript-3-partie/</link>
		<comments>http://blog.flash-actionscript.com/code-source-jeu-memory-en-actionscript-3-partie/#comments</comments>
		<pubDate>Mon, 02 Mar 2009 09:35:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Code Source]]></category>
		<category><![CDATA[jeu flash]]></category>
		<category><![CDATA[memory]]></category>
		<category><![CDATA[tweenmax]]></category>

		<guid isPermaLink="false">http://blog.flash-actionscript.com/?p=99</guid>
		<description><![CDATA[On arrive au moment où il faut retourner les cartes. Pour ce faire, on va utiliser la libraire TweenMax pour simuler cela. On va jouer sur le scaleX et l&#8217;alpha de la carte. Cela se fait assez simplement avec TweenMax et l&#8217;effet est plutôt pas mal. function fctRetourner( pEvt:MouseEvent ):void { // On verifie qu&#039;il [...]]]></description>
			<content:encoded><![CDATA[<p>On arrive au moment où il faut retourner les cartes. Pour ce faire, on va utiliser la libraire <a title="Classe TweenMax pour faciliter l'utilisation des tweens." href="http://blog.flash-actionscript.com/extension-tweenmax-et-tweenlite-facilitent-la-gestion-des-tween/">TweenMax</a> pour simuler cela. On va jouer sur le scaleX et l&#8217;alpha de la carte. Cela se fait assez simplement avec TweenMax et l&#8217;effet est plutôt pas mal.</p>
<pre class="brush: js">function fctRetourner( pEvt:MouseEvent ):void {
	// On verifie qu&#039;il n&#039;y ait pas deja deux cartes de retournees ou qu&#039;on ne clique pas sur une carte deja retournee
	if ( nbCarteRetournee != 2 &amp;&amp; carteNumero1 != pEvt.target as MovieClip ) {
		// On attribue la carte cliquee
		// A la premiere carte si celle ci est non attribuee
		if ( carteNumero1 == null ) {
			carteNumero1 = MovieClip( pEvt.target ) ;
		}
		// A la deuxiemme si la premiere est deja retournee
		else {
			carteNumero2 = MovieClip( pEvt.target ) ;
		}
		// On cree un effet de retournement de la carte. A la fin de celui-ci on decouvre la couleur
		TweenMax.to( pEvt.target, 0.2, { scaleX:0.1, alpha:0.3, onComplete:fctDecouvrirCarte, onCompleteParams:[ pEvt.target ] } ) ;
	}
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.flash-actionscript.com/code-source-jeu-memory-en-actionscript-3-partie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Code source] Jeu memory en actionscript 3, partie 4.</title>
		<link>http://blog.flash-actionscript.com/code-source-jeu-memory-en-actionscript-3-partie-4/</link>
		<comments>http://blog.flash-actionscript.com/code-source-jeu-memory-en-actionscript-3-partie-4/#comments</comments>
		<pubDate>Thu, 26 Feb 2009 10:49:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Code Source]]></category>
		<category><![CDATA[jeu flash]]></category>
		<category><![CDATA[memory]]></category>

		<guid isPermaLink="false">http://blog.flash-actionscript.com/?p=95</guid>
		<description><![CDATA[Une part importante du code est de s'assurer qu'il n'y ait pas plus de deux pièces du memory qui aient la même couleur.]]></description>
			<content:encoded><![CDATA[<p>Le jeu de memory qu&#8217;on est en train de réaliser en actionscript prend petit à petit forme. Une part importante du code est de s&#8217;assurer qu&#8217;il n&#8217;y ait pas plus de deux pièces du memory qui aient la même couleur. Avec le code suivant, on retire les couleurs qui ont déjà trouvé leur paire. On retire la couleur du tableau et on fait s&#8217;écrouler les couleurs dans le tableau.</p>
<pre class="brush: js">function fctRedefinirArrTeinteTemp( couleur:String ) {
	var placeCouleurAChanger:Number ;
	nbPairesADefinir-- ;

	for ( var i:int = 0 ; i &lt; arrTeinteTmp.length ; i++ ) {
		if ( arrTeinteTmp[ i ] == couleur || i &amp;lt;= placeCouleurAChanger ) {
			placeCouleurAChanger = i ;
			arrTeinteTmp[ i ] = arrTeinteTmp[ i + 1 ] ;
		}
	}
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.flash-actionscript.com/code-source-jeu-memory-en-actionscript-3-partie-4/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>[Code source] Jeu memory en actionscript 3, partie 3.</title>
		<link>http://blog.flash-actionscript.com/code-source-jeu-memory-en-actionscript-3-partie-3/</link>
		<comments>http://blog.flash-actionscript.com/code-source-jeu-memory-en-actionscript-3-partie-3/#comments</comments>
		<pubDate>Wed, 25 Feb 2009 08:59:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Code Source]]></category>
		<category><![CDATA[jeu flash]]></category>
		<category><![CDATA[memory]]></category>

		<guid isPermaLink="false">http://blog.flash-actionscript.com/?p=81</guid>
		<description><![CDATA[Nous allons utiliser une fonction qui va boucler sur toutes les cartes pour attribuer une couleur pour ce jeu de memory.]]></description>
			<content:encoded><![CDATA[<p>Après avoir créé les tableaux de couleurs, il faut maintenant les attribuer aux cartes. Nous allons pour cela utiliser une fonction qui va boucler sur toutes les cartes du memory. En actionscript 3, on peut transmettre un tableau dans un tableau de manière très simple avec :</p>
<pre class="brush: js">monTableauReceveur = monTableauAvecLesDonnees</pre>
<p>Et voilà la fonction pour attribuer les couleurs des cartes du memory :</p>
<pre class="brush: js">function fctAttribuerCouleur( nbLignes:Number, nbColonnes:Number ):void {
	nbCartes = nbLignes * nbColonnes ;
	nbPairesADefinir = nbCartes / 2 ;

	// On initialise le tableau temporaire avec les couleurs du tableau principal
	arrTeinteTmp = arrTeinte ;

	// La boucle qui va attribuer les couleurs aux cartes
	for ( var i:int = 0 ; i &amp;amp;amp;amp;amp;lt; nbCartes ; i++ ) {
		if ( arrTeinteTmp.length &amp;amp;amp;amp;amp;gt; 1 ) {
			arrCouleurCarte[ i ] = arrTeinteTmp[ Math.round( Math.random( ) * ( nbPairesADefinir - 1 ) + 1 ) ] ;
		}
		else {
			// La valeur 0 du tableau arrTeinteTmp est celle de la dos de carte
			arrCouleurCarte[ i ] = arrTeinteTmp[ 1 ] ;
		}
		for ( var j:int = 0 ; j &amp;amp;amp;amp;amp;lt; nbCartes ; j++ ) {
			if ( arrCouleurCarte[ i ] == arrCouleurCarte[ j ] &amp;amp;amp;amp;amp;amp;amp;&amp;amp;amp;amp;amp;amp;amp; i != j ) {
				// On appelle la fonction qui va supprimer la couleur qui est utilisée deux fois.
				fctRedefinirArrTeinteTemp( arrCouleurCarte [ i ] ) ;
				break ;
			}
		}
	}
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.flash-actionscript.com/code-source-jeu-memory-en-actionscript-3-partie-3/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>[Code source] Jeu memory en actionscript 3, partie 2.</title>
		<link>http://blog.flash-actionscript.com/code-source-jeu-memory-en-actionscript-3-partie-2/</link>
		<comments>http://blog.flash-actionscript.com/code-source-jeu-memory-en-actionscript-3-partie-2/#comments</comments>
		<pubDate>Tue, 24 Feb 2009 13:40:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[actionscript 3]]></category>
		<category><![CDATA[Code Source]]></category>
		<category><![CDATA[jeu flash]]></category>
		<category><![CDATA[memory]]></category>
		<category><![CDATA[tableau]]></category>

		<guid isPermaLink="false">http://blog.flash-actionscript.com/?p=75</guid>
		<description><![CDATA[Après avoir placé les cartes du memory dans le conteneur, il s'agit ici d'attribuer les couleurs aux cartes. Avant d'attribuer les couleurs une petite explication de comment cela va se faire.]]></description>
			<content:encoded><![CDATA[<p>Après avoir <a title="Code source jeu du memory" href="http://blog.flash-actionscript.com/code-source-jeu-memory-en-actionscript-3-partie-1/">placé les cartes du memory dans le conteneur</a>, il s&#8217;agit ici d&#8217;attribuer les couleurs aux cartes. Avant d&#8217;attribuer les couleurs une petite explication de comment cela va se faire. Pour cela, nous allons créer un tableau de couleurs. On utilisera aussi un tableau de couleurs temporaires. Le tableau de couleurs servira à attribuer les couleurs aux cartes, le tableau temporaire supprimera les couleurs qui ont été utilisées deux fois, on ne veux pas que plus de deux cartes aient la même couleurs. Un troisième tableau stockera les couleurs des cartes.</p>
<pre class="brush: js">var arrTeinte:Array = new Array( ) ;
var arrTeinteTmp:Array = new Array( ) ;
var arrCouleurCarte:Array = new Array( ) ;</pre>
<p>Mon tableau de couleurs :</p>
<pre class="brush: js">arrTeinte[ 0 ] = &quot;0x999999&quot; ;
arrTeinte[ 1 ] = &quot;0x33ffff&quot; ;
arrTeinte[ 2 ] = &quot;0xff33ff&quot; ;
arrTeinte[ 3 ] = &quot;0xffff33&quot; ;
arrTeinte[ 4 ] = &quot;0x66ffff&quot; ;
arrTeinte[ 5 ] = &quot;0xff66ff&quot; ;
arrTeinte[ 6 ] = &quot;0xffff66&quot; ;
arrTeinte[ 7 ] = &quot;0x6666ff&quot; ;
arrTeinte[ 8 ] = &quot;0xff9966&quot; ;
arrTeinte[ 9 ] = &quot;0x66ff99&quot; ;</pre>
<p>La valeur arrTeinte[ 0 ] est la couleur de la teinte du dos de la carte que vous avez créé dans la première partie de ce tutoriel. Vous pouvez ajouter autant de teinte que vous voulez. Ici le jeu sera limitée à 9 paires de carte.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.flash-actionscript.com/code-source-jeu-memory-en-actionscript-3-partie-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>[Code source] Jeu memory en actionscript 3, partie 1.</title>
		<link>http://blog.flash-actionscript.com/code-source-jeu-memory-en-actionscript-3-partie-1/</link>
		<comments>http://blog.flash-actionscript.com/code-source-jeu-memory-en-actionscript-3-partie-1/#comments</comments>
		<pubDate>Mon, 23 Feb 2009 10:20:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Code Source]]></category>
		<category><![CDATA[jeu flash]]></category>
		<category><![CDATA[memory]]></category>

		<guid isPermaLink="false">http://blog.flash-actionscript.com/?p=66</guid>
		<description><![CDATA[Code source pour faire un memory en actionscript 3.]]></description>
			<content:encoded><![CDATA[<p>Allez c&#8217;est parti pour notre premier jeu. Pour ce jeu, j&#8217;ai choisi de faire un memory qui vous demande d&#8217;associer deux cartes deux à deux en fonction de leur similitude. Pour ce memory, j&#8217;ai décidé de le faire juste avec des couleurs, mais à partir de cette base vous pouvez le faire avec des images. Le code sera fait en procédural. Dans cette première partie, on placera les cartes sur la scène. Tout d&#8217;abord on va créer un conteneur globale :</p>
<pre class="brush: js">var conteneur:Sprite = new Sprite( ) ;
addChild( conteneur ) ;</pre>
<p>Puis le code pour placer les cartes. Avant cela on doit créer un clip dans la bibliothèque qui représentera la carte de dos, avec comme <a href="http://blog.flash-actionscript.com/actionscript-3-lier-un-movieclip-de-la-bibliotheque-a-la-scene/" title="Lier un MovieClip de la bibliothèque sur la scène">nom de liaison de la bibliothèque</a> DosCarte.</p>
<pre class="brush: js">function fctPlacerElements( nbLignes:Number, nbColonnes:Number ):void {
	// Liaison d&#039;un MovieClip de la bibliotheque
	// Il represente la carte de dos
	// A l interieur de ce MovieClip il y a une shape
	// On peut mettre une image
	var carte:DosCarte ;

	// La paire a trouver est une variable globale qui nous servira a savoir si le joueur a tout trouver ou non.
	paireATrouver = ( nbLignes * nbColonnes ) / 2 ;

	for ( var i:uint = 1 ; i &amp;lt;= nbLignes ; i++ ) {
		for ( var j:uint = 1 ; j &amp;lt;= nbColonnes ; j++ ) {
			// On instancie les carte avec le nom de liaison de la bibliotheque
			carte = new DosCarte( ) ;
			// On donne un id a chaque carte
			carte[&amp;quot;numId&amp;quot;] = ( nbColonnes * ( i - 1 ) ) + j ;
			// On donne les coordonnees des cartes
			carte.x = ( carte.width + 10 ) * ( j - 1 ) + ( carte.width / 2 ) + 10 ;
			carte.y = ( carte.height + 10 ) * ( i - 1 ) + ( carte.height / 2 ) + 10 ;
			// On donne la main au survol des boutons
			carte.buttonMode = true ;
			// On ajoute les cartes au conteneur
			conteneur.addChild( carte ) ;
		}
	}
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.flash-actionscript.com/code-source-jeu-memory-en-actionscript-3-partie-1/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

