Affichage des articles dont le libellé est java game. Afficher tous les articles
Affichage des articles dont le libellé est java game. Afficher tous les articles

Java - Create Glass Bridge Game In Java

How To Make The Glass Bridge Game From Squid Game In Java NetBeans

Java - Create Glass Bridge Game In Java


In this Java Tutorial we will see How to Make The Glass Stepping Stones Game or the glass bridge game From Squid Game Using JPanels and Jlabels In Java NetBeans .

The Game Rules:
the player have to hop across a bridge of glasses with some glasses that breack easily.






Project Source Code:

   
    // create a black border (it's actually yellow)
    Border black_border = BorderFactory.createMatteBorder(1, 1, 1, 1, Color.yellow);
    
    // get the images paths
    String footsteps = "\\/images/foot-steps.png";
    String nosteps = "\\/images/no-steps.png";
    String cracks = "\\/images/cracks.png";
    
    // jpanel component
    Component[] comp1;
    Component[] comp2;
    
    Random random = new Random();
    String randomImage;
    
    JLabel[][] labels;
    String[][] imagesOrder = new String[6][2];
    ArrayList<String> list = new ArrayList<>();
    
    int counter = 0;
    boolean won = true;


    
        // center this form
        this.setLocationRelativeTo(null);
        
        // set borders
        jPanel_Start.setBorder(black_border);
        jPanel_Finish.setBorder(black_border);
        jLabel_PlayerStart.setBorder(black_border);
        jLabel_PlayerFinish.setBorder(black_border);
        
        // set image
        displayImage(footsteps, jLabel_PlayerStart);
        
        // add jlabels to the labels table
        labels = new JLabel[][]{{jLabel_1_1,jLabel_1_2},{jLabel_2_1,jLabel_2_2},
                                {jLabel_3_1,jLabel_3_2},{jLabel_4_1,jLabel_4_2},
                                {jLabel_5_1,jLabel_5_2},{jLabel_6_1,jLabel_6_2}};
        
        // disable all labels
        for(JLabel[] lbls : labels )
        {
            lbls[0].setEnabled(false);
            lbls[1].setEnabled(false);
        }
        
        // add images to the list
        list.add(footsteps);
        list.add(cracks);
        
        // get component from jpanels
        comp1 = jPanel2.getComponents();
        comp2 = jPanel3.getComponents();
        
        // populate table with images in random order
        randomImages();
        
        // add action to jlabels
        addAction();


    // functions we are gonna use
    
    // create a function to enable jlabels
    public void enableLabels(int index)
    {
        if(index <= labels.length-1 )
        {
            JLabel[] lbls = labels[index];
            lbls[0].setEnabled(true);
            lbls[1].setEnabled(true);
        }
    }
    
    // create a function to get random images
    public void randomImages()
    {
        for(int i = 0; i < labels.length; i++)
        {
            // get random images
            randomImage = list.get(random.nextInt(list.size()));
            imagesOrder[i][0] = randomImage;
            
            // get a different image
            if(randomImage.equals(footsteps))
            {
              imagesOrder[i][1] = cracks;
            }
            else
            {
                imagesOrder[i][1] = footsteps;
            }
            
            System.out.println(imagesOrder[i][1]);
            System.out.println(imagesOrder[i][0]);
            System.out.println("--------------");
        }
    }


    // a function to add action to jlabels when we click
    public void addAction()
    {
        enableLabels(counter);
        // jpanel2
        for(Component comp : comp1)
        {
            if(comp instanceof JLabel)
            {
                JLabel label = (JLabel) comp;
                label.addMouseListener(new java.awt.event.MouseAdapter() {
                    @Override
                    public void mouseClicked(java.awt.event.MouseEvent evt)
                    {
                        if(label.isEnabled())
                        {
                           displayImage(imagesOrder[counter][1], label);
                           if(imagesOrder[counter][1].equals(cracks))
                           {
                               won = false;
                           }
                           // disable jlabel 
                           label.setEnabled(false);
                           JLabel label = (JLabel) comp2[counter];
                           label.setEnabled(false);
                           if(counter == imagesOrder.length-1 && won == true)
                           {
                               displayImage(footsteps, jLabel_PlayerFinish);
                               jLabel_message.setText("You've Won :)");
                           }
                           else if(won == false)
                           {
                               jLabel_message.setText("You've Lost :(");
                           }
                           counter++; 
                           enableLabels(counter);
                        }
                        
                    }
                    
                });
                
            }
        }
        
        // jpanel3
        for(Component comp : comp2)
        {
            if(comp instanceof JLabel)
            {
                JLabel label = (JLabel) comp;
                label.addMouseListener(new java.awt.event.MouseAdapter() {
                    @Override
                    public void mouseClicked(java.awt.event.MouseEvent evt)
                    {
                        if(label.isEnabled())
                        {
                           displayImage(imagesOrder[counter][0], label);
                           if(imagesOrder[counter][0].equals(cracks))
                           {
                               won = false;
                           }
                           // disable jlabel 
                           label.setEnabled(false);
                           JLabel label = (JLabel) comp1[counter];
                           label.setEnabled(false);
                           
                           if(counter == imagesOrder.length-1 && won == true)
                           {
                               displayImage(footsteps, jLabel_PlayerFinish);
                                jLabel_message.setText("You've Won :)");
                           }
                           else if(won == false)
                           {
                               jLabel_message.setText("You've Lost :(");
                           }
                           counter++;
                           enableLabels(counter);
                        }
                        
                    }
                });
                
            }
        }
        
    }
    
    // a function to dispaly image in jlabel
    public void displayImage(String imgPath, JLabel label)
    {
        // get the image
        ImageIcon imgIco = new ImageIcon(getClass().getResource(imgPath));
        
        // make the image fit the given jlabel
        Image image = imgIco.getImage().getScaledInstance(label.getWidth(), label.getHeight(), Image.SCALE_SMOOTH);
        
       // set the image into the jlabel
       label.setIcon(new ImageIcon(image));
    }


   // button play again
    private void jButton_PlayAgain_ActionPerformed(java.awt.event.ActionEvent evt) {                                                   
        // reset everything
        // populate table with images in random order
        randomImages();
        // remove images from the jlabels
        for(JLabel[] lbls : labels)
        {
            lbls[0].setIcon(null);
            lbls[1].setIcon(null);
        }
        jLabel_PlayerFinish.setIcon(null);
        counter = 0;
        won = true;
        jLabel_message.setText("");
        enableLabels(counter);
    } 

    


////// OUTPUT : 

Glass Bridge Game

Glass Stepping Stones In Java

Glass Bridge Game In Java




download the source code



More Java Projects:





Java Rock Paper Scissors Game Source Code

How To Make a Java Rock Paper Scissors Game Project Using NetBeans

Java Rock Paper Scissors Game Source Code


In this Java Tutorial we will see How to Make a Simple Rock, Paper, Scissors Game Using   Jframe JPanels and Jlabels In Java NetBeans .

Images Links: 
https://pixabay.com/vectors/stone-rock-nature-pebble-zen-576268/
https://pixabay.com/vectors/certificate-paper-parchment-roll-154169/
https://pixabay.com/vectors/scissors-cut-hairdresser-1297454/
        
OR
https://pixabay.com/vectors/rock-paper-scissors-rock-hand-296854/
https://pixabay.com/vectors/rock-paper-scissors-scissors-hand-296853/
https://pixabay.com/vectors/rock-paper-scissors-paper-hand-296855/





Project Source Code:

   
    // create borders
    Border gray_border = BorderFactory.createMatteBorder(1, 1, 1, 1, Color.DARK_GRAY);
    Border orange_border = BorderFactory.createMatteBorder(1, 1, 1, 1, Color.ORANGE);
    
    // images path
    String rock = "/images/rock.png";
    String paper = "/images/paper.png";
    String scissors = "/images/scissors.png";
    
    // create an arraylist
    ArrayList<String> list = new ArrayList<>();
    Random random = new Random();
    int your_wins = 0, computer_wins = 0;
    String random_selection;
    
    // set borders
    jLabel_You.setBorder(gray_border);
    jLabel_Computer.setBorder(gray_border);
    jLabel_Rock_.setBorder(gray_border);
    jLabel_Paper_.setBorder(gray_border);
    jLabel_Scissors.setBorder(gray_border);
        
    // display images in jlabels
    displayImage(rock, jLabel_Rock_, 110,90);
    displayImage(paper, jLabel_Paper_, 110,90);
    displayImage(scissors, jLabel_Scissors, 110,90);
        
    // add items to the list
    list.add(rock);
    list.add(paper);
    list.add(scissors);


    // create a function to display images in jlabel
    public void displayImage(String imagePath, JLabel label, int width, int height)
    {
        // get the image
        ImageIcon imgIco = new ImageIcon(getClass().getResource(imagePath));
        
        // resize the image
        Image img = imgIco.getImage().getScaledInstance(width, height, Image.SCALE_SMOOTH);
        
        // set image into the jLabel
        label.setIcon(new ImageIcon(img));
        
    }
    
// create a function to get the winner
    public void getWinner(String you, String computer)
    {
        if(you.equals(computer))
        {
            System.out.println("Draw");
        }
        else if(you.equals(rock))
        {
            if(computer.equals(scissors))
            {
                your_wins++;
                jLabel_YourWins.setText(String.valueOf(your_wins));
            }
            else
            {
                computer_wins++;
                jLabel_ComputerWins.setText(String.valueOf(computer_wins));
            }
        }
        
        else if(you.equals(paper))
        {
            if(computer.equals(rock))
            {
                your_wins++;
                jLabel_YourWins.setText(String.valueOf(your_wins));
            }
            else
            {
                computer_wins++;
                jLabel_ComputerWins.setText(String.valueOf(computer_wins));
            }
        }
        
        else if(you.equals(scissors))
        {
            if(computer.equals(paper))
            {
                your_wins++;
                jLabel_YourWins.setText(String.valueOf(your_wins));
            }
            else
            {
                computer_wins++;
                jLabel_ComputerWins.setText(String.valueOf(computer_wins));
            }
        }
           
        // you can stop when you or the computer reach 3 wins
        // if you want to just keep playing
        // remove this if section
        /*
        if(your_wins == 3 || computer_wins == 3)
        {
            int yes_no = JOptionPane.showConfirmDialog(null, "Play a New Partie", "Play Again", JOptionPane.YES_NO_OPTION);
            if(yes_no == 0)// yes == 0
            {
                jLabel_Computer.setIcon(null);
                jLabel_You.setIcon(null);
                your_wins = 0;
                computer_wins = 0;
                jLabel_YourWins.setText(String.valueOf(your_wins));
                jLabel_ComputerWins.setText(String.valueOf(computer_wins));
            }
            
        }*/

    }
    

    private void jLabel_Rock_MouseClicked(java.awt.event.MouseEvent evt) {                                          
        // display rock image
        displayImage(rock, jLabel_You,160,120);
        // make a random selection
        random_selection = list.get(random.nextInt(list.size()));
        // display image 
        displayImage(random_selection, jLabel_Computer,160,120);
        getWinner(rock, random_selection);
    }                                         

    private void jLabel_Paper_MouseClicked(java.awt.event.MouseEvent evt) {                                           
        // display paper image
        displayImage(paper, jLabel_You,160,120);
        // make a random selection
        random_selection = list.get(random.nextInt(list.size()));
        // display image 
        displayImage(random_selection, jLabel_Computer,160,120);
        getWinner(paper, random_selection);
    }                                          

    private void jLabel_ScissorsMouseClicked(java.awt.event.MouseEvent evt) {                                             
       // display scissors image
       displayImage(scissors, jLabel_You,160,120);
       // make a random selection
        random_selection = list.get(random.nextInt(list.size()));
        // display image 
        displayImage(random_selection, jLabel_Computer,160,120);
        getWinner(scissors, random_selection);
    }                                            

    private void jLabel_Rock_MouseEntered(java.awt.event.MouseEvent evt) {                                          
        // change border
        jLabel_Rock_.setBorder(orange_border);
    }                                         

    private void jLabel_Rock_MouseExited(java.awt.event.MouseEvent evt) {                                         
        // change border
        jLabel_Rock_.setBorder(gray_border);
    }                                        

    private void jLabel_Paper_MouseEntered(java.awt.event.MouseEvent evt) {                                           
        // change border
        jLabel_Paper_.setBorder(orange_border);
    }                                          

    private void jLabel_Paper_MouseExited(java.awt.event.MouseEvent evt) {                                          
        // change border
        jLabel_Paper_.setBorder(gray_border);
    }                                         

    private void jLabel_ScissorsMouseEntered(java.awt.event.MouseEvent evt) {                                             
        // change border
        jLabel_Scissors.setBorder(orange_border);
    }                                            

    private void jLabel_ScissorsMouseExited(java.awt.event.MouseEvent evt) {                                            
        // change border
        jLabel_Scissors.setBorder(gray_border);
    }                                           



////// OUTPUT : 

Java Rock Paper Scissors Game

Java Rock Paper Scissors Game

Java Rock Paper Scissors Game



download the source code



More Java Projects: