Probleme avec systeme basique de localisation
Résolu/Fermé
Jockill
Messages postés
102
Date d'inscription
jeudi 17 juillet 2014
Statut
Membre
Dernière intervention
13 mai 2019
-
18 avril 2018 à 00:10
Jockill Messages postés 102 Date d'inscription jeudi 17 juillet 2014 Statut Membre Dernière intervention 13 mai 2019 - 18 avril 2018 à 21:33
Jockill Messages postés 102 Date d'inscription jeudi 17 juillet 2014 Statut Membre Dernière intervention 13 mai 2019 - 18 avril 2018 à 21:33
A voir également:
- Probleme avec systeme basique de localisation
- Restauration systeme windows 10 - Guide
- Localisation telephone - Guide
- Google maps localisation - Guide
- Localisation gps - Guide
- Localisation facebook - Guide
1 réponse
[Dal]
Messages postés
6174
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
2 février 2024
1 083
Modifié le 18 avril 2018 à 11:28
Modifié le 18 avril 2018 à 11:28
Salut Jøckill,
Ne poste pas une image (de plus sur un autre site).
Copie-colle ton code sur le forum entre balises "code". Cela permet de préserver l'indentation de ton code, de colorer la syntaxe et numéroter tes lignes. Si tu n'as pas vu le bouton de l'éditeur te permettant de poster ton code correctement, il est là :
Au sujet de ton code, ton code crashe ou affiche des caractères arbitraires, car tu utilises des indices négatifs sur le tableau
Tu devrais mettre les indices dans deux variables contenant la position horizontale et verticale courante (donc au départ 1 et 1 puisque tu décides de partir du milieu), puis modifier les variables selon le déplacement. Du coup, tes coordonnées sont, en fait, les indices du tableau et le contenu B1, etc. ne sert pas à grand chose.
Si tu mets ton déplacement dans une boucle, pour te déplacer plus d'une fois, tu devras aussi décider ce qu'il arrive si on tente un déplacement en dehors des limites du tableau, par exemple, refuser le déplacement vers le Nord si la position horizontale actuelle est déjà 0, sinon tu te trouveras avec un problème similaire.
Dal
Ne poste pas une image (de plus sur un autre site).
Copie-colle ton code sur le forum entre balises "code". Cela permet de préserver l'indentation de ton code, de colorer la syntaxe et numéroter tes lignes. Si tu n'as pas vu le bouton de l'éditeur te permettant de poster ton code correctement, il est là :
Au sujet de ton code, ton code crashe ou affiche des caractères arbitraires, car tu utilises des indices négatifs sur le tableau
string carte[3][3];, or les indices de ce tableau vont de 0 à 2, tu tentes donc d'accéder à quelque chose en dehors des limites du tableau.
Tu devrais mettre les indices dans deux variables contenant la position horizontale et verticale courante (donc au départ 1 et 1 puisque tu décides de partir du milieu), puis modifier les variables selon le déplacement. Du coup, tes coordonnées sont, en fait, les indices du tableau et le contenu B1, etc. ne sert pas à grand chose.
Si tu mets ton déplacement dans une boucle, pour te déplacer plus d'une fois, tu devras aussi décider ce qu'il arrive si on tente un déplacement en dehors des limites du tableau, par exemple, refuser le déplacement vers le Nord si la position horizontale actuelle est déjà 0, sinon tu te trouveras avec un problème similaire.
Dal
18 avril 2018 à 13:27
Désolé pour le screen j'étais pas au courant que ça ne se faisait pas -même si avec un peu de réflexion c'est logique-
Et pour le code merci beaucoup ! Je vais essayer ça en rentrant :)
18 avril 2018 à 15:49
Alors non c'est toujours pas réglé...
En fait on ne peut pas en c++ classique associer des variables en déclarant l'array
est illégal en c++
Cependant il l'est en g++ mais je ne sais pas passer du c++ au g++ x'D
Modifié le 18 avril 2018 à 16:58
Cela serait du C, et non du C++, valide à partir de C99 (c'est à dire la révision du standard du C datant de l'année 1999), qui supporte les tableaux à taille variable (VLA - Variable-length array) dont la taille peut être déterminée à l'exécution. A ma connaissance cette partie de l'évolution du C n'a pas fait son chemin en C++.
Un programmeur C++ utiliserait plutôt pour faire cela et plus.
https://fr.cppreference.com/w/cpp/container/vector
Le C et le C++ sont deux langages différents.
18 avril 2018 à 21:33
Mais justement je voulais montrer qu'un array avec une variable en parametre c'est pas possible.
Et oui tu as raison le C++ est dépourvu des VLA. (j'ai fait mes recherches ^^)
Je vais jeter un coup d'oeil sur ton lien merci
J'ai finalement opté pour une solution bien plus simple : j'ai réduit ma carte finale a 20*30 et numéroté les cases unes par unes. Comme ca un déplacement d'une case vers le haut ca me donne "x = x-20"; vers la droite "x = x+1" ...
Ca va etre loooooooooooooooong ... x')
Merci beaucoup pour l'aide c'est toujours sympa d'avoir quelqu'un a qui parler
Bonne continuation !