Je crée un jeu tour par tour
Voici le setting.js :
// ---------- Initialisation du jeu ---------- //
var jeu = {}
jeu.nouveau = function () {
console.log("Nouvelle Partie");
var nbObstacles = parseInt(document.getElementById('nbObstacles').value);
// Recuperation du nombre d'obstacles
var nbArmes = parseInt(document.getElementById('nbArmes').value);
// Recuperation du nombre d'armes
jeu.map.generationMap();
// Generation de la carte du jeu
jeu.map.generationObstacles(nbObstacles);
// Generation des obtacles
jeu.map.generationArmes(nbArmes);
// Generation des armes
jeu.joueurs.generationJoueurs();
// Generation des joueurs
console.lg("Le joueur " + jeu.joueurs.tour + "commence. A l'attaque!");
jeu.maj();
// Mise à jour de la partie
}
// ---------- Mise à jour de la partie ---------- //
jeu.maj = function () {
jeu.joueurs.info();
// Mise à jour des informations
jeu.map.deplacements();
// Deplacement des joueurs
};
Puis le map.js
(Et à partir de //-- Initialisation des deplacements --// mon plateau de jeu ne s'affiche plus, et j'ai :
typeError : jeu.map is undefined)
Je ne comprend pas pourquoi ![[[sticker:p/1lmc]]](https://image.jeuxvideo.com/stickers/p/st/1lmc)
![[[sticker:p/1lmc]]](https://image.jeuxvideo.com/stickers/p/st/1lmc)
//---------- Initatialisation de la map ----------//
jeu.map = {};
jeu.map.generationMap = function () {
document.getElementById('map').innerHTML = "";
// Réinitialisation de la carte du jeu
var elemMap = document.getElementById('map');
for (var i = 0; i < 10; i++) {
// Generation d'une map 10/10
var row = document.createElement('div');
$(row).attr("class", "row");
$(elemMap).append(row);
for (var j = 0; j < 10; j++) {
var col = document.createElement('div');
$(col).attr("class", "case");
$(col).attr("data-x", j + 1);
$(col).attr("data-y", i + 1);
$(col).attr("type", "");
$(col).attr("arme", "");
$(row).append(col);
}
}
};
// ---------- Initialisation des obstacles ----------//
jeu.map.generationObstacles = function (nombre) {
for (var i = 0; i < nombre; i++) {
var x = Math.ceil(Math.random() * 10);
// Generation d'un nombre entre 1 et 10
var y = Math.ceil(Math.random() * 10);
var obstacles = document.querySelector(".case[data-x='" + x + "'][data-y='" + y + "']");
// Recuperation de la case
if ($(obstacles).attr("type") === "") {
// Si la case est vide
$(obstacles).attr("type", "obstacles");
// Definition du type obstacles
$(obstacles).addClass("obstacles");
// Attribution de la classe obstacles
} else {
i--;
// Si la case n'est pas vide, on recommence l'iteration
};
}
}
// ---------- Initialisation des armes ---------- //
jeu.armes = {
arme0: {
nom: "Mains nues",
degats: 10,
class: "mains"
},
arme1: {
nom: "Dague",
degats: 15,
class: "dague"
},
arme2: {
nom: "Epée",
degats: 20,
class: "epee"
},
arme3: {
nom: "sceptre",
degats: 25,
class: "sceptre"
},
arme4: {
nom: "hache",
degats: 30,
class: "hache"
},
}
// Apparition aleatoire des armes
jeu.map.generationArmes = function (nombre) {
console.log(nombre + " arme(s) en jeux : ");
for (var i = 0; i < nombre; i++) {
var random = Math.ceil((Math.random() * 4) - 1);
// Generation d'armes entre 1 et 4
var x = Math.ceil(Math.random() * 10);
// Generation d'un nombre entre 1 et 10
var y = Math.ceil(Math.random() * 10);
var arme = document.querySelector(".case[data-x='" + x + "'][data-y='" + y + "']");
// Recuperation de la case
if ($(arme).attr("type") === "") {
// Si la case est vide
$(arme).attr("type", "arme");
// Definition du type d'armes
$(arme).attr("arme", "arme" + (random + 1));
// Definition de l'arme
$(arme).addClass(jeu.armes['arme' + (random + 1)].class);
// Definition de la class de l'arme
console.log("- " + jeu.armes['arme' + random].nom +
"(" + jeu.armes['arme' + random].degats + "points)");
} else {
i--;
// Si la case n'est pas vide, on recommence l'iteration
};
};
};
// ---------- Initialisation des deplacements ---------- //
jeu.map.deplacements = function () {
var joueur = jeu.joueurs.tour;
// Definition du joueur actif
var x = parseInt(jeu.joueurs[joueur].coordX);
var y = parseInt(jeu.joueurs[joueur].coordY);
for (var i = 1; i < 4; i++) { // Deplacement à droite
var elem = document.querySelector(".case[data-x='" + (x + i) + "'][data-y='" + y + "']");
if (elem) { // Si on ne sort pas de la carte
if (($(elem).attr("type") === "obstacles") || ($(elem).attr("type") === "joueur")) {
break; // Si la case est occupée on sort de la boucle
} else if (($(elem).attr("type") === "") || ($(elem).attr("type") === "arme")) {
// Si la case est vide on attribut la classe "deplacer"
if ($(elem).attr("type") === "") {
// Si la case est vide
$(elem).attr("type", "deplacer");
// On lui attribut le type "deplacer"
} else if ($(elem).attr("type") === "arme") {
// Si la case est une arme
$(elem).attr("type", "deplacer+arme");
// On definit le type deplacer+arme
};
$(elem).addClass("deplacer" + joueur);
// On attribut la class deplacer
elem.addEventListener('click', jeu.map.clickDeplace, false);
// Evenement click pour les deplacements des joueurs
}
}
};
for (var i = 1; i < 4; i++) { // Deplacement à gauche
var elem = document.querySelector(".case[data-x='" + (x - i) + "'][data-y='" + y + "']");
if (elem) { // Si on ne sort pas de la carte
if (($(elem).attr("type") === "obstacles") || ($(elem).attr("type") === "joueur")) {
break; // Si la case est occupée on sort de la boucle
} else if (($(elem).attr("type") === "") || ($(elem).attr("type") === "arme")) {
// Si la case est vide on attribut la classe "deplacer"
if ($(elem).attr("type") === "") {
// Si la case est vide
} $(elem).attr("type", "deplacer");
// On lui attribut le type "deplacer"
} else if ($(elem).attr("type") === "arme") {
// Si la case est une arme
$(elem).attr("type", "deplacer+arme");
// On definit le type deplacer+arme
};
$(elem).addClass("deplacer" + joueur);
// On attribut la class deplacer
elem.addEventListener('click', jeu.map.clickDeplace, false);
// Evenement click pour les deplacements des joueurs
}
};
};
for (var i = 1; i < 4; i++) { // Deplacement en haut
var elem = document.querySelector(".case[data-x='" + (x) + "'][data-y='" + (y + i) + "']");
if (elem) { // Si on ne sort pas de la carte
if (($(elem).attr("type") === "obstacles") || ($(elem).attr("type") === "joueur")) {
break; // Si la case est occupée on sort de la boucle
} else if (($(elem).attr("type") === "") || ($(elem).attr("type") === "arme")) {
// Si la case est vide on attribut la classe "deplacer"
if ($(elem).attr("type") === "") {
// Si la case est vide
} $(elem).attr("type", "deplacer");
// On lui attribut le type "deplacer"
} else if ($(elem).attr("type") === "arme") {
// Si la case est une arme
$(elem).attr("type", "deplacer+arme");
// On definit le type deplacer+arme
};
$(elem).addClass("deplacer" + joueur);
// On attribut la class deplacer
elem.addEventListener('click', jeu.map.clickDeplace, false);
// Evenement click pour les deplacements des joueurs
}
};
};
for (var i = 1; i < 4; i++) { // Deplacement en bas
var elem = document.querySelector(".case[data-x='" + (x) + "'][data-y='" + (y - i) + "']");
if (elem) { // Si on ne sort pas de la carte
if (($(elem).attr("type") === "obstacles") || ($(elem).attr("type") === "joueur")) {
break; // Si la case est occupée on sort de la boucle
} else if (($(elem).attr("type") === "") || ($(elem).attr("type") === "arme")) {
// Si la case est vide on attribut la classe "deplacer"
if ($(elem).attr("type") === "") {
// Si la case est vide
} $(elem).attr("type", "deplacer");
// On lui attribut le type "deplacer"
} else if ($(elem).attr("type") === "arme") {
// Si la case est une arme
$(elem).attr("type", "deplacer+arme");
// On definit le type deplacer+arme
};
$(elem).addClass("deplacer" + joueur);
// On attribut la class deplacer
elem.addEventListener('click', jeu.map.clickDeplace, false);
// Evenement click pour les deplacements des joueurs
}
};
};