[C] Modifier un tableau existant ... pour bouger un pion !

Modifier un tableau existant ... pour bouger un pion ! [C] - C - Programmation

Marsh Posté le 26-10-2011 à 15:35:55    

Bonjour, dans le cadre d'un projet, je dois faire un jeu sur plateau style échec mais différent. Je bloque au moment, si qqn peut m'apporter un peu d'aide ...
 
Je bosse sous CodeBlocks, en C, et ... sous console. J'ai défini mon tableau dans le main. J'ai un sous programme en void qui m'initialise le tableau (mettre des espace, faire le contour des cases ... un tableau 21 lignes, 41 colonnes donne un tableau 5 5 pour l'utilisateur dans la console. Tout ça pour que ça soit jolie un minimum). Mon but ultime serait de déplacer des pions sur ce tableau au bon vouloir de l'utilisateur. Je pense que si l'utilisateur rentre, pour l'instant, un pion en (1,5) et que ça me place le pion au bonne endroit ça sera déjà très bien. (Dans le sens que j'ai l'impression que c'est le plus dure à faire, après on blinde a mort pour vérifier qu'il y est bien un pion, qu'on peut bien le déplacer ... enfin tout ça).
 
Voila comment je fonctionne :  
J'ai déclaré mon tableau dans le main avec char tabplateau[21][41];
Je l'initialise par des espaces d'abord partout (grâce à deux boucles for) puis je remplie les endroits que je veux avec des bordures en ASCII. Tout ça dans un void vtabplateau(char tabplateau[21][41])
J'ai aussi posé un void pvtabplateau(char tabplateau[21][41]) qui affiche le tableau et les numéro des colonnes avec des printfs (et un gotoligcol( qui pose le pointeur là ou on veut) pour tracet le tableau au bonne endroit sur ma console).
Tout ça est dans un .c, prototypes ok dans le .h.
Après il y a un enchainement de sous programme qui appel d'autre sous programme ... (Menu, noms des joueurs ...) puis qui demande : vtabplateau(tabplateau); puis pvtabplateau(tabplateau); LA TOUT S'AFFICHE NIKEL , j'ai un menu a gauche et si l'utilisateur presse e : ça lance : vcurse(tabplateau); On demande le numéro de ligne et de colonne du tableau 5 5 a l'utilisateur. Il rentre l'info et ça plante.  
Je n'ai aucun Warnings.
 
Mettre tout le code de tout mon programme sera impossible pour plusieurs raisons :  
- Mon école scan les sites web et déjà la je m'expose ... car j'ai dévoilé une partie de mon code et donc le bot pourrait croire que mon truc vient du net.
- On est 400 à bosser dessus, et à devoir le rendre dans une semaine ...
- Mon code est un peu long et sera difficilement lisible sur un Forum.
 
Ma question est de savoir si une âme charitable pourrait relire mon code (sachant que j'ai bien indiqué ou il y avait l'erreur dans les commentaires) et me dire que faire si je lui envoi mon code en MP ?
 
Je comprends très bien que ce n'est pas dans la charte du Forum (c'est un problème perse et non pas pour une communauté ...) , mais je suis en désespoir tout seul chez moi à galerer ... Je panique il me reste qu'une semaine et j'ai encore un IA a créer ... et des déplacements à blinder.
 
Par avance merci !  
 
PS : a la fin du projet, je veux bien le rendre lisible à tous sur le Forum.

Reply

Marsh Posté le 26-10-2011 à 15:35:55   

Reply

Marsh Posté le 26-10-2011 à 16:51:01    

Citation :

Je comprends très bien que ce n'est pas dans la charte du Forum (c'est un problème perse et non pas pour une communauté ...) , mais je suis en désespoir tout seul chez moi à galerer ... Je panique il me reste qu'une semaine et j'ai encore un IA a créer ... et des déplacements à blinder.

Non non, c'est dans la charte du forum, aider les étudiants qui bossent et sont bloqués dans leur projets.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 26-10-2011 à 17:06:00    

Et bien j'ai lu la charte et je trouve ma demande déplacé. Enfin si qqn est volontaire, je suis preneur.
Actuellement, il semble que c'est parce que je n'utilise pas de pointeur. Quand un sous programme est terminée il efface ce qu'il a en mémoire (ou un truc comme ça ...).
Je relis le livre du site du Zero en attendant, je vais arriver à la section pointeur bientôt ...
 
Merci

Reply

Marsh Posté le 26-10-2011 à 19:24:21    

hum, qu'appelles tu un sous programme ?
 
Si tu veux parler d'une fonction, effectivement, lorsque la fonction retourne, toutes les variables locales à la fonction sont détruites.  
 
Mais en réalité, cela vient d'une règle générale du C : la portée des variables. Une variable n'existe que dans le bloc où elle est créée ( et donc détruite à la fin du bloc ) , sauf dans 2 cas : une variable allouée dynamiquement ( via malloc ), ou bien avec le mot clé static ( qui lui donne une durée de vie durant tout le programme, sans changer sa portée ).
 
Cela fait partie des bases du C.
 
 
De plus, tu dis que ton code plante à un endroit.  
 
 1. Il faudrait que tu postes ce code pour qu'on y regarde
 2. as tu déjà utilisé un debuggueur ? C'est le premier truc qu'on doit savoir utiliser lorsqu'on crée un programme. codeblocks a des outils pour debugguer, tu devrais pouvoir t'en sortir.
 
Pour finir, l'histoire du bot qui scanne , pourquoi pas, mais si c'est ta seule inquiétude, c'est pas compliqué de rajouter des fausses lignes en commentaire, et changer les noms de variables, je doute que le bot soit suffisamment intelligent pour détecter l'entourloupe, donc pas de pb pour poster du code.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed