Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2692 connectés 

  FORUM HardWare.fr
  Programmation
  C

  démineur en C

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

démineur en C

n°1578493
sirius@880​0gtx
Posté le 24-06-2007 à 13:50:08  profilanswer
 

Bonjour a tous...
Je dois faire un démineur en C j'ai donc mis en place: distribution aléatoire des mines et compter les mines autour de chaque case. On fera l'affichage après mais là on a des problèmes lors de la compilation et malgrès avoir cherché on ne trouve pas quelles sont ces erreurs...
Pourriez vous m'aider s'il vous plait?
Le début du programme est:
 

Code :
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include "aleat.h"
  4. #include "allegro.h"
  5. #include <time.h>
  6. //distribution des mines  
  7. int alea(int borninf,int bornsup)
  8. {
  9. return((rand())%(bornsup-borninf+1)+borninf);
  10. }
  11. void distrib_mines(int tableau, int g, int h)
  12. {
  13. int nb_mines;
  14. int a,b,c,d;
  15. nb_mines=alea(1,g);
  16. for(b=0; b=nb_mines;b++)
  17. {
  18. c=alea(0,g);
  19. d=alea(0,h);
  20. if(tableau[c][d]!=9);
  21. {
  22. tableau[c][d]=9;
  23. }
  24. else
  25. {
  26. b=b-1;
  27. }
  28. }
  29. }
  30. //mines autour  
  31. mines_autour(int tabelo,int to,int z)
  32. {
  33. int e,f;
  34. for(e=1;e=to;e++)
  35. {
  36. for(f=1;f=z;f++)
  37. {
  38. if(tabelo[e][f+1]==9)
  39. {
  40. tabelo[e][f]=tabelo[e][f]++;
  41. }
  42. if(tabelo[e][f-1]==9)
  43. {
  44. tabelo[e][f]=tabelo[e][f]++;
  45. }
  46. if(tabelo[e+1][f]==9)
  47. {
  48. tabelo[e][f]=tabelo[e][f]++;
  49. }
  50. if(tabelo[e+1][f+1]==9)
  51. {
  52. tabelo[e][f]=tabelo[e][f]++;
  53. }
  54. if(tabelo[e+1][f-1]==9)
  55. {
  56. tabelo[e][f]=tabelo[e][f]++;
  57. }
  58. if(tabelo[e-1][f]==9)
  59. {
  60. tabelo[e][f]=tabelo[e][f]++;
  61. }
  62. if(tabelo[e-1][f+1]==9)
  63. {
  64. tabelo[e][f]=tabelo[e][f]++;
  65. }
  66. if(tabelo[e-1][f-1]==9)
  67. {
  68. tabelo[e][f]=tabelo[e][f]++;
  69. }
  70. }
  71. }
  72. }
  73. void jeu()
  74. {
  75. int i,j,v,w;
  76. int mines[i][j];
  77. int affiche[v][w];
  78. distrib_mines(mines,i,j);
  79. mines_autour(i,j);
  80. }
  81. main (char **argv, int argc)
  82. {
  83. allegro_init(); //initialisation de la bibliothèque  
  84. if(install_mouse())
  85. { //initialisation de la souris  
  86. printf("Erreur_souris" );
  87. return;
  88. }
  89. if(install_keyboard())
  90. { //initialisation du clavier  
  91. printf("Erreur clavier" );
  92. return;
  93. }
  94. if(install_timer())
  95. { //initialisation des timers  
  96. printf("Erreur sur les timers" );
  97. return;
  98. }
  99. set_color_depth(8); //256 couleurs possibles  
  100. if(set_gfx_mode(GFX_AUTODETEC_WINDOWED, 320, 200, 0, 0))
  101. {
  102. printf("Erreur sur le graphisme" );
  103. return;
  104. }
  105. clear(screen); //on efface la fenêtre de résolution  
  106. 320*200
  107. jeu(); //démarage du jeu  
  108. allegro_exit();
  109. return;
  110. }
  111. END_OF_MAIN(); //pour certaines plates-formes

mood
Publicité
Posté le 24-06-2007 à 13:50:08  profilanswer
 

n°1578556
olivthill
Posté le 24-06-2007 à 18:36:44  profilanswer
 

Ce qui est bien avec les compilateurs, c'est non seulement qu'ils indiquent la présence d'erreurs, mais qu'en plus ils donnent des rensiegnements sur les erreurs trouvées.
Là, c'est juste par oubli que vous ne nous donnez pas les messages d'erreur ou est-ce parce que sinon ce serait trop facile ?
 
Par ailleurs, dans le programme je vois ceci :

tabelo[e][f]=tabelo[e][f]++;


C'est bizarre, je m'attendais à avoir plutôt

tabelo[e][f]++;
ou
tabelo[e][f] = tabelo[e][f] + 1;


Message édité par olivthill le 24-06-2007 à 18:37:31
n°1578601
sirius@880​0gtx
Posté le 24-06-2007 à 22:41:09  profilanswer
 

Bonsoir, pour les infos données par le compilateur je ne les aies pas postées car je ne pourrais pas les re-avoir avant demain (je les ajouterai ) et sinon merci pour la première erreur que je vais m'empresser de corriger!

n°1578806
Minada
PSN : minada69
Posté le 25-06-2007 à 13:36:18  profilanswer
 

Toutes tes boucles sont de la forme :
 

Code :
  1. for(b=0; b=nb_mines;b++)


 
Ce ne serait pas mieux comme ça :
 

Code :
  1. for(b=0; b<nb_mines;b++)

n°1578943
sirius@880​0gtx
Posté le 25-06-2007 à 16:40:03  profilanswer
 

en effet un < ou un == étaient plus adaptés, merci de votre aide j'ai finalement trouvé quelqu'un dans mes connaissances pour corriger le programme et par conséquent il ne me reste plus que l'affichage a faire ;)

n°1578999
AthlonSold​ier
Feel the power
Posté le 25-06-2007 à 19:04:30  profilanswer
 

Clairement pas  :sweat:  
< c'est pas pareil que ==  :sweat:  
 
Et mettre un '=', oula  :sweat:

n°1579695
Nico-teeN
Posté le 27-06-2007 à 00:20:26  profilanswer
 

Euh ça veut dire quoi un seul =? (j'imagine que si on utilise == c'est que = a une autre signification non?)

n°1579701
AthlonSold​ier
Feel the power
Posté le 27-06-2007 à 01:38:11  profilanswer
 

'=' est l'operateur d'affectation. Exemple : a = 5;
'==' est l'operateur de comparaison : Exemple : if (a == 5) a = 6;
 
 :o
 
Dans certains langages, l'opérateur '=' est à la fois opérateur d'affectation et de comparaison...le compilateur fera alors automatiquement la différence en fonction du cas...


Message édité par AthlonSoldier le 27-06-2007 à 01:39:16
n°1579731
_darkalt3_
Proctopathe
Posté le 27-06-2007 à 09:12:26  profilanswer
 

Nico-teeN a écrit :

Euh ça veut dire quoi un seul =? (j'imagine que si on utilise == c'est que = a une autre signification non?)


Ouvre un livre avant de poser des question pareils.


---------------
Töp of the plöp
n°1579868
Sve@r
Posté le 27-06-2007 à 12:47:01  profilanswer
 

Nico-teeN a écrit :

Euh ça veut dire quoi un seul =? (j'imagine que si on utilise == c'est que = a une autre signification non?)


 
Ouaouh  :pt1cable: !!! T'es venu dans la cat. C parce qu'il y avait de la lumière ???
Ta question est du même niveau qu'un type qui arrive dans un congrès d'aviation et qui demande "euh, mais c'est vraiment utile qu'un avion ait 2 ailes ???" [:rofl]

Message cité 1 fois
Message édité par Sve@r le 27-06-2007 à 12:47:34

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
mood
Publicité
Posté le 27-06-2007 à 12:47:01  profilanswer
 

n°1580122
Nico-teeN
Posté le 27-06-2007 à 20:20:31  profilanswer
 

Sve@r a écrit :

Ouaouh  :pt1cable: !!! T'es venu dans la cat. C parce qu'il y avait de la lumière ???
Ta question est du même niveau qu'un type qui arrive dans un congrès d'aviation et qui demande "euh, mais c'est vraiment utile qu'un avion ait 2 ailes ???" [:rofl]


 
Nan c'est du niveau d'un type qui voit un avion avec une seule aile et qui comprend pas comment ça fonctionne

n°1582092
Profil sup​primé
Posté le 03-07-2007 à 18:45:43  answer
 

bien répondu, en plus, cette erreur est fréquente chez les debutants !
(excuse moi Nico-teeN si tu n'es pas debutant ;) )


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  démineur en C

 

Sujets relatifs
[C#] [Résolu] Comment communiquer avec une dll c++[C] Des accolades "just pour le fun" ?
demineur clic droit C++Le demineur
Bots pour démineurJeu DEMINEUR:algo ki affiche toutes les cases vides à partir du click
Démineur en java avec swingDémineur en basic
[demineur] question à deux ballesun demineur en java ??
Plus de sujets relatifs à : démineur en C


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)