java--猜拳小游戲(類(lèi)和對(duì)象)

案例效果展示

ScreenClip [1].png

先有一個(gè)人(Person)
有一個(gè)電腦(Computer)和人玩
有一個(gè)控制器,為人和電腦玩提供方法
一個(gè)測(cè)試類(lèi):用來(lái)使用控制器

Person類(lèi)

package checGame;

import java.util.Scanner;

public class Person {
    String name;
    int score;

    // 規(guī)定 1:石頭2:剪刀 3:包子
    int play() {
        System.out.println("請(qǐng)出拳:(1:石頭2:剪刀3:布)");
        Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();
        switch (num) {
        case 1: {
            System.out.println(this.name + "出拳");
            break;
        }
        case 2: {
            System.out.println(this.name + "出剪刀");
            break;
        }
        default: {
            System.out.println(this.name + "出布");
            break;
        }
        }
        return num;
    }

    public Person() {

    }

    public Person(int score) {
        this.score = score;

    }

}
##Computer類(lèi)
package checGame;

import java.util.Random;

public class Computer {
    String name;
    int score;
    
    //出拳
    int play(){
        Random rand = new Random();
        //1:石頭 2:剪刀 3:布
        int num = rand.nextInt(3)+1;
        switch (num) {
        case 1:{
            System.out.println(this.name + "出拳");
            break;
            }
        case 2:{
            System.out.println(this.name+"出剪刀");
            break;
            }
        default:{
            System.out.println(this.name+"出布");
            break;
            }
        }
        return num;
    }


    //默認(rèn)構(gòu)造方法
    public Computer () {
        
    }
    //重寫(xiě)構(gòu)造方法,一定要把默認(rèn)的寫(xiě)出來(lái)
    public Computer(int score) {
        this.score = score;
    }

}

Menu類(lèi)

package checGame;

import java.util.Scanner;

public class Menu {
    Computer roboat;
    Person person ;
    //初始化游戲
    //構(gòu)造方法
    public Menu(){
        
    }
    
    void init(){
    //創(chuàng)建一個(gè)機(jī)器對(duì)象
    this.roboat = new Computer(0);
    System.out.println("請(qǐng)輸入電腦的名字");
    Scanner sc = new Scanner(System.in);
    this.roboat.name = sc.next();
    
    
    
    //創(chuàng)建一個(gè)人對(duì)象
    this.person = new Person(0);
    System.out.println("請(qǐng)輸入你的名字");
    this.person.name = sc.next();
    }
    //開(kāi)始游戲
    void start(){
        //人先出拳
        int num = this.person.play();
        //機(jī)器出拳
        int num1 = this.roboat.play();
        //計(jì)算分?jǐn)?shù)
        this.calculate(num, num1);
        System.out.println("游戲是否結(jié)束(exit)");
        Scanner sc = new Scanner(System.in);
        if ("exit".equals(sc.next())) {
            //展示分?jǐn)?shù)
            show();
            return;
        }else {
            start();
        }
    }
    //計(jì)算分?jǐn)?shù)
    //num :人出拳的值 num1:機(jī)器出拳的值
    void calculate(int num ,int num1){
        if (num == num1) {
            //平局
            System.out.println("平局");
            return;
        }
        if ((num==1&&num1==2)||(num==2&&num1==3)||(num==3&&num1==1)) {
            //人勝利
            System.out.println("人勝利");
            this.person.score++;
        }else{
            //機(jī)器勝利
            System.out.println("機(jī)器勝利");
            this.roboat.score++;
        }
    }


    //展示分?jǐn)?shù)
    void show(){
        System.out.println(this.person.name+"得分" +this.person.score);
        System.out.println(this.roboat.name+"得分" +this.roboat.score);
    }

}

測(cè)試類(lèi)

package checGame;

public class Test {
    public static void main(String[] args) {
        Menu menu = new Menu();
        menu.init();
        menu.start();
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容