1. 程式人生 > >Java作業 第十三章 人機猜拳

Java作業 第十三章 人機猜拳

人機猜拳: 人機類Computer程式碼:

import java.util.Scanner;
public class Computer {
    String name = "電腦";// 名字
    int score = 0;// 積分
    public int showFist() {
        //產生隨機數
        int show = (int) ((Math.random()*10)%3+1); // 產生隨機數,表示電腦出拳
        //輸出出拳結果並返回
        switch (show) {
        case 1:
            System.out
.println(name+"出拳:剪刀"); break; case 2: System.out.println(name+"出拳:石頭"); break; case 3: System.out.println(name+"出拳:布"); break; } return show; } }

使用者類Person:

import java.util.*;
public class Person {
    String name = "匿名"
; //名字 int score = 0; //積分 public int showFist(){ //接收使用者的選擇 Scanner input = new Scanner(System.in); System.out.print("\n請出拳(1.剪刀2.石頭3.布):"); int show = input.nextInt(); //輸出出拳結果,並且返回 switch (show) { case 1: System.out.println("你出拳:剪刀"
); break; case 2: System.out.println("你出拳:石頭"); break; case 3: System.out.println("你出拳:布"); break; } return show; } }

遊戲類核心Game:

import java.util.*;
public class Game {
    Person person ; //甲方

    Computer computer;// 乙方

    int count;// 對戰次數

    public void inital(){
        person = new Person();
        computer = new Computer();
        count = 0;
    }
    //開始遊戲
    public void startGame(){
        System.out.println("-------------歡迎進入猜拳遊戲---------------");
        System.out.println();
        System.out.println("******************************************");
        System.out.println("          **  猜拳,開始  **");
        System.out.println("******************************************");
        System.out.println();
        System.out.println("出拳規則:1.剪刀2.石頭3.布");
        Scanner input = new Scanner(System.in);
        String exit="n";//退出系統
        do {
            inital();//初始化
            //選擇對手
            System.out.print("選擇你的對手(1.劉備2.孫權3.曹操):");
            int role = input.nextInt();
            switch (role) {
            case 1:
                 computer.name="劉備";
                 System.out.println("你選擇了"+ computer.name+"對戰");
                break;
            case 2:
                 computer.name="孫權";
                 System.out.println("你選擇了"+computer.name+"對戰");
                 break;
            case 3:
                System.out.println("你選擇了"+computer.name+"對戰");
                break;
            default:
                System.out.println("輸入錯誤!");
                break;
            }

            //遊戲玩家輸入姓名
            System.out.print("請輸入你的姓名:");
            person.name=input.next();
            System.out.println(person.name+"    VS    "+computer.name+"對戰\n");
            //開始遊戲
            System.out.print("要開始嗎?(y/n)");
            //開始一局遊戲
            String start = input.next();
            int perFist;//使用者出拳
            int comFist;//電腦出拳
            while (start.equals("y")) {
                //出拳
                perFist = person.showFist();
                comFist = computer.showFist();
                //判斷勝負
                if ((perFist==1&&comFist==1)||(perFist==2&&comFist==2)||(perFist==3&&comFist==3)) {
                    System.out.println("結果:和局,真衰!\n");//平局
                }else if ((perFist==2&&comFist==1)||(perFist==3&&comFist==2)||(perFist==1&&comFist==3)) {
                    System.out.println("結果:恭喜,你贏了!\n");//勝利
                    person.score++;
                }else {
                    System.out.println("結果說:^_^,你輸了,真笨!\n");//計算機贏
                    computer.score++;
                }
                count++;
                System.out.print("是否進行下一輪(y/n)");
                start = input.next();
            }
            //顯示結果
            showResult();
            System.out.print("\n要開始下一局嗎?(y/n):");
            exit = input.next();
            System.out.println();

        } while (!exit.equals("n"));

        System.out.println("系統退出");
    }
    private void showResult() {
        // TODO Auto-generated method stub
        //顯示對戰次數
        System.out.println("------------------------------");
        System.out.println(computer.name+"    VS    "+person.name);
        System.out.println("對戰次數:"+count);
        //顯示最終得分
        System.out.println("\n姓名\t得分");
        System.out.println(person.name+"\t"+person.score);
        System.out.println(computer.name+"\t"+computer.score+"\n");

        //顯示對戰結果
        int result = calcResult();
        if (result==1) {
            System.out.println("結果:打成平手,真衰!");
        }else if (result==2) {
            System.out.println("結果:恭喜,你贏了!");
        }else
        {
            System.out.println("結果:呵呵,笨笨,下次加油啊!");//計算機贏
        }
        System.out.println("--------------------------");
    }
    //計算比賽結果
    private int calcResult() {
        // TODO Auto-generated method stub
        if (person.score == computer.score) {
            return 1;//戰平
        }else if (person.score > computer.score) {
            return 2;//遊戲玩家贏
        }else {
            return 3;//惜敗
        }
    }

}

測試類Test:

package class3;

public class Test {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

                Game game = new Game();

                game.inital();

                game.startGame();
    }

}

輸出結果: 這裡寫圖片描述