top30
Messages postés1158Date d'inscriptionvendredi 21 février 2003StatutMembreDernière intervention 6 août 2010
-
2 avril 2005 à 03:45
xplosif59
Messages postés1Date d'inscriptionjeudi 8 mars 2007StatutMembreDernière intervention 9 mars 2007
-
9 mars 2007 à 01:25
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
xplosif59
Messages postés1Date d'inscriptionjeudi 8 mars 2007StatutMembreDernière intervention 9 mars 2007 9 mars 2007 à 01:25
Salut salut, je passe juste pour te demandé si tu pouvais m'envoyé le .exe (jsuis une merde... ça fait 2jours que j'essaye de compilé et j'y arrive pas -_-) voila voila ^^ si tu veux bien mon adresse est max59tyl@hotmail.fr (j'éspére que tu regardes encore ici ça fait plus de 2 ans et demi quand même :s)
Merci :-).
niteowl
Messages postés8Date d'inscriptionjeudi 16 janvier 2003StatutMembreDernière intervention20 janvier 2008 20 mars 2006 à 21:55
en fait on peut marquer une case d'une drapeau, prends donc la peine de lire l'aide (le ? à gauche du smiley) ;)
wesh2k2
Messages postés31Date d'inscriptionvendredi 3 septembre 2004StatutMembreDernière intervention12 octobre 2012 17 mars 2006 à 12:00
C'est parfait mais je met que 7 parceke normalement on peut mettre des drapeaux sur les mines ca evite d'avoir a rematter toutes les cases pour savoir où on a deja detecter une mine.
Quand on double clic sur une case qui a deja toutes ses mines marquées ca découvre son entourage aussi
glork
Messages postés29Date d'inscriptionmardi 26 avril 2005StatutMembreDernière intervention17 février 2006 27 avril 2005 à 21:23
C beau
mais personne va jouer ce genre de jeu :P (trop classique)
7|10
niteowl
Messages postés8Date d'inscriptionjeudi 16 janvier 2003StatutMembreDernière intervention20 janvier 2008 4 avril 2005 à 16:01
top30, merci beaucoup pour la police ! je cherchais comment faire, c'est impeccable !
je n'ai pas encore testé ton code, mais merci pour ta contribution.
top30
Messages postés1158Date d'inscriptionvendredi 21 février 2003StatutMembreDernière intervention 6 août 2010 4 avril 2005 à 12:59
PS :
Tu as inclus la police au Zip. Mais avec Flash, c est pas vraiment comme avec Xpress. Tu peux incrustrer la police à ton doc "Fla" sans que personne n est à se soucier d'installer la police. Pour ceci tu dois :
- Dans la bibliothèque, créer une nouvelle police, puis lui indiquée une ID de liaison.
- Dans tes champs textes, tu choisis la police ayant pour nom l'identifiant de liaison ( celle avec un asterix indiquant que c'est une police exportée ).
C est tout !
top30
Messages postés1158Date d'inscriptionvendredi 21 février 2003StatutMembreDernière intervention 6 août 2010 4 avril 2005 à 10:23
Salut...
Pour t'aider un peu. Les scripts qui buggent dans ta prog, sont les scripts qui comme "attribuer_mines()" font appel à des boucles "while".
Dans le font tu n'as pas tort, puisque plus ou moins cela se passe comme suit :
Tu commence par un "i" à 0 tant que ce "i" est inférieure au nombre de mines à distribuer, tu répètes la boucle qui dit que si la case n'a pas de mine, tu lui en attribue un et augmente "i", et que si la case en a une, ne rien faire !
Le problème est LA ! Si la case n'as pas de mine.. OK ! Mais si en a une ne fait RIEN. Si tu commence à mettre un nombre élever de mine, la boucle reste plus 256 fois sans rien faire puisque chque fois que la boucle détermine une mine, celle-ci a deja une mine !
Si tu a 10 mines pour 100 cases la boucle fonctionne sans gros problemes, mais si tu as 20 mines pour 25 cases, ca plante ! Tu suis ?
T'as solution :
Faire un tableau "casesCopiees" de toutes les cases du jeu, et un tableau vide "tableauMines. Puis tant que la longueur de "tableauMines" est inférieure au nombre de mine à poser, tu "SPLICE" un élément de "casesCopiees" AU HAZARD et l'insére dans "tableauMine". A chaque boucle, "casesCopiees" diminue, et ainsi tu ne peux "splicer" deux fois la même case !!!! = )
Une fois "tableauMines" déterminer, il ne te reste plus qu'à attribuer une mine à chacune des cases en faisant partie.
C'est beaucoup plus simple que ca n'en a l'air ! :
/*********** grille ***********/
function Affiche() {
// var
profondeur = 20; // profondeur de départ pour les clips "carrés"
num_case=0; // numero de la case, utilisé pour attribuer mine
xDep = posXdep; // positionnement x de départ
yDep = 75; // positionnement y de départ
xPlus = largCarre; // espacement x entre les carrés
yPlus = largCarre; // espacement y entre les carrés
// génération de la grille
// TOP30 --------------------
var lesCases = new Array () ;
//---------------------------
for (i=0; i<hauteur; i++) {
for (j=0; j<largeur; j++) {
// TOP30 --------------------
var uneCase = _root.attachMovie("c_carre", "case_"+i+"-"+j, profondeur);
lesCases.push ( uneCase ) ;
//---------------------------
this["case_"+i+"-"+j]._x = xDep;
this["case_"+i+"-"+j]._y = yDep;
this["case_"+i+"-"+j].x = i;
this["case_"+i+"-"+j].y = j;
this["case_"+i+"-"+j].mine = 0;
this["case_"+i+"-"+j].decouv = 0;
this["case_"+i+"-"+j].gotoAndStop("defaut");
xDep += xPlus;
profondeur++;
num_case++;
}
xDep = posXdep;
yDep += yPlus;
}
// TOP30 --------------------
attribuerMine( lesCases );
//---------------------------
}
// place les mines ------------------------------------------------------------------
function attribuerMine( casesCopiees ){
// TOP30 --------------------
var casesMinees = new Array () ;
while ( casesMinees.length < nb_mines ) {
var hazard = Math.floor( Math.random()*casesCopiees.length ) ;
var caseCoupee = casesCopiees.splice ( hazard, 1 )[0] ; // Splice renvoyant un tableau...
caseCoupee.mine = 1 ;
grille_mines[hazard] = "ok" ;
casesMinees.push ( caseCoupee ) ;
}
//---------------------------
}
J'ai fait le test avec un tableau de 100 cases et 95 mines, ca marche !
Pour le reste, c est vrai que ca marche, mais je penses que tu devrais "attribuer" la valeur d'indication du nombre de mine autour d'une case A LA CREATION ( ou distribution des mines ) et non comme tu le fait, par vérification des voisins au clic sur une case !
j espère t'avoir aider par mes explications super claires ( il est 9H00 du mat exucse moi )...
Sur ce je te laise je vais à la plage...
A plus !
niteowl
Messages postés8Date d'inscriptionjeudi 16 janvier 2003StatutMembreDernière intervention20 janvier 2008 4 avril 2005 à 09:43
bug corrigé et source renvoyée
Blacknight91titi
Messages postés1732Date d'inscriptionjeudi 17 juin 2004StatutMembreDernière intervention 9 mars 20152 3 avril 2005 à 13:22
Un très bon travail que tu as réaliser.
J'ai cependant constater un bug.
Si on découvre une mine on est sensé avori perud mais on peut continuer a cliquer sur les autres cases et ainsi gagnée.
9/10
niteowl
Messages postés8Date d'inscriptionjeudi 16 janvier 2003StatutMembreDernière intervention20 janvier 2008 3 avril 2005 à 00:35
merci, ça me fait plaisir, d'autant que c'est ma 1e source sur ce site ^_^
j'ai essayé de la fignoler un maximum avant de la poster.
cs_tom
Messages postés1511Date d'inscriptionsamedi 8 décembre 2001StatutModérateurDernière intervention11 juin 2009 2 avril 2005 à 12:31
On remarque un certain professionnalisme: tu as inclus la police avec. Ca, c'est un reflexe de maquettiste et ca mérite toutes mes salutations.
En tout cas, trés bon travail!
WhiteMagus
Messages postés764Date d'inscriptionlundi 21 juin 2004StatutMembreDernière intervention 5 février 2010 2 avril 2005 à 09:31
Joli. Le concept est compris et le code respectable.
bravo.
top30
Messages postés1158Date d'inscriptionvendredi 21 février 2003StatutMembreDernière intervention 6 août 2010 2 avril 2005 à 03:45
9 mars 2007 à 01:25
Merci :-).
20 mars 2006 à 21:55
17 mars 2006 à 12:00
Quand on double clic sur une case qui a deja toutes ses mines marquées ca découvre son entourage aussi
27 avril 2005 à 21:23
mais personne va jouer ce genre de jeu :P (trop classique)
7|10
4 avril 2005 à 16:01
je n'ai pas encore testé ton code, mais merci pour ta contribution.
4 avril 2005 à 12:59
Tu as inclus la police au Zip. Mais avec Flash, c est pas vraiment comme avec Xpress. Tu peux incrustrer la police à ton doc "Fla" sans que personne n est à se soucier d'installer la police. Pour ceci tu dois :
- Dans la bibliothèque, créer une nouvelle police, puis lui indiquée une ID de liaison.
- Dans tes champs textes, tu choisis la police ayant pour nom l'identifiant de liaison ( celle avec un asterix indiquant que c'est une police exportée ).
C est tout !
4 avril 2005 à 10:23
Pour t'aider un peu. Les scripts qui buggent dans ta prog, sont les scripts qui comme "attribuer_mines()" font appel à des boucles "while".
Dans le font tu n'as pas tort, puisque plus ou moins cela se passe comme suit :
Tu commence par un "i" à 0 tant que ce "i" est inférieure au nombre de mines à distribuer, tu répètes la boucle qui dit que si la case n'a pas de mine, tu lui en attribue un et augmente "i", et que si la case en a une, ne rien faire !
Le problème est LA ! Si la case n'as pas de mine.. OK ! Mais si en a une ne fait RIEN. Si tu commence à mettre un nombre élever de mine, la boucle reste plus 256 fois sans rien faire puisque chque fois que la boucle détermine une mine, celle-ci a deja une mine !
Si tu a 10 mines pour 100 cases la boucle fonctionne sans gros problemes, mais si tu as 20 mines pour 25 cases, ca plante ! Tu suis ?
T'as solution :
Faire un tableau "casesCopiees" de toutes les cases du jeu, et un tableau vide "tableauMines. Puis tant que la longueur de "tableauMines" est inférieure au nombre de mine à poser, tu "SPLICE" un élément de "casesCopiees" AU HAZARD et l'insére dans "tableauMine". A chaque boucle, "casesCopiees" diminue, et ainsi tu ne peux "splicer" deux fois la même case !!!! = )
Une fois "tableauMines" déterminer, il ne te reste plus qu'à attribuer une mine à chacune des cases en faisant partie.
C'est beaucoup plus simple que ca n'en a l'air ! :
/*********** grille ***********/
function Affiche() {
// var
profondeur = 20; // profondeur de départ pour les clips "carrés"
num_case=0; // numero de la case, utilisé pour attribuer mine
xDep = posXdep; // positionnement x de départ
yDep = 75; // positionnement y de départ
xPlus = largCarre; // espacement x entre les carrés
yPlus = largCarre; // espacement y entre les carrés
// génération de la grille
// TOP30 --------------------
var lesCases = new Array () ;
//---------------------------
for (i=0; i<hauteur; i++) {
for (j=0; j<largeur; j++) {
// TOP30 --------------------
var uneCase = _root.attachMovie("c_carre", "case_"+i+"-"+j, profondeur);
lesCases.push ( uneCase ) ;
//---------------------------
this["case_"+i+"-"+j]._x = xDep;
this["case_"+i+"-"+j]._y = yDep;
this["case_"+i+"-"+j].x = i;
this["case_"+i+"-"+j].y = j;
this["case_"+i+"-"+j].mine = 0;
this["case_"+i+"-"+j].decouv = 0;
this["case_"+i+"-"+j].gotoAndStop("defaut");
xDep += xPlus;
profondeur++;
num_case++;
}
xDep = posXdep;
yDep += yPlus;
}
// TOP30 --------------------
attribuerMine( lesCases );
//---------------------------
}
// place les mines ------------------------------------------------------------------
function attribuerMine( casesCopiees ){
// TOP30 --------------------
var casesMinees = new Array () ;
while ( casesMinees.length < nb_mines ) {
var hazard = Math.floor( Math.random()*casesCopiees.length ) ;
var caseCoupee = casesCopiees.splice ( hazard, 1 )[0] ; // Splice renvoyant un tableau...
caseCoupee.mine = 1 ;
grille_mines[hazard] = "ok" ;
casesMinees.push ( caseCoupee ) ;
}
//---------------------------
}
J'ai fait le test avec un tableau de 100 cases et 95 mines, ca marche !
Pour le reste, c est vrai que ca marche, mais je penses que tu devrais "attribuer" la valeur d'indication du nombre de mine autour d'une case A LA CREATION ( ou distribution des mines ) et non comme tu le fait, par vérification des voisins au clic sur une case !
j espère t'avoir aider par mes explications super claires ( il est 9H00 du mat exucse moi )...
Sur ce je te laise je vais à la plage...
A plus !
4 avril 2005 à 09:43
3 avril 2005 à 13:22
J'ai cependant constater un bug.
Si on découvre une mine on est sensé avori perud mais on peut continuer a cliquer sur les autres cases et ainsi gagnée.
9/10
3 avril 2005 à 00:35
j'ai essayé de la fignoler un maximum avant de la poster.
2 avril 2005 à 12:31
En tout cas, trés bon travail!
2 avril 2005 à 09:31
bravo.
2 avril 2005 à 03:45
[9/10]