java新手入门经典小项目之猜拳

猜拳小游戏

项目要求:

java新手入门经典小项目之猜拳_第1张图片

项目分析:

设计people、computer、game三个类,还有一个main方法。在people和computer这两个类上写有名字,分数,还有他们各自的出拳方式,game这个类中写有游戏胜负的判定规则,比赛结果的比分。main方法进入游戏。
java新手入门经典小项目之猜拳_第2张图片
People类

public class People {
    private String name;//private私有的成员变量
    private int score;

    public People(String name) {//构造函数并且带有参数
        this.name = name;
        this.score = 0;
    }
    //出拳方式
    public String fist() {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入出的招数:石头,剪刀,布");
        String str = scanner.nextLine();
        return str;
    }
    public void addScore(){//增加分数
        score+=1;
    }
    public int getScore(){//得到分数
        return score;
    }
    public String getName(){//得到名字
        return name;
    }
}

Computer类

public class Computer {
    private String name;
    private int score;

    public Computer(String name){//具有参数的构造函数
        this.score = 0;
        this.name = name;
    }
    //出拳方式
    public String fist(){
        Random random = new Random();//随机数出拳
        int n = random.nextInt(3)+1;//[0,3)==>1,2,3
        String str = null;
        switch (n){
            case 1:System.out.print(name+":"+"出石头  ");str = "石头";break;
            case 2:System.out.print(name+":"+"出剪刀  ");str = "剪刀";break;
            case 3:System.out.print(name+":"+"出布  ");str = "布";break;
        }
        return str;
    }
    public void addScore(){//增加分数
        score+=1;
    }

    public int getScore(){//得到分数
        return score;
    }

    public String getName(){//得到名字
        return name;
    }
}

Game类

public class Game {

    private People people;
    private Computer computer;
    //用户和电脑的名字
    public Game(){
        System.out.println("请输入你的名字:");
        Scanner scanner = new Scanner(System.in);
        String n = scanner.nextLine();
        people = new People(n);
        computer = new Computer("alpha");
    }
    //游戏规则为:三局两胜,胜者加分,比赛三局自动结束,每打一局,输出谁胜谁负。
    private void playThreeTime(){
        int count = 0;
        while (count < 3) {
            String pFist = people.fist();//调用出拳方式
            String cFist = computer.fist();

            if (pFist.equals("石头") && cFist.equals("剪刀") ||
                    pFist.equals("剪刀") && cFist.equals("布") ||
                    pFist.equals("布") && cFist.equals("石头")) {//People赢
                System.out.println(people.getName()+":此局获胜");
                people.addScore();//调用people的增加分数
            } else if (pFist.equals(cFist)) {
                System.out.println("此局平局");
            } else {
                computer.addScore();//调用computer的增加分数
                System.out.println(computer.getName()+":此局获胜");
            }
            count++;
        }
    }
    //获得比赛结果,分别输出此次比赛,各得到多少分,是否平局,还是谁胜利?
    private void getResult(){
        int pScore = people.getScore();
        int cScore = computer.getScore();
        if (pScore > cScore) {
            System.out.println(people.getName() + ":最终结果赢了");

        } else if (pScore == cScore) {
            System.out.println("平局");
        } else {
            System.out.println(computer.getName() + ":最终结果赢了");
        }
        System.out.println(people.getName()+" : "+computer.getName()+" = "
                +people.getScore()+" : "+computer.getScore());
    }
    public void start(){
        while(true) {
            playThreeTime();
            getResult();
            System.out.println("是否继续?");
            Scanner scanner = new Scanner(System.in);
            String str = scanner.next();
            if (str.equals("是")) {
                continue;
            }else{
                break;
            }
        }
    }
}

MainApp

public class TestMain {
    public static void main(String[] args) {
        Game game = new Game();
        System.out.println("========欢迎来到猜拳游戏==========");
        System.out.println("游戏规则:三局两胜,每局统计分数,判断"+'\n'
        +"哪一方获胜,三局过后,得到最终胜利玩家"+'\n'+"最后可以选择继续和结束游戏");
        System.out.println("==================");
        game.start();
    }
}

你可能感兴趣的:(java习题)