Syntaxe Javascript POO et array

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Bonjour tout le monde,

Je m'attaque à Javascript en POO et j'ai une petite question syntaxique. J'ai crée un objet Robot dans lequel j'initialise des paramètres. Ensuite je crée des variables robots.

Voici le code (c'est hyper simple hein mais c'est juste d'ordre syntaxique):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
// Objet Robot
function Robot(nick, pv, maxSpeed, position) {
    this.nick = nick;
    this.pv = 100;
    this.maxSpeed = 3;
    this.position = (0,0);
}

// Variables
var robot1 = new Robot('Maurice',95,2,(5,8));
var robot2 = new Robot('lilian',76,3,(12,25));

Les questions que je me pose sont sur les paramètres de localisation: Est-ce qu'on les met bien entre (,) ou non? Concernant l'initialisation des paramètres, je le fais bien dans l'objet ou c'est ailleurs?

Merci pour votre aide

Édité par Coyote

+0 -0
Auteur du sujet
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
// Objet Robot
function Robot(nick, pv, maxSpeed, position) {
    this.nick = nick;
    this.pv = pv;
    this.maxSpeed = maxSpeed;
    this.position = position;
}

// Variables
var robot1 = new Robot('Maurice',95,2,(5,8));
var robot2 = new Robot('lilian',76,3,(12,25));

function sePresenter(){
    console.log("Bonjour je m'appelle " + robot1.nick + ". J'ai " + robot1.pv + " points de vie." + " Je me déplace à " + robot1.maxSpeed + " cases par seconde. Je suis à la case de coordonnées " + robot1.position);
}

sePresenter();

en fait, je ne peux pas initialiser des paramètres dans le constructeur

+0 -0
Auteur du sujet

J'ai un petit peu avancé sur le sujet en créant une méthode pour demander à mes deux petits robots de se présenter. Cependant je bloque toujours sur cette question de coordonnées.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
// Objet Robot
function Robot(nick, pv, maxSpeed, position) {
    this.nick = nick;
    this.pv = pv;
    this.maxSpeed = maxSpeed;
    this.position = position;
}

Robot.prototype.sePresenter = function() {
    console.log("Bonjour je m'appelle " + this.nick + ". J'ai " + this.pv + " points de vie." + " Je me déplace à " + this.maxSpeed + " cases par seconde. Je suis à la case de coordonnées " + this.position);
};

// Variables
var robot1 = new Robot('Maurice',95,2,(5,8));
var robot2 = new Robot('lilian',76,3,(12,25));


// Appel Méthode
robot1.sePresenter();
robot2.sePresenter();
+0 -0
Auteur du sujet

Imaginons que je veuille une dizaine de robots et que je veuille qu'ils se présentent chacun à leur tour.

Je pense qu'il faut créer un array et lancer une boucle for. Ce n'est pas difficile mais je bloque sur ce array car il ne s'agit pas seulement d'un nom mais de plusieurs caractéristiques.

Quelqu'un peut m'aiguiller ?

+0 -0

Qu'est-ce que tu ne comprends pas exactement ?

Il te suffit d'instancier un tableau en ajoutant tes robots, une fois que c'est fait. Tu itères dessus en appelant la bonne méthode.

Et attention Javascript n'est pas de la POO mais de la POP (musique :p ) Programmation orienté prototype, la philosophie n'est pas la même ;) !

https://fr.wikipedia.org/wiki/Programmation_orient%C3%A9e_prototype

Édité par Proktor

+0 -0
Auteur du sujet

voilà, j'ai réussi ! en fait je bloquais sur la syntaxe d'un tableau et de la boucle avec de la POO POP (je ne suis pas encore au taquet là dessus.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// Objet Robot
function Robot(nick, pv, maxSpeed, position) {
    this.nick = nick;
    this.pv = pv;
    this.maxSpeed = maxSpeed;
    this.position = position;
};

//Méthode présentation des robots
Robot.prototype.sePresenter = function() {
    console.log("Bonjour je m'appelle " + this.nick + ". J'ai " + this.pv + " points de vie." + " Je me déplace à " + this.maxSpeed + " cases par seconde. Je suis à la case de coordonnées " + this.position);
};

//Variables array
var robots = [
    new Robot('Maurice',95,2,[5,8]),
    new Robot('Lilian',76,3,[12,25]),
    new Robot('Ernest',100,1,[11,14]),
    new Robot('Juliette',87,3,[2,17])
];

//boucle
robots.forEach(function(robot) {
    robot.sePresenter();
});

Édité par Moody_jr

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte