java 小编程100题

java--猜拳小游戏(类和对象)

2017-09-01  本文已影响0人  阿狸演绎

案例效果展示

ScreenClip [1].png

先有一个人(Person)
有一个电脑(Computer)和人玩
有一个控制器,为人和电脑玩提供方法
一个测试类:用来使用控制器

Person类

package checGame;

import java.util.Scanner;

public class Person {
    String name;
    int score;

    // 规定 1:石头2:剪刀 3:包子
    int play() {
        System.out.println("请出拳:(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类
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;
    }


    //默认构造方法
    public Computer () {
        
    }
    //重写构造方法,一定要把默认的写出来
    public Computer(int score) {
        this.score = score;
    }

}

Menu类

package checGame;

import java.util.Scanner;

public class Menu {
    Computer roboat;
    Person person ;
    //初始化游戏
    //构造方法
    public Menu(){
        
    }
    
    void init(){
    //创建一个机器对象
    this.roboat = new Computer(0);
    System.out.println("请输入电脑的名字");
    Scanner sc = new Scanner(System.in);
    this.roboat.name = sc.next();
    
    
    
    //创建一个人对象
    this.person = new Person(0);
    System.out.println("请输入你的名字");
    this.person.name = sc.next();
    }
    //开始游戏
    void start(){
        //人先出拳
        int num = this.person.play();
        //机器出拳
        int num1 = this.roboat.play();
        //计算分数
        this.calculate(num, num1);
        System.out.println("游戏是否结束(exit)");
        Scanner sc = new Scanner(System.in);
        if ("exit".equals(sc.next())) {
            //展示分数
            show();
            return;
        }else {
            start();
        }
    }
    //计算分数
    //num :人出拳的值 num1:机器出拳的值
    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{
            //机器胜利
            System.out.println("机器胜利");
            this.roboat.score++;
        }
    }


    //展示分数
    void show(){
        System.out.println(this.person.name+"得分" +this.person.score);
        System.out.println(this.roboat.name+"得分" +this.roboat.score);
    }

}

测试类

package checGame;

public class Test {
    public static void main(String[] args) {
        Menu menu = new Menu();
        menu.init();
        menu.start();
    }
}
上一篇下一篇

猜你喜欢

热点阅读