Se connecter / S'enregistrer
Votre question

Besoin de comprendre les lignes de code d'un programme snake (le petit jeux de serpent qui mange les pommes) fait en java.

Tags :
  • game
  • Java
Dernière réponse : dans Programmation
10 Mai 2013 17:04:50

Problématique de mon post :
Faire un projet (en java) comme celui la (je parle du petit serpent qui mange les pommes et sa taille s'agrandie en faisant ça) quand on est a la fac et on a une semestre de dette avec plein de matières a valider est vraiment presque impossible c'est pour ça que je me sens dans un cas vraiment redoutable.

aujourd'hui je pose un code d'un jeux programmer en java (compilable) que j'arrive pas a comprendre ses lignes de codes et c'est pour ça que j'ai besoin d'aide pour avoir les commentaires pour chaque ligne de code de mon snake.

  1. import java.awt.Color;
  2. import java.awt.Point;
  3. public class Snake3
  4. {
  5. /*static class Snake
  6. {
  7. Point[][] body;
  8. Color clr;
  9. int direction;
  10. }
  11. */
  12. /*public static void bouger(Color[][] grille,int x,int y)
  13. {
  14. grille[x+dx][y+dy] = Color.red;
  15. }
  16. */
  17. public static int pointa()
  18. {
  19. int a;
  20. a = (int)(Math.random()*100);
  21. if(a==0||a==99)
  22. a=50;
  23. return a;
  24. }
  25. public static int pointb()
  26. {
  27. int b;
  28. b = (int)(Math.random()*50);
  29. if(b==0||b==49)
  30. b=25;
  31. return b;
  32. }
  33. public static boolean food(Color[][] grille,int x,int y,int i,int j)
  34. {
  35. if(x == i & y == j)
  36. {
  37. return true;
  38. }
  39. else
  40. {
  41. return false;
  42. }
  43. }
  44. public static void tete(Color[][] grille,int x ,int y)
  45. {
  46. grille[x][y] = Color.red;
  47. }
  48. /*public static void corp(Color[][] grille,int a ,int b)
  49. {
  50. grille[a][b] = Color.gray;
  51. }*/
  52. public static void effacer(Color[][] grille,int x ,int y)
  53. {
  54. grille[x][y] = Color.white;
  55. }
  56. /*
  57. public static void Key(InterfaceSnake is,Color[][] grille,int key,int x,int y)
  58. {
  59. int dx,dy;
  60. dx = dy = 0;
  61. //effacer(tete(grille,x,y,dx,dy),x,y);
  62. key = is.pressedKey();
  63. if(key == 1)
  64. {
  65. effacer(grille,x,y);
  66. x = x-1;
  67. tete(grille,x,y);
  68. }
  69. if(key == 2)
  70. {
  71. effacer(grille,x,y);
  72. x = x+1;
  73. tete(grille,x,y);
  74. }
  75. if(key == 3)
  76. {
  77. effacer(grille,x,y);
  78. y = y+1;
  79. tete(grille,x,y);
  80. }
  81. if(key == 4)
  82. {
  83. effacer(grille,x,y);
  84. y = y-1;
  85. tete(grille,x,y);
  86. }
  87.  
  88.  
  89. is.refresh();
  90. }
  91. */
  92. public static Color[][] mur()
  93. {
  94. Color[][] grille = new Color[100][50];
  95. for(int i = 0;i<grille.length;i++)
  96. {
  97. for(int j = 0;j<grille[i].length;j++)
  98. {
  99. if(i==0||j==0||i==grille.length-1||j==grille[i].length-1)
  100. {
  101. grille[i][j] = Color.gray;
  102. }
  103. else
  104. {
  105. grille[i][j] = Color.white;
  106. }
  107. }
  108. }
  109. return grille;
  110. }
  111. public static boolean touchmur(InterfaceSnake is,Color[][] grille,int x,int y)
  112. {
  113. /*for(int i = 0;i<grille.length;i++)
  114. {
  115. for(int j = 0;j<grille[i].length;j++)
  116. {
  117. if(grille[i][j] == Color.gray && x == i && y == j)
  118. {
  119. is.afficheMessage("mort");
  120. return false;
  121. }
  122. }
  123. }*/
  124. for(int i = 0;i<grille.length;i++)
  125. {
  126. for(int j = 0;j<grille[i].length;j++)
  127. {
  128. if(i==0||j==0||i==grille.length-1||j==grille[i].length-1)
  129. {
  130. if(x == i & y == j)
  131. {
  132. return false;
  133. }
  134. }
  135.  
  136. }
  137. }
  138. return true;
  139. }
  140. public static void control(InterfaceSnake is,Color[][] grille,int x ,int y)
  141. {
  142. int key,dir,dx,dy,i,j,score,time;
  143. boolean game = true;
  144. dir = 2;
  145. dx = 1;
  146. dy = 0;
  147. i = pointa();
  148. j = pointb();
  149. score = 0;
  150. time = 1000;
  151. while(game == true)
  152. {
  153. grille[i][j] = Color.green;
  154. /*if(score == 0)
  155. {
  156. effacer(grille,x,y);
  157. }
  158. else
  159. {
  160. effacer(grille,x-dx,y-dy);
  161. }*/
  162. effacer(grille,x,y);
  163. x = x + dx;
  164. y = y + dy;
  165. tete(grille,x,y);
  166. try{Thread.sleep(time);}
  167. key = is.pressedKey();
  168. if(key == 1 && dir !=2)
  169. {
  170. effacer(grille,x,y);
  171. x = x-1;
  172. tete(grille,x,y);
  173. dir = 1;
  174. dx = -1;
  175. dy = 0;
  176. }
  177. if(key == 2 && dir !=1)
  178. {
  179. effacer(grille,x,y);
  180. x = x+1;
  181. tete(grille,x,y);
  182. dir = 2;
  183. dx = 1;
  184. dy = 0;
  185. }
  186. if(key == 3 && dir !=4)
  187. {
  188. effacer(grille,x,y);
  189. y = y+1;
  190. tete(grille,x,y);
  191. dir = 3;
  192. dx = 0;
  193. dy = +1;
  194. }
  195. if(key == 4 && dir !=3)
  196. {
  197. effacer(grille,x,y);
  198. y = y-1;
  199. tete(grille,x,y);
  200. dir = 4;
  201. dx = 0;
  202. dy = -1;
  203. }
  204. if(touchmur(is,grille,x,y) == false)
  205. {
  206. is.afficheMessage("game over");
  207. game = false;
  208. }
  209. if(food(grille,x,y,i,j))
  210. {
  211. i = pointa();
  212. j = pointb();
  213. score++;
  214. if(score == 5)
  215. {
  216. is.afficheMessage("level 2");
  217. time =(int)(time*(0.8));
  218. score = 0;
  219. grille = mur();
  220. is.changeGrille(grille);
  221. }
  222. if(score == 10)
  223. {
  224. is.afficheMessage("level 3");
  225. time =(int)(time*(0.8));
  226. score = 0;
  227. }
  228. if(score == 15)
  229. {
  230. is.afficheMessage("level 4");
  231. time =(int)(time*(0.8));
  232. score = 0;
  233. }
  234. }
  235. /*if(x == 99)
  236. {
  237. effacer(grille,x,y);
  238. x = 1;
  239.  
  240. }
  241. if(x == 0)
  242. {
  243. effacer(grille,x,y);
  244. x = 99;
  245. }
  246. if(y <= 0)
  247. {
  248. effacer(grille,x,y);
  249. y = 48;
  250. }
  251. if(y >= 49)
  252. {
  253. effacer(grille,x,y);
  254. y = 0;
  255. }*/
  256. is.refresh();
  257. }
  258. }
  259. public static void main(String args[])
  260. {
  261. Color[][] grille = new Color[100][50];
  262. /* ajouter une boucle qui s'éxécute jusqu'à tant que que la partie sois perdu (mur heurté) qui
  263. * redessine tout le contenu de la grille (case vide, la nourriture, le corp et la tête du serpent),
  264. * et qui teste si la tête du serpent se trouve à la même position qu' un tas de nourriture ou qu'un mur
  265. */
  266. for(int i = 0;i<grille.length;i++)
  267. {
  268. for(int j = 0;j<grille[i].length;j++)
  269. {
  270. grille[i][j] = Color.white;
  271. }
  272. }
  273. InterfaceSnake is = new InterfaceSnake(grille);
  274.  
  275. boolean game;
  276. int x,y,key,dx;
  277. dx = 0;
  278. x = 20;
  279. y = 20;
  280. game = true;
  281.  
  282. is.setText("xiu");
  283. control(is,grille,pointa(),pointb());
  284.  
  285.  
  286. }
  287. }


merci d'avance :) 

Autres pages sur : besoin comprendre lignes code programme snake petit jeux serpent mange pommes fait java

11 Mai 2013 19:34:02

???? Sa sens le code choper sur le net, et tu veux que l'on te l'explique de A a Z pour pas que tu passe pour un *** le jours de rendu ????

tu auras tous les réponses ici : http://java.developpez.com/cours/
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS