CLASS PUZZLE - "COMPOSANT" - POUR CRÉER DES PUZZLE EN DEUX TEMPS TROIS MOUVEMENT

Signaler
Messages postés
842
Date d'inscription
dimanche 24 novembre 2002
Statut
Membre
Dernière intervention
2 juillet 2007
-
cs_Piwik
Messages postés
3
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
1 septembre 2009
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/24642-class-puzzle-composant-pour-creer-des-puzzle-en-deux-temps-trois-mouvements

cs_Piwik
Messages postés
3
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
1 septembre 2009

Hello j'aimerai pouvoir afficher des fonctions gagné et perdu avec l'affichage d'un texte et d'un autre visuel mais je ne sais pas comment faire (accès à une autre frame...etc )
Pourriez vous me donner un coup de main ?
Merci d'avance pour vos réponses
cs_bali_balo
Messages postés
1381
Date d'inscription
samedi 9 octobre 2004
Statut
Membre
Dernière intervention
1 novembre 2010
1
Excusez moi pour ce retard ^^
Mais je regarde un peu les sources de top30 en ce moment ^^
Ses petites sources comme celle là m'inspire beaucoup parce que j'ai plein de petit projet, ou plutôt plein de petit composant à développer comme Mr top!


>>>
Serieusement, Montez un site web spécialisé dans la creation de Class, associé à un bon forum d'échange, ça marcherait du feu de Dieu :)
<<<

Je suis d'accord à 100%, je posterais dans le forum cette proposition, je serais même capable de laisser une petite place sur mon ftp pour ce site ^^

Voilà! (désolé de te harceler sur toute tes sources top8 euhh.....top30 ^^ )


bali_balo....=]
cs_jaco2
Messages postés
19
Date d'inscription
mercredi 25 mai 2005
Statut
Membre
Dernière intervention
10 janvier 2006

Bon, trève de Noël terminée.
J'ai corrigé ainsi :

1 - rendre le puzzle toujours réalisable en bougeant aléatoirement les cases depuis la situation initiale (100 fois modifiable) au lieu de les mélanger aléatoirement, en remplaçant dans Slidepuzzle.as la fonction shakeCells par :
private static function shakeCells (o:eGame.SlidePuzzle):Void {
var j = 0 ;
var k = 0 ;
for (var nY = 0 ; nY < o.vDivision ; nY++) {
for (var nX = 0 ; nX < o.hDivision ; nX++) {
var cell = o.cells[j++] ;
cell._x = o.x + (nX * o._cellWidth) ;
cell._y = o.y + (nY * o._cellHeight) ;
}
}
for (k=0; k<100; k++) {
j = random(o.cells.length) ;
var s = o.cells.slice (j, j+1) ;
if (s[0].isOnAxe) {
// pushCells a un paramètre de plus pour valider ou non le clignotement
pushCells (o, s[0], false);
verifyPuzzle (o) ;
}
}
}

2 - Mais çà déclenche un clignotement à cause de la fonction pushCells qu'on modifie ainsi :
private static function pushCells (o:eGame.SlidePuzzle, cell:MovieClip, clignote:Boolean):Void {
var nxX = cell._x ;
var nxY = cell._y ;
var axe Math.floor (o.hidenCell._x) Math.floor(cell._x) ? "_y" : "_x" ;
var dis (axe "_x") ? o._cellWidth : o._cellHeight ;
var dec = o.hidenCell[axe] < cell[axe] ? -dis : dis ;
var selection = selectCells (o, cell, axe);
selection.push (cell);
for (var i in selection) {
selection[i][axe] += dec ;
if (clignote==true && selection[i].isBack) selection[i].shine () ;
}
o.hidenCell._x = nxX ;
o.hidenCell._y = nxY ;
}
au passage, ajouter ,true à l'appel de la fonction cell.onRelease (tout en bas du .as)

3 - tirer aléatoirement la case cachée en remplaçant dans la fonction drawPuzzle
o.hidenCell = o.cells[o.cells.length-1] ;
par
o.hidenCell = o.cells[random(o.cells.length)];
cs_jaco2
Messages postés
19
Date d'inscription
mercredi 25 mai 2005
Statut
Membre
Dernière intervention
10 janvier 2006

Excellent Top30 ! Merci.
En voulant intégrer ton travail dans un petit site, j'ai constaté un petit bug : selon le mélange aléatoire, le puzzle n'est parfois pas réalisable (1 fois sur 2)
C'est un problème de signature des permutations dans la matrice du puzzle.
Et puis si la case blanche était tirée aléatoirement ...
Je regarde le code et si j'arrive à corriger je posterai ici.
A moins que tu ne l'ai déjà corrigé, ce qui m'éviterai de plonger dans le code.