Advertisement
Guest User

Untitled

a guest
May 25th, 2016
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.27 KB | None | 0 0
  1. import javax.swing.JButton;
  2. import javax.swing.JLabel;
  3. import javax.swing.JPanel;
  4. import javax.swing.Timer;
  5. import javax.swing.JLabel;
  6. import javax.swing.JPanel;
  7.  
  8. import java.awt.Color;
  9. import java.awt.Font;
  10. import java.awt.Graphics;
  11. import java.awt.event.ActionEvent;
  12. import java.awt.event.ActionListener;
  13. import java.awt.event.MouseEvent;
  14. import java.awt.event.MouseListener;
  15. import java.awt.event.KeyEvent;
  16. import java.awt.event.KeyListener;
  17. import java.util.Random;
  18.  
  19.  
  20. public class ConteneurFenetre extends JPanel implements ActionListener, MouseListener, KeyListener {
  21.  
  22. int[ ][ ] tab = new int[90][90];
  23.  
  24. static int top(int i,int c, int[][]tab){
  25. int k = 0;
  26.  
  27. if(i-1>=0){
  28.  
  29. if(tab[i-1][c] == 1){
  30. k++;
  31. }
  32. }
  33.  
  34. return k;
  35. }
  36. static int bottom(int CHAMP,int i,int c, int[][]tab){
  37.  
  38. int k = 0;
  39.  
  40. if(i+1<CHAMP){
  41.  
  42. if(tab[i+1][c] == 1){
  43. k++;
  44. }
  45. }
  46.  
  47. return k;
  48. }
  49. static int left(int i,int c, int[][]tab){
  50.  
  51. int k = 0;
  52.  
  53. if(c-1>=0){
  54.  
  55. if(tab[i][c-1] == 1){
  56. k++;
  57. }
  58. }
  59.  
  60. return k;
  61. }
  62. static int right(int COL,int i,int c, int[][]tab){
  63. int k = 0;
  64.  
  65. if(c+1<COL){
  66.  
  67. if(tab[i][c+1] == 1){
  68. k++;
  69. }
  70. }
  71.  
  72. return k;
  73. }
  74. static int topleft(int i,int c, int[][]tab){
  75.  
  76. int k = 0;
  77.  
  78. if(i-1>=0 && c-1 >= 0){
  79.  
  80. if(tab[i-1][c-1] == 1){
  81. k++;
  82. }
  83. }
  84.  
  85. return k;
  86. }
  87. static int topright(int COL,int i,int c, int[][]tab){
  88.  
  89. int k = 0;
  90.  
  91. if(i-1>=0 && c+1 < COL){
  92.  
  93. if(tab[i-1][c+1] == 1){
  94. k++;
  95. }
  96. }
  97.  
  98. return k;
  99. }
  100. static int bottomleft(int CHAMP,int i,int c, int[][]tab){
  101.  
  102. int k = 0;
  103.  
  104. if(i+1<CHAMP && c-1 >=0){
  105.  
  106. if(tab[i+1][c-1] == 1){
  107. k++;
  108. }
  109. }
  110.  
  111. return k;
  112. }
  113. static int bottomright(int CHAMP,int COL,int i,int c, int[][]tab){
  114.  
  115.  
  116.  
  117. int k = 0;
  118.  
  119. if(i+1<CHAMP && c+1 <COL){
  120.  
  121. if(tab[i+1][c+1] == 1){
  122. k++;
  123. }
  124. }
  125.  
  126. return k;
  127. }
  128.  
  129. public void actionPerformed(ActionEvent e){
  130.  
  131. repaint();
  132. }
  133.  
  134. public void keyReleased(KeyEvent e) { // MouseListeners
  135.  
  136. if(e.getKeyCode() == KeyEvent.VK_SPACE){ // Appuyer sur espace pour mettre en pause / arreter
  137. if( chrono.isRunning()) { chrono.stop();}
  138. else {chrono.start();}
  139. }else if(e.getKeyCode() == KeyEvent.VK_A){ // Appuyer sur espace pour lancer le jeu
  140. chrono.start();
  141. int a = 0;
  142. int b = 0;// On remplit aléatoirement la grille
  143.  
  144.  
  145.  
  146. tab[a+5][b] = 1;
  147. tab[a+5][b+1] = 1;
  148. tab[a+5][b+2] = 1;
  149. tab[a+4][b+2] = 1;
  150. tab[a+3][b+1] = 1;
  151.  
  152.  
  153. }
  154. else if(e.getKeyCode() == KeyEvent.VK_Z){ // Appuyer sur espace pour lancer le jeu
  155. chrono.start();
  156. int a = 0;
  157. int b = 0;// On remplit aléatoirement la grille
  158.  
  159. tab[a+40][b+20] = 1;
  160. tab[a+40][b+21] = 1;
  161. tab[a+41][b+20] = 1;
  162. tab[a+41][b+21] = 1;
  163.  
  164. tab[a+39][b+64] = 1;
  165. tab[a+38][b+64] = 1;
  166. tab[a+39][b+65] = 1;
  167. tab[a+38][b+65] = 1;
  168.  
  169.  
  170. tab[a+40][b+30] = 1;
  171. tab[a+41][b+30] = 1;
  172. tab[a+42][b+30] = 1;
  173.  
  174. tab[a+39][b+31] = 1;
  175. tab[a+43][b+31] = 1;
  176.  
  177. tab[a+38][b+32] = 1;
  178. tab[a+38][b+33] = 1;
  179. tab[a+44][b+32] = 1;
  180. tab[a+44][b+33] = 1;
  181.  
  182.  
  183. tab[a+39][b+35] = 1;
  184. tab[a+43][b+35] = 1;
  185.  
  186. tab[a+40][b+36] = 1;
  187. tab[a+41][b+36] = 1;
  188. tab[a+42][b+36] = 1;
  189. tab[a+41][b+34] = 1;
  190. tab[a+41][b+37] = 1;
  191.  
  192. tab[a+38][b+40] = 1;
  193. tab[a+39][b+40] = 1;
  194. tab[a+40][b+40] = 1;
  195.  
  196. tab[a+38][b+41] = 1;
  197. tab[a+39][b+41] = 1;
  198. tab[a+40][b+41] = 1;
  199.  
  200. tab[a+37][b+42] = 1;
  201. tab[a+41][b+42] = 1;
  202.  
  203. tab[a+37][b+44] = 1;
  204. tab[a+36][b+44] = 1;
  205.  
  206. tab[a+41][b+44] = 1;
  207. tab[a+42][b+44] = 1;
  208.  
  209.  
  210. }else if(e.getKeyCode() == KeyEvent.VK_R){
  211. chrono.start();
  212. Random jx = new Random();
  213. for(int a=0; a<90 ;a++){
  214. for(int b = 0; b<90;b++){
  215. int r = jx.nextInt(8); // 2 signifie qu'une case à une chance sur 2 d'être vivante. Pour diminiuer le nombre de case vivante, il faut augmenter ce chiffre
  216. if(r == 1){ tab[a][b] = 1; }
  217. else{ tab[a][b] = 0; } } }
  218. }
  219. else if(e.getKeyCode() == KeyEvent.VK_C){
  220. for(int a=0; a<90 ;a++){
  221. for(int b = 0; b<90;b++){
  222. tab[a][b] = 0;
  223. }
  224. }
  225. }
  226. }
  227.  
  228.  
  229. static int rx(int x){
  230.  
  231. int a =(x-400)/10-((x-390)%10)/10;
  232. return a;
  233.  
  234. }
  235.  
  236. static int ry(int y){
  237. int b =(y)/10-((y)%10)/10;
  238.  
  239. return b;
  240. }
  241.  
  242. @Override
  243. public void mouseReleased(MouseEvent e) {
  244.  
  245. repaint();
  246.  
  247. }
  248.  
  249. Timer chrono = new Timer(100,this);
  250.  
  251.  
  252.  
  253. private JLabel etiquette; private JButton bouton;
  254. private JButton bouton1;
  255. Font police1 = new Font("Arial", Font.PLAIN, 50);
  256. Color pimp = new Color(255, 255, 0); //couleur RGB
  257. Font police2= new Font ("Arial", Font.ITALIC, 20);
  258. Font police3= new Font ("Arial", Font.BOLD, 25);
  259.  
  260. public ConteneurFenetre () {
  261.  
  262. super();
  263.  
  264. this.proprietesConteneur();
  265. }
  266.  
  267.  
  268. private void proprietesConteneur(){
  269.  
  270. this.setLayout(null); // On n'utilise aucun gestionnaire de disposition (positionnement absolu)
  271.  
  272. this.addKeyListener(this);
  273. this.setFocusable(true); // Permet à ConteneurFenetre d'écouter le clavier quand il a le focus
  274. this.requestFocusInWindow();
  275. this.propEtiquette();
  276. this.addMouseListener(this);
  277. }
  278.  
  279. private void propEtiquette(){
  280.  
  281. etiquette = new JLabel();
  282. this.etiquette.setBounds(20, 10, 350, 20); // Position et dimension de l'étiquette
  283. this.etiquette.setText("Texte de l'étiquette"); // Texte de l'étiquette
  284. this.add(etiquette); // Intégration de l'étiquette au conteneur
  285. }
  286.  
  287.  
  288. public static void main(String[] args) {
  289.  
  290. final Fenetre fenetrePrincipale = new Fenetre(); //Création d'un objet fenetrePrincipale de la classe Fenetre
  291. fenetrePrincipale.setVisible(true); // Rend la fenêtre visible
  292.  
  293. }
  294. public void paintComponent(Graphics g){
  295.  
  296. super.paintComponent(g);
  297.  
  298. int a,b ;
  299. g.setColor(Color.WHITE);
  300. g.fillRect(0, 00, 10000, 1100);
  301. g.setColor(Color.BLACK);
  302. g.fillRect(398, 00, 2, 1100);
  303. g.setColor(Color.BLACK);
  304. g.setFont(police1);
  305. g.drawString("Le Jeu de la Vie", 10, 100);
  306. g.setFont(police2);
  307. g.drawString( "BARROS Nicolas - BARTHE Manu", 30, 400);
  308. g.setFont(police3);
  309. g.drawString("Pressez Entrée pour démarrer", 10, 600);
  310. g.drawString("Appuyez sur Espace pour", 10, 800);
  311. g.drawString("mettre en pause", 50, 850);
  312. // Notre blase
  313.  
  314. int CHAMP = 90;
  315. int COL = 90;
  316. int sumk = 0;
  317.  
  318. int [][] newtab = new int [CHAMP][COL];
  319. for(int i=0; i<CHAMP ;i++){
  320. for(int c = 0; c<COL;c++){
  321.  
  322. sumk = bottom(CHAMP,i,c,tab) + top(i,c,tab) + left(i,c,tab) + right(COL,i,c,tab) + topleft(i,c,tab)+ topright(COL,i,c,tab) + bottomleft(CHAMP,i,c,tab)+ bottomright(CHAMP,COL,i,c,tab);
  323.  
  324. if(sumk < 2 && tab[i][c] == 1){newtab[i][c] = 0;}
  325. else if(sumk > 3 && tab[i][c] == 1){newtab[i][c] = 0;}
  326. else if(sumk == 3 && tab[i][c] == 0){newtab[i][c] = 1;}
  327. else if(sumk == 3 | sumk == 2 && tab[i][c] == 1){newtab[i][c] = 1;}
  328. else{ newtab[i][c] = tab[i][c];}
  329.  
  330. }
  331. }
  332.  
  333. tab = newtab;
  334.  
  335. for(a = 0; a<90;a++){
  336. for(b = 0; b<90;b++){
  337. if(tab[b][a] == 1){
  338. g.setColor(Color.BLACK);
  339. g.fillRect(400+a*10,10+b*10, 10, 10);
  340. }else if(tab[b][a] == 0){
  341. g.setColor(Color.WHITE);
  342. g.fillRect(400+a*10,10+b*10, 10, 10);
  343. }
  344.  
  345. }
  346. }
  347.  
  348.  
  349. }
  350. @Override
  351. public void mouseClicked(MouseEvent e) {
  352.  
  353. // TODO Auto-generated method stub
  354.  
  355. }
  356. @Override
  357. public void mouseEntered(MouseEvent e) {
  358. // TODO Auto-generated method stub
  359.  
  360. }
  361. @Override
  362. public void mouseExited(MouseEvent e) {
  363. // TODO Auto-generated method stub
  364.  
  365. }
  366. @Override
  367. public void mousePressed(MouseEvent e) {
  368. // TODO Auto-generated method stub
  369.  
  370. }
  371.  
  372.  
  373. public void keyPressed(KeyEvent arg0) {
  374. // TODO Auto-generated method stub
  375.  
  376. }
  377. @Override
  378. public void keyTyped(KeyEvent arg0) {
  379. // TODO Auto-generated method stub
  380.  
  381. }
  382.  
  383. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement