JAVASE猜拳小遊戲源代碼

import java.util.Random;
import java.util.Scanner;

public class CaiQuan {
    private String userName;//存儲用戶名
    private String cName;//存儲對手
    private int cNameNum;//存儲玩家選擇的對手代號
    private String userInfo;//用戶出拳信息
    private String cInfo;//電腦出拳信息
    private int uNum;//接收用戶輸入的數
    private int cNum;//接受電腦產生的數
    private Scanner sc;
    private static final String Army01 = "張飛";
    private static final String Army02 = "關羽";
    private static final String Army03 ="劉備";
    private static boolean flag ;//平局和電腦勝爲true,玩家贏爲fasle
    private int selectInfo;//玩家是否繼續遊戲,1表示繼續,0表示結束
    private int score = 0;//分數

    public static void main(String[] args) {
        CaiQuan cq = new CaiQuan();
        cq.gameInfo();
        do{
            cq.selectArmy();
            cq.userInput();
            cq.cOutput();
            cq.compareCaiQuan();
            cq.gameOver();
        }while(flag);
    }

    public CaiQuan(){

    }
    //打印遊戲信息
    public void gameInfo(){
        System.out.println("歡迎進行猜拳小遊戲!");
        System.out.println("1.表示石頭    2.表示剪刀   3.表示布");
        sc = new Scanner(System.in);
        if(userName==null){
            System.out.println("玩家請輸入用戶名:");
            System.out.println("=============================================");
            userName = sc.next();
        }
    }
    //選擇對手
    public void selectArmy(){
        System.out.println("=============================================");
        System.out.println("對手選擇列表:");
        System.out.println("1:"+Army01+"    2:"+Army02+"     3:"+Army03);
        System.out.println(userName+"請輸入對手:");
        System.out.println("=============================================");
        test01();
        System.out.println(userName+",您選擇的對手爲"+cName);
        System.out.println("=============================================");
    }
    //判斷對手
    public void test01(){
        cNameNum = sc.nextInt();
        if(cNameNum==1){
            cName = Army01;
        }else if(cNameNum==2){
            cName = Army02;
        }else if(cNameNum==3){
            cName = Army03;
        }else{
            System.out.println("對手選擇錯誤,請重新選擇!");
            test01();
        }   
    }
    //開始遊戲
    public void userInput(){
        System.out.println(userName+"請出拳:");
        System.out.println("1.表示石頭    2.表示剪刀   3.表示布");
        System.out.println("=============================================");
        test();
        System.out.println("=============================================");
        System.out.println(userName+"的出拳爲:"+userInfo);
    }
    //判斷輸入的數是否錯誤
    public void test(){
        uNum = sc.nextInt();
        if(uNum==1){
            userInfo = "石頭";
        }else if(uNum==2){
            userInfo = "剪刀";
        }else if(uNum==3){
            userInfo = "布";
        }else{
            System.out.println("輸入錯誤,請請重新輸入");
            test();
        }
    }
    //電腦出拳
    public void cOutput(){
        Random random = new Random();
        cNum = random.nextInt(3)+1;
        if(cNum==1){
            cInfo = "石頭";
        }else if(cNum==2){
            cInfo = "剪刀";
        }else if(cNum==3){
            cInfo = "布";
        }
        System.out.println(cName+"出拳爲:"+cInfo);
    }
    //比較大小
    public void compareCaiQuan(){
        String msg = null;
        if(uNum == 1){
            if(cNum == 1){
                msg="此時平局";
                flag = true;
            }else if(cNum == 2){
                score += 1; 
                msg="此時"+userName+"勝出";
                flag = false;
            }else {
                score -= 1; 
                msg="此時"+cName+"勝出";
                flag = true;
            }
            return;
        }else if(uNum == 2){
            if(cNum == 1){
                score -= 1;
                msg="此時"+cName+"勝出";
                flag = true;
            }else if(cNum == 2){
                msg="此時平局";
                flag = true;
            }else {
                score += 1;
                msg="此時"+userName+"勝出";
                flag = false;
            }
        }else {
            if(cNum == 1){
                score += 1;
                msg="此時"+userName+"勝出";
                flag = false;
            }else if(cNum == 2){
                score -= 1;
                msg="此時"+cName+"勝出";
                flag = true;
            }else {
                msg=" 此時平局";
                flag = true;
            }
        }
        System.out.println(msg);
    }
    //遊戲結束信息
    public void gameOver(){
        System.out.println("=============================================");
        if(flag==true){
            System.out.println(userName+",您沒有戰勝電腦,不要灰心,請繼續遊戲!");
            System.out.println("=============================================");
            System.out.println("繼續遊戲請輸入:1      結束遊戲請輸入:2");
            test02();
        }else if(flag==false){
            System.out.println(userName+",您太厲害了,竟然戰勝了"+cName+",遊戲結束!");
            System.out.println("=============================================");
            System.out.println("繼續遊戲請輸入:1      結束遊戲請輸入:2");
            test02();
        }
    }
    //判斷玩家是否繼續遊戲
    public void test02(){
        selectInfo = sc.nextInt();
        if(selectInfo==1){
            flag = true;
        }else if(selectInfo==2){
            System.out.println(userName+",您的遊戲分數爲:"+score);
            System.exit(0);
        }else{
            System.out.println(userName+",您輸入錯誤,請重新輸入!");
            test02();   
        }
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章