Bonjour,
Je suis en train d'essayer d'aider mes élèves en javascript concernant la mise en oeuvre d'un "jeu du memory".
Je l'ai fait en C en deux temps trois mouvements en mode SDL2 et ça marche super il y atrès longtemps, mais mes collègues à l'école veulent faire ça en javascript.
Je n'ai jamais programmé en javascript, mais bon...
Voici mon soucis: je déclare un Array() qui devrait se comporter un peu comme une pile d'après l'interface (les méthodes disponibles), je compte remplir cette pile en lisant un dossier local contenant des images.
Dans la fonction qui permet d'opérer un traitement sur chaque élément d'une autre liste, je fais un push() sur un Array() qui devrait être "global" vu qu'il est en dehors de toute fonction...
Or le nombre d'éléments dans la pile reste à 0 sauf dans le fonction où je fais mon Push() :{
Là j'ai 0 :{
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 var path=require('path'); var filesystem=require('fs'); const stackfichiers=new Array(); var repertoireimages=path.join("./images"); console.log("Répertoire: "+repertoireimages); filesystem.readdir(repertoireimages,{withFileTypes:true},fichiers); console.log("Pile: "+stackfichiers.length);
Là au bout d'un moment je suis à 24, le nombre de fichiers contenus dans le répertoire...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 function fichiers(erreur,listefichiers) { if(erreur) { console.log(erreur); } console.log("Nombre de fichiers: "+listefichiers.length); listefichiers.forEach(traitementfichier) } function traitementfichier(unfichier) { console.log("Fichier traité: "+unfichier.name+" répertoire ("+unfichier.isDirectory()+")"); stackfichiers.push(unfichier.name); console.log("Pile: "+stackfichiers.length); }
stackfichiers semble dupliqué en mode local à la fonction traitementfichier() et en mode global au fichier .js contenant les instructions mais les deux ne partagent pas la même adresse en mémoire ce qui m'ennuie bcp.
Partager