Copy link to clipboard
Copied
It's me again.
I corrected the error # 1009 and now i get 2 more : # 1084.
I tried to correct but i can't see.
Tks a lot.
package {
//composante du texte
import flash.display.*;
import flash.text.*;
//importation des composantes du programme
// composante du bouton
import flash.events.*;
//création des classes du programme
public class U2A5_JeuTicTacToe extends MovieClip
{
//Déclarer les constantes.
//combien de case par rangees et par colonnes
private static const RANGEES:int=3;
private static const COLONNES:int=3;
// grandeur des cases pour les rangees et les colonnes
private static const RANGEE_HAUTEUR:Number=85;
private static const COLONNE_LARGEUR:Number=85;
private static const RANGEE_DECALAGE:Number=10;
private static const COLONNE_DECALAGE:Number=10;
//Déclarer les variables pour le reste du programme
// variable pour la memoire de la derniere case selectionner
private var caseCourante:Cases;
// identifie une colonne ou rangee spécifique
private var tttRangee:int;
private var tttColonne:int;
// identifie le joeur courant donc les x ou les o
private var joueurCourant:int=2;
// variable pour savoir quand les 9 cases ont été choisi
private var nombreDeClics:int=0;
// variable pour le X et le O
private var joueurSymbole:String="X";
// variable utilisé quand un joueur gagne
private var gagnant:String="Début";
//Utiliser un tableau pour reseter au courant des x et des o pour chaque rangee.
var rangee1:Array=[" "," "," "];
var rangee2:Array=[" "," "," "];
var rangee3:Array=[" "," "," "];
//Insérer les rangées dans un tableau conteneur nommé TTTPlancheJeu.
var TTTPlancheJeu:Array=[rangee1,rangee2,rangee3];
//Utiliser une fonction constructeur pour dresser la planche du jeu.
public function U2A5_JeuTicTacToe():void
{
// boucles for pour creer les trois colonnes et les trois rangees
for (var c:int=0; c<COLONNES; c++)
{
for (var r:int=0; r<RANGEES; r++)
{
// code pour creer chaque case une a cote de l'autre
var caseAffiche:Cases = new Cases();
caseAffiche.stop();
caseAffiche.x=c*COLONNE_LARGEUR+COLONNE_DECALAGE;
caseAffiche.y=r*RANGEE_HAUTEUR+RANGEE_DECALAGE;
addChild(caseAffiche);
// code pour que le programme ecoute pour un evenement de click pour qu'un coup soit joue
caseAffiche.addEventListener(MouseEvent.CLICK, joueUnCoup);
}
}
}
// code de la boucle for pour la partie des coups joué
public function joueUnCoup(event:MouseEvent)
{
// variable qui calcule du nombre de clic ajoute 1
nombreDeClics++;
// lorsqu'un click sur une case est fait - le bon symbole doit apparaitre - ceci en est le code
caseCourante = (event.target as Cases);
caseCourante.symbole=joueurCourant;
caseCourante.gotoAndStop(joueurCourant);
situeSurPlancheJeu();
// code pour verifier si il y a un gagnant
verifieGagnant();
// code pour changer de joueur pour le prochain coup
changeJoueur();
}
// code pour situer quel case le joueur a selectionner
function situeSurPlancheJeu():void {
// basé sur les coordonnées X et les coordonnées Y
if (mouseX<=85) {
tttColonne=0;
} else if ((mouseX > 85) && (mouseX <= 170)) {
tttColonne=1;
} else if ((mouseX > 170) && (mouseX <= 255)) {
tttColonne=2;
}
if (mouseY<=85) {
tttRangee=0;
} else if ((mouseY > 85) && (mouseY <= 170)) {
tttRangee=1;
} else if ((mouseY > 170) && (mouseY <= 255)) {
tttRangee=2;
}
// basé sur lequel des if qui fonctionne le programme utilise ces données dans ce code et met le symbole sur la bonne case
TTTPlancheJeu[tttRangee][tttColonne]=joueurSymbole;
}
// code pour vérifié si il y a un gagnant.
function verifieGagnant():void {
// Vérifie les rangées
for (var r:int=0; r<RANGEES; r++) {
if ( ( (TTTPlancheJeu
gagnant=(TTTPlancheJeu
}
}
//Vérifie les colonees.
for (var c:int=0; r<COLONNES; c++) {
// verifie si il y a trois même symbole sur une rangée
if ( ( (TTTPlancheJeu
gagnant=(TTTPlancheJeu
}
// Vérifie une des diagonales
// verifie si il y a trois même symbole sur une colonne
if ( ( (TTTPlancheJeu[0][0]) == (TTTPlancheJeu[1][1])) && ((TTTPlancheJeu[1][1]) == (TTTPlancheJeu[2][2]) ) && ((TTTPlancheJeu[0][0]) != " ")) {
gagnant=(TTTPlancheJeu[0][0]);
}
// vérifie si la partie est nulle.
// si les 9 cases ont été choisi et il n'y a jamais eu de gagnant le jeu est nul
if ((nombreDeClics == 9) && (gagnant == "Début")) {
gagnant="Match null!";
}
//S'il y a un gagnant, l'indiquer.
if (gagnant!="Début") {
MovieClip(root).gagnant=gagnant;
// allé à l'image 3 finPartie
MovieClip(root).gotoAndStop("finPartie");
}
}
}
// function qui permet les bon symbole pour les joueurs respectif d'etre afficher
function changeJoueur():void {
//Si c'est le joueur 2 c'est donc le symbole o qui apparait
if (joueurCourant==2) {
joueurSymbole="O";
// change la variable pour que le prochain tour soir au X
joueurCourant=3;
} else if (joueurCourant == 3)
{
//Si c'est le joueur 3 c'est donc le symbole X qui apparait
joueurSymbole="X";
// change la variable pour que le prochain tour soir au O
joueurCourant=2;
}
}
}
}
Copy link to clipboard
Copied
click file>publish settings>swf and tick 'permit debugging'. retest.
then copy and paste the complete error message and indicate the line of code mentioned in the top line of that error message.
Copy link to clipboard
Copied
Yes i did and it shows me this lines :
24 : nothing on this line.
28 : private static const RANGEES:int=3;
So i can't understand a lot.
tks.
Copy link to clipboard
Copied
The first thing that is wrong with the code is that constructor return type is void - remove it; constructor returns an instance of the class.
Second, you have three lines that have spaces in variable names:
caseAffiche.x=c*COLONNE_LARGEUR+COLONNE_DECA LAGE;
caseAffiche.y=r*RANGEE_HAUTEUR+RANGEE_DECALA GE;
caseAffiche.addEventListener(MouseEvent.CLIC K, joueUnCoup);
Copy link to clipboard
Copied
the spaces are probably forum artifacts and not actually in his code.
Copy link to clipboard
Copied
Yeah, that can be the case.
Find more inspiration, events, and resources on the new Adobe Community
Explore Now