[C] Déplacement d'un caractères

Fermé
allstarwe Messages postés 9 Date d'inscription jeudi 5 novembre 2015 Statut Membre Dernière intervention 23 novembre 2015 - 23 nov. 2015 à 20:47
[Dal] Messages postés 6203 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 29 janvier 2025 - 24 nov. 2015 à 18:25
Bonsoir oui c'est encore moi, j'arrive bientôt à la fin de mon projet (qui consistait à crée un rond point et de faire circuler des voitures), je bug sur deux gros problèmes :/ qui sont :
- J'arrive à générer aléatoirement à l'aide d'un rand une lettre (N S E ou O) puis à déplacer cette lettre suivant sa destination mais je veux qu'une fois cette lettre avancé d'une case (par exemple [5][0] étant sa case initiale et dès que cette lettre est à [5][1] je veux générer une autre lettre à [5][0] et ainsi de suite => crée une boucle infinie)
- Mon rond point contient deux entrée dans le Nord, Sud etc.. comme en vrai : or j'arrive pas à déplacer les deux voitures partant de la voie de droite et de gauche en même temps, mn programme déplace d'abord celle partant de droite et une fois arrivée il déplace celle de gauche ...

Mon rond point en image :


Mon code :
https://pastebin.com/YZJyiZik

Si vous pouviez m'aidé merci :)
A voir également:

1 réponse

[Dal] Messages postés 6203 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 29 janvier 2025 1 099
Modifié par [Dal] le 24/11/2015 à 18:31
Salut allstarwe,

Je n'ai pas un envie folle de déboguer tes 300 lignes de code, surtout que tu ne suis pas mes conseils sur les structures de données utilisées, ni sur le fait que ne pas poster ton code sur le forum soit problématique.

Pour info, ton code, chez moi, ne compile pas :

$ gcc -Wall allstarwe_02.c
allstarwe_02.c: In function `deplacement1':
allstarwe_02.c:211:6: warning: unused variable `i' [-Wunused-variable]
int i = 0, j = 0;
^
allstarwe_02.c: In function `deplacement2':
allstarwe_02.c:228:6: warning: unused variable `i' [-Wunused-variable]
int i = 0, j = 0;
^
allstarwe_02.c: In function `movingCarsFromWest':
allstarwe_02.c:247:13: warning: unused variable `j' [-Wunused-variable]
int i = 0, j = 0;
^
allstarwe_02.c:247:6: warning: unused variable `i' [-Wunused-variable]
int i = 0, j = 0;
^
allstarwe_02.c: At top level:
allstarwe_02.c:269:5: warning: second argument of `main' should be `char **' [-Wmain]
int main (int argc, int **argv) {
^
allstarwe_02.c: In function `main':
allstarwe_02.c:274:23: error: `vehicule' undeclared (first use in this function)
movingCarsFromWest (vehicule);
^
allstarwe_02.c:274:23: note: each undeclared identifier is reported only once for each function it appears in

Hormis le fait que tu devrais t'inquiéter de déclarer "vehicule" avant le passer en argument à ta fonction
movingCarsFromWest()
, (et, par ailleurs, accessoirement, prendre en compte les warnings du compilateur), tu devrais oublier ton code et simplement penser à ton algorithme pour résoudre les problèmes que tu mentionnes dans ta question et ... ne te replonger dans ton code que quand tu as les idées claires sur l'algorithme que tu utilises.

A première vue, une succession d'étapes comme ceci me parait plus adaptée à ce que tu décris dans ton message d'aujourd'hui :

1. initialiser la structure de données servant à représenter le décor
2. ajouter une voiture dans un tableau de voitures
3. afficher le décor et les voitures
4. déplacer les coordonnées des voitures dans le tableau de voitures
5. effacer l'écran
6. boucler sur 2.

Je ne comprends pas très bien où vont tes voitures une fois qu'elles ont fait leur trajet, mais tu devrais gérer aussi la capacité du tableau de voitures d'une façon cohérente avec ton problème et les ressources mémoire que tu utilises.


Dal
0