Aide pour une bataille de cartes

Fermé
mathilde - 27 avril 2016 à 18:17
 opsued - 28 avril 2016 à 20:52
Bonjour,
Je me permets de vous demander votre aide, parce que je suis un peu perdue (et désespérée !)
J'ai programmé un jeu de de bataille de carte, et tout va bien.
Tout va bien, jusqu'à ce que je décide de rentrer les 32 images nécessaires. Et là, c'est la cata.
Je rentre donc les 32 cartes (ce qui est déjà en soit une épreuve, parce que c'est super long), et il me renvoie un message d'erreur "URL undefined"
Sinon, le tout tourne bien, si je remplace les images par une fonction "rectangle".

Alors je sais que l'environnement sur lequel je travaille est propre à l'université de Nantes, mais vous êtes clairement ma dernière chance pour que mon projet marche avant la restitution de demain.

Je vous remercie d'avance.

DrawImage(readFile("Data/1coeur.jpg"), x0, y0, l0, h0);
DrawImage(readFile("Data/7coeur.jpg"), x0, y0, l0, h0);
DrawImage(readFile("Data/8coeur.jpg"), x0, y0, l0, h0);
DrawImage(readFile("Data/9coeur.jpg"), x0, y0, l0, h0);
DrawImage(readFile("Data/10coeur.jpg"), x0, y0, l0, h0);
DrawImage(readFile("Data/damecoeur.jpg"), x0, y0, l0, h0);
DrawImage(readFile("Data/roicoeur.jpg"), x0, y0, l0, h0);
DrawImage(readFile("Data/valetcoeur.jpg"), x0, y0, l0, h0);
DrawImage(readFile("Data/7carreau.jpg"), x0, y0, l0, h0);
DrawImage(readFile("Data/8carreau.jpg"), x0, y0, l0, h0);
DrawImage(readFile("Data/9carreau.jpg"), x0, y0, l0, h0);
DrawImage(readFile("Data/10carreau.jpg"), x0, y0, l0, h0);
DrawImage(readFile("Data/ascarreau.jpg"), x0, y0, l0, h0);
DrawImage(readFile("Data/damecarreau.jpg"), x0, y0, l0, h0);
DrawImage(readFile("Data/roicarreau.jpg"), x0, y0, l0, h0);
DrawImage(readFile("Data/valetcarreau.jpg"), x0, y0, l0, h0);
DrawImage(readFile("Data/7pique.jpg"), x0, y0, l0, h0);
DrawImage(readFile("Data/8pique.jpg"), x0, y0, l0, h0);
DrawImage(readFile("Data/9pique.jpg"), x0, y0, l0, h0);
DrawImage(readFile("Data/10pique.jpg"), x0, y0, l0, h0);
DrawImage(readFile("Data/aspique.jpg"), x0, y0, l0, h0);
DrawImage(readFile("Data/damepique.jpg"), x0, y0, l0, h0);
DrawImage(readFile("Data/roipique.jpg"), x0, y0, l0, h0);
DrawImage(readFile("Data/valetpique.jpg"), x0, y0, l0, h0);
DrawImage(readFile("Data/7trefle.jpg"), x0, y0, l0, h0);
DrawImage(readFile("Data/8trefle.jpg"), x0, y0, l0, h0);
DrawImage(readFile("Data/9trefle.jpg"), x0, y0, l0, h0);
DrawImage(readFile("Data/10trefle.jpg"), x0, y0, l0, h0);
DrawImage(readFile("Data/astrefle.jpg"), x0, y0, l0, h0);
DrawImage(readFile("Data/dametrefle.jpg"), x0, y0, l0, h0);
DrawImage(readFile("Data/roitrefle.jpg"), x0, y0, l0, h0);
DrawImage(readFile("Data/valettrefle.jpg"), x0, y0, l0, h0);

DrawImage(readFile("Data/1coeur.jpg"), x1, y1, l0, h0);
DrawImage(readFile("Data/7coeur.jpg"), x1, y1, l0, h0);
DrawImage(readFile("Data/8coeur.jpg"), x1, y1, l0, h0);
DrawImage(readFile("Data/9coeur.jpg"), x1, y1, l0, h0);
DrawImage(readFile("Data/10coeur.jpg"), x1, y1, l0, h0);
DrawImage(readFile("Data/damecoeur.jpg"), x1, y1, l0, h0);
DrawImage(readFile("Data/roicoeur.jpg"), x1, y1, l0, h0);
DrawImage(readFile("Data/valetcoeur.jpg"), x1, y1, l0, h0);
DrawImage(readFile("Data/7carreau.jpg"), x1, y1, l0, h0);
DrawImage(readFile("Data/8carreau.jpg"), x1, y1, l0, h0);
DrawImage(readFile("Data/9carreau.jpg"), x1, y1, l0, h0);
DrawImage(readFile("Data/10carreau.jpg"), x1, y1, l0, h0);
DrawImage(readFile("Data/ascarreau.jpg"), x1, y1, l0, h0);
DrawImage(readFile("Data/damecarreau.jpg"), x1, y1, l0, h0);
DrawImage(readFile("Data/roicarreau.jpg"), x1, y1, l0, h0);
DrawImage(readFile("Data/valetcarreau.jpg"), x1, y1, l0, h0);
DrawImage(readFile("Data/7pique.jpg"), x1, y1, l0, h0);
DrawImage(readFile("Data/8pique.jpg"), x1, y1, l0, h0);
DrawImage(readFile("Data/9pique.jpg"), x1, y1, l0, h0);
DrawImage(readFile("Data/10pique.jpg"), x1, y1, l0, h0);
DrawImage(readFile("Data/aspique.jpg"), x1, y1, l0, h0);
DrawImage(readFile("Data/damepique.jpg"), x1, y1, l0, h0);
DrawImage(readFile("Data/roipique.jpg"), x1, y1, l0, h0);
DrawImage(readFile("Data/valetpique.jpg"), x1, y1, l0, h0);
DrawImage(readFile("Data/7trefle.jpg"), x1, y1, l0, h0);
DrawImage(readFile("Data/8trefle.jpg"), x1, y1, l0, h0);
DrawImage(readFile("Data/9trefle.jpg"), x1, y1, l0, h0);
DrawImage(readFile("Data/10trefle.jpg"), x1, y1, l0, h0);
DrawImage(readFile("Data/astrefle.jpg"), x1, y1, l0, h0);
DrawImage(readFile("Data/dametrefle.jpg"), x1, y1, l0, h0);
DrawImage(readFile("Data/roitrefle.jpg"), x1, y1, l0, h0);
DrawImage(readFile("Data/valettrefle.jpg"), x1, y1, l0, h0);


var x0 = 58, y0 = 102; // carte joueur 1 (nous)
var x1 = 400, y1 = 102; // carte ordi
var l0 = 50, h0 = 100; // dimension carte
var nouveauTour = true;
var etape = 1;

var deb1 = 0, fin1 = 15;
var deb2 = 0, fin2 = 15;
var cartegagne = 0;

// Le paquet de carte

var tab = Tableau(32);
var dist = Tableau(32);
InitialiserTableau(dist, false); //est-elle distribuée ?

var j = 0;

for(var i = 1; i < 9; i++){
tab[j] = "Data/"+i+"-coeur.jpg";
j++;
}
for(var i = 1; i < 9; i++){
tab[j] = "Data/"+i+"-carreau.jpg";
j++;
}
for(var i = 1; i < 9; i++){
tab[j] = "Data/"+i+"-trefle.jpg";
j++;
}
for(var i = 1; i < 9; i++){
tab[j] = "Data/"+i+"-pique.jpg";
j++;
}


AfficherTableau(tab);


// Recuperer la valeur de la carte pour comparer
function valeur(tab, i){
return CaractereEn(tab[i], 5);
}


// Afficher une image : DrawImage(URL, X, Y, largeur, hauteur);
//DrawImage(readFile(tab[0]), 50, 50, 150,150);
function affichageBase(){
Initialiser();
if(nb1 > 0){
DrawImage(readFile ("Data/cartededos.jpg") ,x0, y0,l0 ,h0); //dos
}
if(nb2 > 0){
DrawImage(readFile ("Data/cartededos.jpg") ,x1, y1, l0 ,h0); //dos
}

}

function affichageJouer1(){
Initialiser();
if(nb1 > 1){
DrawImage(readFile ("Data/cartededos.jpg") ,x0, y0,l0 ,h0); //dos
}
if(nb2 > 1){
DrawImage(readFile ("Data/cartededos.jpg") ,x1, y1,l0 ,h0); //dos
}

//DrawImage(readFile(j1[(deb1+cartegagne) % 32]), x0, y0, l0,h0);

DrawImage (readFile(j1[(deb1+cartegagne) % 32]), x0+100, y0+100, l0 ,h0 );
DrawImage (readFile(j2[(deb1+cartegagne) % 32]), x1+100, y1+100, l0 ,h0 );
}

function affichageJouer2(){
Initialiser();
if(nb1 > 2){
DrawImage(readFile ("Data/cartededos.jpg") ,x0, y0,l0 ,h0); //dos
}
if(nb2 > 2){
DrawImage(readFile ("Data/cartededos.jpg") ,x1, y1,l0 ,h0); //dos
}

DrawImage (readFile(j1[deb1]), x0+100, y0+100, l0 ,h0 );
DrawImage (readFile(j2[deb2]), x1+100, y1+100, l0 ,h0 );

DrawImage(readFile ("Data/cartededos.jpg") ,x0+150, y0+100,l0 ,h0); //dos
DrawImage(readFile ("Data/cartededos.jpg") ,x1+50, y1+100,l0 ,h0); //dos
}

function affichageJouer3(){
Initialiser();
if(nb1 > 2){
DrawImage(readFile ("Data/cartededos.jpg") ,x0, y0,l0 ,h0); //dos
}
if(nb2 > 2){
DrawImage(readFile ("Data/cartededos.jpg") ,x1, y1,l0 ,h0); //dos
}

DrawImage (readFile(j1[deb1]), x0+100, y0+100, l0 ,h0 );
DrawImage (readFile(j2[deb2]), x1+100, y1+100, l0 ,h0 );

DrawImage(readFile ("Data/cartededos.jpg") ,x0+150, y0+100,l0 ,h0); //dos
DrawImage(readFile ("Data/cartededos.jpg") ,x1+50, y1+100,l0 ,h0); //dos

DrawImage (readFile(j1[(deb1+cartegagne+2) % 32]), x0+200, y0+100, l0 ,h0 );
DrawImage (readFile(j2[(deb2+cartegagne+2) % 32]), x1+0, y1+100, l0 ,h0 );
}

// Les paquets des deux joueurs
var j1 = Tableau(32);
InitialiserTableau(j1, 0);
var j2 = Tableau(32);
InitialiserTableau(j2, 0);
var nb1 = 0, nb2 = 0; //nb de cartes



/* On distribue les cartes aux 2 joueurs*/

var n = Hasard(32);
var j = 0;


// Paquet alétoire
while(nb1 < 16){
// Carte au joueur 1
while(dist[n]){
n = Hasard(32);
}
j1[j] = tab[n];
dist[n] = true;

// Carte au joueur 2
while(dist[n]){
n = Hasard(32);
}
j2[j] = tab[n];
dist[n] = true;

j++;
nb2++;
nb1++;
}

// Pour tester avec joueur 1 gagne 16 fois d'affilées
/*
while(nb1 < 16){
// Carte au joueur 1
j1[j] = "Data/8-coeur.jpg";

// Carte au joueur 2
j2[j] = "Data/2-coeur.jpg";

j++;
nb2++;
nb1++;
}*/


affichageBase();


function MouseClick(x,y){

//début du si
if(((x > x0 && x < x0+l0) && (y > y0 && y < y0+h0)) && (nb1 < 32) && (nb2 < 32)){

if(nouveauTour){
affichageBase();
nouveauTour = false;
}
else{

// Première carte posée
if(etape == 1){
i1 = deb1 + cartegagne;
i1 = i1 % 32;

i2 = deb2 + cartegagne;
i2 = i2 % 32;

affichageJouer1();


if(valeur(j1,i1) > valeur(j2,i2)){
nouveauTour = true;

for(var k = 0; k <= cartegagne; k++){
// Il gagne les cartes d'un des tours en jeu
fin1 = (fin1 + 1) % 32;
j1[fin1] = j1[deb1];
j1[deb1] = 0;
fin1 = (fin1 + 1) % 32;
j1[fin1] = j2[deb2];
j1[deb2] = 0;


// Modification des indices et on remets dans les bornes du tableau
deb1 = (deb1 + 1) % 32;
deb2 = (deb2 + 1) % 32;

// Recompte le nombre de cartes
nb1 = nb1 + 1;
nb2 = nb2 - 1;
}
cartegagne = 0;
}
else if(valeur(j1,i1) < valeur(j2,i2)){
nouveauTour = true;

for(var q = 0; q <= cartegagne; q++){
// Il gagne les cartes d'un des tours en jeu
fin2 = (fin2 + 1) % 32;
j2[fin2] = j2[deb2];
j2[deb2] = 0;
fin2 = (fin2 + 1) % 32;
j2[fin2] = j1[deb1];
j2[deb1] = 0;

// Modification des indices
deb2++; deb1++;

// On remets dans les bornes du tableau
deb1 = deb1 % 32;
deb2 = deb2 % 32;

// Recompte le nombre de cartes
nb1 = nb1 - 1;
nb2 = nb2 + 1;
}
cartegagne = 0;
}
else{
etape++;
cartegagne++;
}
}
else if(etape == 2){

while(nb1 < 3){
fin1 = (fin1 + 1) % 32;
j1[fin1] = j2[deb2];
deb2 = (deb2 + 1) % 32;

nb1++; nb2--;
}
while(nb2 < 3){
fin2 = (fin2 + 1) % 32;
j2[fin2] = j1[deb1];
deb1 = (deb1 + 1) % 32;

nb2++; nb1--;
}

affichageJouer2();
etape++;
cartegagne++;
}
else if(etape == 3){
affichageJouer3();

i1 = deb1 + cartegagne;
i1 = i1 % 32;

i2 = deb2 + cartegagne;
i2 = i2 % 32;


if(valeur(j1,i1) > valeur(j2,i2)){
nouveauTour = true;
etape = 1;

for(var d = 0; d <= cartegagne; d++){
// Il gagne les cartes d'un des tours en jeu
fin1 = (fin1 + 1) % 32;
j1[fin1] = j1[deb1];
j1[deb1] = 0;
fin1 = (fin1 + 1) % 32;
j1[fin1] = j2[deb2];
j1[deb2] = 0;


// Modification des indices et on remets dans les bornes du tableau
deb1 = (deb1 + 1) % 32;
deb2 = (deb2 + 1) % 32;

// Recompte le nombre de cartes
nb1 = nb1 + 1;
nb2 = nb2 - 1;
}
cartegagne = 0;
}
else if(valeur(j1,i1) < valeur(j2,i2)){
nouveauTour = true;
etape = 1;

for(var t = 0; t <= cartegagne; t++){
// Il gagne les cartes d'un des tours en jeu
fin2 = (fin2 + 1) % 32;
j2[fin2] = j2[deb2];
j2[deb2] = 0;
fin2 = (fin2 + 1) % 32;
j2[fin2] = j1[deb1];
j2[deb1] = 0;

// Modification des indices
deb2++; deb1++;

// On remets dans les bornes du tableau
deb1 = deb1 % 32;
deb2 = deb2 % 32;

// Recompte le nombre de cartes
nb1 = nb1 - 1;
nb2 = nb2 + 1;
}
cartegagne = 0;
}
else{
cartegagne++;
etape = 1;
}
}
}

//fin du si
}

//sinon si j1 a gagné
//sinon j2 a gagné
//Initialiser();
//Text(x de départ, y, "chaine a afficher", "color");
}







A voir également:

1 réponse

Salut,

le message semble clair:

et il me renvoie un message d'erreur "URL undefined"

Vérifiez donc le chemin d'accès, éventuellement s'il y a des droits d'accès.

Et sans le readFile?
readFile ("Data/cartededos.jpg")
car drawImage en indiquant l'image(objet ou url) devrait suffire si vous utilisez le contexte:

http://www.w3schools.com/tags/canvas_drawimage.asp
0