import java.awt.event.*; import java.awt.*; import java.util.Random; class rock extends Frame implements MouseListener { Image rockImg, paperImg, scissorImg; Canvas rockCanvas, paperCanvas, scissorCanvas; Label resultLabel,computerLabel; String userChoice, computerChoice; Random random; rock() { random = new Random(); setSize(600, 600); setTitle("Rock Paper Scissor Game"); setLayout(null); setBackground(new Color(135, 206, 250)); Toolkit toolkit = Toolkit.getDefaultToolkit(); rockImg = toolkit.getImage("rock.png"); paperImg = toolkit.getImage("paper.png"); scissorImg = toolkit.getImage("scissors.png"); rockCanvas = new Canvas() { public void paint(Graphics g) { g.setColor(Color.BLACK); g.drawRect(0, 0, 100, 100); g.drawImage(rockImg, 0, 0, 100, 100, this); } }; rockCanvas.setBounds(50, 250, 100, 100); rockCanvas.addMouseListener(this); add(rockCanvas); paperCanvas = new Canvas() { public void paint(Graphics g) { g.setColor(Color.BLACK); g.drawRect(0, 0, 100, 100); g.drawImage(paperImg, 0, 0, 100, 100, this); } }; paperCanvas.setBounds(250, 250, 100, 100); paperCanvas.addMouseListener(this); add(paperCanvas); scissorCanvas = new Canvas() { public void paint(Graphics g) { g.setColor(Color.BLACK); g.drawRect(0, 0, 100, 100); g.drawImage(scissorImg, 0, 0, 100, 100, this); } }; scissorCanvas.setBounds(450, 250, 100, 100); scissorCanvas.addMouseListener(this); add(scissorCanvas); resultLabel = new Label(""); resultLabel.setBounds(300, 450, 200, 50); resultLabel.setBackground(new Color(255, 215, 0)); resultLabel.setForeground(Color.RED); resultLabel.setFont(new Font("Arial", Font.BOLD, 16)); resultLabel.setAlignment(Label.CENTER); add(resultLabel); computerLabel = new Label(""); computerLabel.setBounds(100, 450, 200, 50); computerLabel.setBackground(Color.RED); computerLabel.setFont(new Font("Arial", Font.BOLD, 16)); computerLabel.setAlignment(Label.CENTER); add(computerLabel); setVisible(true); setComputerChoice(); } private void setComputerChoice() { int b = random.nextInt(3); if (b == 0) computerChoice = "rock"; else if (b == 1) computerChoice = "paper"; else computerChoice = "scissor"; } public void mouseClicked(MouseEvent e) { if (e.getSource() == rockCanvas) { userChoice = "rock"; } else if (e.getSource() == paperCanvas) { userChoice = "paper"; } else if (e.getSource() == scissorCanvas) { userChoice = "scissor"; } String result = determineWinner(userChoice, computerChoice); resultLabel.setText(result); computerLabel.setText(computerChoice+" "); setComputerChoice(); } public String determineWinner(String userChoice, String computerChoice) { if (userChoice == computerChoice) { return "It's a tie!"; } switch (userChoice) { case "rock": return (computerChoice == "scissor") ? "You win!" : "You lose!"; case "paper": return (computerChoice == "rock") ? "You win!" : "You lose!"; case "scissor": return (computerChoice == "paper") ? "You win!" : "You lose!"; default: return "Invalid choice!"; } } public void mouseEntered(MouseEvent e) {} public void mouseExited(MouseEvent e) {} public void mousePressed(MouseEvent e) {} public void mouseReleased(MouseEvent e) {} public static void main(String args[]) { new rock(); } }
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter