⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 guesshand extends jframe.txt

📁 石头剪刀布模式的java课程设计,也可用于大学毕业生的java设计开发参考.
💻 TXT
字号:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;


public class GuessHand extends JFrame{
  private int player = 0,user = 0;
  //存放猜拳轉換過來的數值
  private int countWin = 0, countLoss = 0, countSame = 0;
  //計算輸贏
  private JButton cut, rock, boo;
  //宣告三個按鈕剪刀,石頭,布
  private JLabel hand;
  //顯示請出拳...
  private JTextArea computerHand;
  //顯示電腦出的是什麼

  public GuessHand(){
              super ("剪刀石頭布");
          
  }
  public void guess(){

    //視窗標題為猜拳(剪刀.石頭.布)

    //執行randomHand副程式


    //建立一個按鈕-剪刀 如果按此鈕則執行下列敘述,參數值為1,印出電腦出的拳
    cut = new JButton("剪刀");
    cut.addActionListener(
     new ActionListener(){
       public void actionPerformed(ActionEvent event){
               randomHand();
        checkHand(1);
      }
     }
    );
    //建立一個按鈕-石頭 如果按此鈕則執行下列敘述,參數值為2,印出電腦出的拳
    rock = new JButton("石頭");
    rock.addActionListener(
     new ActionListener(){
       public void actionPerformed(ActionEvent event){
                randomHand();
         checkHand(2);
       }
     }
    );
    //建立一個按鈕-布 如果按此鈕則執行下列敘述,參數值為3,印出電腦出的拳
    boo = new JButton("布");
    boo.addActionListener(
     new ActionListener(){
       public void actionPerformed(ActionEvent event){
         randomHand();
         checkHand(3);
       }
     }
    );

    hand = new JLabel("請出拳...");
    //顯示請出拳...
    computerHand = new JTextArea(15,20);
    computerHand.setEditable(false);
    //顯示電腦出的是什麼,且不可修改

    //在Frame加入元件
    Container container = getContentPane();
    container.setLayout( new FlowLayout() );
    container.add(hand);
    container.add(cut);
    container.add(rock);
    container.add(boo);
    container.add(computerHand);

    //設定JFrame大小
    setSize(800,600);
    //設定JFrame為顯示的
    setVisible(true);
  }

  public static void main (String args[]){
    JOptionPane.showMessageDialog(null,"與電腦玩猜拳遊戲" + "\n遊戲很簡單,只要選擇您要出拳的按鈕" + "\n按下去即可。" + "\n遊戲規則:" + "\n剪刀 贏 布" + "\n布 贏 石頭" + "\n石頭 贏 剪刀" + "\n每小局結束會問是否繼續(Y/N 繼續/不繼續)" + "\n會計算出幾勝幾敗幾平手","說明",JOptionPane.INFORMATION_MESSAGE);
    //顯示遊戲方法及規則
    GuessHand application = new GuessHand();
    //建立一個application物件繼承guess
    application.guess();

    application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    //當JFrame被關掉時,整個程式會結束

  }

  public void randomHand(){
    player = (int)(Math.random()*3+1);
    System.out.println(player);
    //取亂數,如果為0或大於3則重新取一次,因為剪刀(1)、石頭(2)、布(3)

    //如果是1→剪刀、2→石頭、3→布
    switch(player){
      case 1:
        computerHand.append("剪刀\n\r");
        break;
      case 2:
        computerHand.append("石頭\n\r");
        break;
      case 3:
        computerHand.append("布\n\r");
        break;
    }

  }

  public void checkHand(int user){

    //如果不是剪刀跟布,就判斷何者大,大者勝,累計次數,並且問玩者是否再繼續
    if(user != 3 || player != 1){
      if(player != 3 || user != 1){
        if(player == user){
          countSame++;
          JOptionPane.showMessageDialog(null,"平手耶!!" + "\n你會猜心術~","~平手~"
                                     ,JOptionPane.INFORMATION_MESSAGE);
          again();
        }
        if(player > user){
          countLoss++;
          JOptionPane.showMessageDialog(null,"你輸了唷!!" + "\n別氣餒捏~","~輸了~"
                                     ,JOptionPane.INFORMATION_MESSAGE);
          again();
        }
        else{
          countWin++;
          JOptionPane.showMessageDialog(null,"你贏了耶!!" + "\n(=^_^=) 好棒唷~","~贏了~"
                                     ,JOptionPane.INFORMATION_MESSAGE);
          again();
        }
      }
      else{
        countWin++;
        JOptionPane.showMessageDialog(null,"你贏了耶!!" + "\n(=^_^=) 好棒唷~","~贏了~"
                                     ,JOptionPane.INFORMATION_MESSAGE);
        again();
      }
    }
    else{
      countLoss++;
      JOptionPane.showMessageDialog(null,"你輸了唷!!" + "\n別氣餒捏~","~輸了~"
                                     ,JOptionPane.INFORMATION_MESSAGE);
      again();
    }
  }

  //問是否繼續,若不繼續則印出幾勝幾敗幾平手
  public void again(){
    int number = 0;


      number=JOptionPane.showConfirmDialog(null,"要繼續嗎?","選擇",JOptionPane.YES_NO_OPTION);
      System.out.println("number:"+number);
      if(number == 1){
          JOptionPane.showMessageDialog(null,"統計資料:" + "\n勝" + countWin + "場" + "\n敗" + countLoss + "場" + "\n平手" + countSame+"\n\r應用程式即將關閉","~統計~"
                                     ,JOptionPane.INFORMATION_MESSAGE);
                                     
                        System.exit(0);
        }
      
  }
}  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -