Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import javax.swing.JButton;
- import javax.swing.JLabel;
- import javax.swing.JPanel;
- import javax.swing.Timer;
- import javax.swing.JLabel;
- import javax.swing.JPanel;
- import java.awt.Color;
- import java.awt.Font;
- import java.awt.Graphics;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.awt.event.MouseEvent;
- import java.awt.event.MouseListener;
- import java.awt.event.KeyEvent;
- import java.awt.event.KeyListener;
- import java.util.Random;
- public class ConteneurFenetre extends JPanel implements ActionListener, MouseListener, KeyListener {
- int[ ][ ] tab = new int[90][90];
- static int top(int i,int c, int[][]tab){
- int k = 0;
- if(i-1>=0){
- if(tab[i-1][c] == 1){
- k++;
- }
- }
- return k;
- }
- static int bottom(int CHAMP,int i,int c, int[][]tab){
- int k = 0;
- if(i+1<CHAMP){
- if(tab[i+1][c] == 1){
- k++;
- }
- }
- return k;
- }
- static int left(int i,int c, int[][]tab){
- int k = 0;
- if(c-1>=0){
- if(tab[i][c-1] == 1){
- k++;
- }
- }
- return k;
- }
- static int right(int COL,int i,int c, int[][]tab){
- int k = 0;
- if(c+1<COL){
- if(tab[i][c+1] == 1){
- k++;
- }
- }
- return k;
- }
- static int topleft(int i,int c, int[][]tab){
- int k = 0;
- if(i-1>=0 && c-1 >= 0){
- if(tab[i-1][c-1] == 1){
- k++;
- }
- }
- return k;
- }
- static int topright(int COL,int i,int c, int[][]tab){
- int k = 0;
- if(i-1>=0 && c+1 < COL){
- if(tab[i-1][c+1] == 1){
- k++;
- }
- }
- return k;
- }
- static int bottomleft(int CHAMP,int i,int c, int[][]tab){
- int k = 0;
- if(i+1<CHAMP && c-1 >=0){
- if(tab[i+1][c-1] == 1){
- k++;
- }
- }
- return k;
- }
- static int bottomright(int CHAMP,int COL,int i,int c, int[][]tab){
- int k = 0;
- if(i+1<CHAMP && c+1 <COL){
- if(tab[i+1][c+1] == 1){
- k++;
- }
- }
- return k;
- }
- public void actionPerformed(ActionEvent e){
- repaint();
- }
- public void keyReleased(KeyEvent e) { // MouseListeners
- if(e.getKeyCode() == KeyEvent.VK_SPACE){ // Appuyer sur espace pour mettre en pause / arreter
- if( chrono.isRunning()) { chrono.stop();}
- else {chrono.start();}
- }else if(e.getKeyCode() == KeyEvent.VK_A){ // Appuyer sur espace pour lancer le jeu
- chrono.start();
- int a = 0;
- int b = 0;// On remplit aléatoirement la grille
- tab[a+5][b] = 1;
- tab[a+5][b+1] = 1;
- tab[a+5][b+2] = 1;
- tab[a+4][b+2] = 1;
- tab[a+3][b+1] = 1;
- }
- else if(e.getKeyCode() == KeyEvent.VK_Z){ // Appuyer sur espace pour lancer le jeu
- chrono.start();
- int a = 0;
- int b = 0;// On remplit aléatoirement la grille
- tab[a+40][b+20] = 1;
- tab[a+40][b+21] = 1;
- tab[a+41][b+20] = 1;
- tab[a+41][b+21] = 1;
- tab[a+39][b+64] = 1;
- tab[a+38][b+64] = 1;
- tab[a+39][b+65] = 1;
- tab[a+38][b+65] = 1;
- tab[a+40][b+30] = 1;
- tab[a+41][b+30] = 1;
- tab[a+42][b+30] = 1;
- tab[a+39][b+31] = 1;
- tab[a+43][b+31] = 1;
- tab[a+38][b+32] = 1;
- tab[a+38][b+33] = 1;
- tab[a+44][b+32] = 1;
- tab[a+44][b+33] = 1;
- tab[a+39][b+35] = 1;
- tab[a+43][b+35] = 1;
- tab[a+40][b+36] = 1;
- tab[a+41][b+36] = 1;
- tab[a+42][b+36] = 1;
- tab[a+41][b+34] = 1;
- tab[a+41][b+37] = 1;
- tab[a+38][b+40] = 1;
- tab[a+39][b+40] = 1;
- tab[a+40][b+40] = 1;
- tab[a+38][b+41] = 1;
- tab[a+39][b+41] = 1;
- tab[a+40][b+41] = 1;
- tab[a+37][b+42] = 1;
- tab[a+41][b+42] = 1;
- tab[a+37][b+44] = 1;
- tab[a+36][b+44] = 1;
- tab[a+41][b+44] = 1;
- tab[a+42][b+44] = 1;
- }else if(e.getKeyCode() == KeyEvent.VK_R){
- chrono.start();
- Random jx = new Random();
- for(int a=0; a<90 ;a++){
- for(int b = 0; b<90;b++){
- 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
- if(r == 1){ tab[a][b] = 1; }
- else{ tab[a][b] = 0; } } }
- }
- else if(e.getKeyCode() == KeyEvent.VK_C){
- for(int a=0; a<90 ;a++){
- for(int b = 0; b<90;b++){
- tab[a][b] = 0;
- }
- }
- }
- }
- static int rx(int x){
- int a =(x-400)/10-((x-390)%10)/10;
- return a;
- }
- static int ry(int y){
- int b =(y)/10-((y)%10)/10;
- return b;
- }
- @Override
- public void mouseReleased(MouseEvent e) {
- repaint();
- }
- Timer chrono = new Timer(100,this);
- private JLabel etiquette; private JButton bouton;
- private JButton bouton1;
- Font police1 = new Font("Arial", Font.PLAIN, 50);
- Color pimp = new Color(255, 255, 0); //couleur RGB
- Font police2= new Font ("Arial", Font.ITALIC, 20);
- Font police3= new Font ("Arial", Font.BOLD, 25);
- public ConteneurFenetre () {
- super();
- this.proprietesConteneur();
- }
- private void proprietesConteneur(){
- this.setLayout(null); // On n'utilise aucun gestionnaire de disposition (positionnement absolu)
- this.addKeyListener(this);
- this.setFocusable(true); // Permet à ConteneurFenetre d'écouter le clavier quand il a le focus
- this.requestFocusInWindow();
- this.propEtiquette();
- this.addMouseListener(this);
- }
- private void propEtiquette(){
- etiquette = new JLabel();
- this.etiquette.setBounds(20, 10, 350, 20); // Position et dimension de l'étiquette
- this.etiquette.setText("Texte de l'étiquette"); // Texte de l'étiquette
- this.add(etiquette); // Intégration de l'étiquette au conteneur
- }
- public static void main(String[] args) {
- final Fenetre fenetrePrincipale = new Fenetre(); //Création d'un objet fenetrePrincipale de la classe Fenetre
- fenetrePrincipale.setVisible(true); // Rend la fenêtre visible
- }
- public void paintComponent(Graphics g){
- super.paintComponent(g);
- int a,b ;
- g.setColor(Color.WHITE);
- g.fillRect(0, 00, 10000, 1100);
- g.setColor(Color.BLACK);
- g.fillRect(398, 00, 2, 1100);
- g.setColor(Color.BLACK);
- g.setFont(police1);
- g.drawString("Le Jeu de la Vie", 10, 100);
- g.setFont(police2);
- g.drawString( "BARROS Nicolas - BARTHE Manu", 30, 400);
- g.setFont(police3);
- g.drawString("Pressez Entrée pour démarrer", 10, 600);
- g.drawString("Appuyez sur Espace pour", 10, 800);
- g.drawString("mettre en pause", 50, 850);
- // Notre blase
- int CHAMP = 90;
- int COL = 90;
- int sumk = 0;
- int [][] newtab = new int [CHAMP][COL];
- for(int i=0; i<CHAMP ;i++){
- for(int c = 0; c<COL;c++){
- 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);
- if(sumk < 2 && tab[i][c] == 1){newtab[i][c] = 0;}
- else if(sumk > 3 && tab[i][c] == 1){newtab[i][c] = 0;}
- else if(sumk == 3 && tab[i][c] == 0){newtab[i][c] = 1;}
- else if(sumk == 3 | sumk == 2 && tab[i][c] == 1){newtab[i][c] = 1;}
- else{ newtab[i][c] = tab[i][c];}
- }
- }
- tab = newtab;
- for(a = 0; a<90;a++){
- for(b = 0; b<90;b++){
- if(tab[b][a] == 1){
- g.setColor(Color.BLACK);
- g.fillRect(400+a*10,10+b*10, 10, 10);
- }else if(tab[b][a] == 0){
- g.setColor(Color.WHITE);
- g.fillRect(400+a*10,10+b*10, 10, 10);
- }
- }
- }
- }
- @Override
- public void mouseClicked(MouseEvent e) {
- // TODO Auto-generated method stub
- }
- @Override
- public void mouseEntered(MouseEvent e) {
- // TODO Auto-generated method stub
- }
- @Override
- public void mouseExited(MouseEvent e) {
- // TODO Auto-generated method stub
- }
- @Override
- public void mousePressed(MouseEvent e) {
- // TODO Auto-generated method stub
- }
- public void keyPressed(KeyEvent arg0) {
- // TODO Auto-generated method stub
- }
- @Override
- public void keyTyped(KeyEvent arg0) {
- // TODO Auto-generated method stub
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement