Ecrire une fonction Javascript...

Résolu/Fermé
ryuzaki3698 Messages postés 22 Date d'inscription mardi 26 février 2013 Statut Membre Dernière intervention 25 janvier 2021 - Modifié par ^Abel^ le 7/03/2017 à 14:22
ryuzaki3698 Messages postés 22 Date d'inscription mardi 26 février 2013 Statut Membre Dernière intervention 25 janvier 2021 - 7 mars 2017 à 15:54
Bonjour, j'ai quelques problèmes avec un petit jeu, peut-être quelqu'un pourra-t-il m'aidé.


Les cases marrons représentent places occupés par des tonneaux pleins (donc des cases non disponibles)

Les cases blanches sont les places libres.

Les cases marqués d’un d sont des cases déjà occupés par des nains.


Le but étant de répartir les nains à l’équilibre entre l’avant (rangs 1 & 2) et l’arrière de la barge (rangs 3 & 4). On assume que les tonneau ne pèsent rien.

Ecrire une fonction qui, prenant en paramètres d’entrée la liste des cases occupés par des tonneau, et la liste des cases déjà occupés par des nains, retourne le nombre de nains supplémentaires que l’on peut rajouter dans la barge.
Si on ne peut rajouter aucun nains, la fonction renvoie 0.

En prenant l’exemple plus haut, voici le résultat attendue :


La fonction doit donc retourner 3 :

il y a déjà un nain à l’arrière

il n’y a que 2 places disponibles à l’avant

nous ne pouvons donc rajouter que 3 nains supplémentaires dans la barge (arbitrairement placés en vert dans la barge), car bien qu’il y ait 3 places disponibles à l’arrière, il n’y a que 2 places disponible à l’avant (et il doit y avoir autant de nains à l’avant qu’à l’arrière).


Pour la définition des places occupés par les tonneaux, ou les nains, nous utiliserons un tableau d’objets, correspondant au coordonnées de la case dans la barge.
{x:0,y:0} étant la première case de la première ligne, {x:0,y:1} étant la deuxième case de la première ligne.
Voici pour aide une structure initiale en javascript :

// déclaration des variables
var barrels = [
{x:0,y:1}, {x:1,y:0}, {x:3,y:1}
];
var dwarfs = [
{x:2,y:1}
];

// fonction qui retourne le nombre de nains que l’on peut ajouter
var test = function( barrels, dwarfs ) {
var results = 0;
// ton code ici
return results;
};

// on exécute la fonction
test( barrels, dwarfs );

Merci d'avance
A voir également:

2 réponses

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
7 mars 2017 à 14:21
Bonjour,

Pour l'instant je ne vois qu'un énoncé ( d'exercice ?? ).... mais pas vraiment de question ...
(pour rappel : https://www.commentcamarche.net/infos/25899-demander-de-l-aide-pour-vos-exercices-sur-ccm/ )

Donc.. qu'as tu déjà essayé de coder ?
Sur quoi bloques tu exactement ?

NB : Pour poster du code sur le forum ... il faut utiliser les balises de code



1
ryuzaki3698 Messages postés 22 Date d'inscription mardi 26 février 2013 Statut Membre Dernière intervention 25 janvier 2021
7 mars 2017 à 15:14
Bonjour jordane45,

Désolé pour les balises code j'avais oublié.
J'aurai juste besoin d’éclaircissement sur un ou deux points.

// déclaration des variables
var barrels = [
{x:0,y:1}, {x:1,y:0}, {x:3,y:1}
];
var dwarfs = [
{x:2,y:1}
];

// fonction qui retourne le nombre de nains que l’on peut ajouter
var test = function( barrels, dwarfs ) {
var results = 0;
// ton code ici
return results;
};

// on exécute la fonction
test( barrels, dwarfs );


Pourquoi le résultat retourné doit être 3 et pas 4 vu qu'il y a 4 espaces blancs ? (3 marrons remplis par des tonneaux et 1 case d remplis par un nain soit 4 cases remplies sur 8)
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
Modifié par noctambule28 le 7/03/2017 à 16:01
Ce n'est pas une question de code .... c'une question relative à la compréhension de l'énoncé...

Le but étant de répartir les nains à l’équilibre entre l’avant (rangs 1 & 2) et l’arrière de la barge (rangs 3 & 4). On assume que les tonneau ne pèsent rien.

[...]

il doit y avoir autant de nains à l’avant qu’à l’arrière).


Donc :





.
Cordialement, 
Jordane                                                                 
0
ryuzaki3698 Messages postés 22 Date d'inscription mardi 26 février 2013 Statut Membre Dernière intervention 25 janvier 2021
7 mars 2017 à 15:54
Lol désolé j'avais pas compris

Merci
0