项目——人机猜拳游戏!!

//电脑类
public class Computer {
    Scanner input = new Scanner(System.in);
    private String name;// 姓名
    private int count;// 赢的次数

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getCount() {
        return count;
    }

    public void setCount(int count) {
        this.count = count;
    }

    // 让电脑随机输出1.2.3
    public String punches(int result) {

        switch (result) {
        case 1:
            return "剪刀";
        case 2:
            return "石头";
        case 3:
            return "布";
        }
        return "";
    }

    // 让玩家选择电脑姓名
    public void giveName(int cptr) {

        switch (cptr) {
        case 1:
            this.setName("曹操");
            break;
        case 2:
            this.setName("刘备");
            break;
        case 3:
            this.setName("张飞");
            break;
        default:
            System.out.println("输入有误,系统默认电脑玩家为诸葛亮");
            this.setName("诸葛亮");
            break;
        }
    }
}
 

//游戏类
public class Game {
    Scanner input = new Scanner(System.in);
    static int sum;// 一共玩了多少把
    Computer c = new Computer();
    Player p = new Player();

    // 编写规则
    public void start() {
        System.out.println("———————————————————————————————————————");
        System.out.println("———————————————————————————————————————");
        System.out.println("——————————欢迎使用人机猜拳游戏——————————");
        System.out.println("———————————————————————————————————————");
        System.out.println("———————————————————————————————————————");
        System.out.println("出拳规则:输入1:(剪刀)\t输入2:(石头)\t输入3:(布)\n");

        System.out.println("请选择电脑昵称:1.曹操\t2.刘备\t3.张飞");
        int cptr = input.nextInt();
        c.giveName(cptr);// 选择电脑昵称
        p.giveName();// 用户输入玩家昵称
        System.out.println(p.getName() + "\tVS\t" + c.getName() + "\n");
        System.out.println("要开始吗?(y/n):");
    }

    // 判断输赢
    public void judge() {
        System.out.println("————————————————————————————\n");

        System.out.println("请出拳:1.剪刀\t2.石头\t3.布(输入相应数字)");
        int quan = input.nextInt();
        String quan_str = p.punches(quan);// 玩家出拳
        if (quan_str.equals("输入错误!")) {
            do {
                System.out.println("输入错误,重新输入");
                quan = input.nextInt();
                quan_str = p.punches(quan);// 玩家出拳
                if (!quan_str.equals("输入错误!")) {
                    break;
                }
            } while (true);
        }
        System.out.println(p.getName() + "出拳:" + quan_str);

        Random ran = new Random();
        int result = ran.nextInt(3) + 1;
        String result_str = c.punches(result);// 电脑出拳
        System.out.println(c.getName() + "出拳:" + result_str);

        if (quan == result) {
            System.out.println("平局");
            this.sum++;
        }
        if ((quan == 1 && result == 3) || (quan == 2 && result == 1) || (quan == 3 && result == 2)) {
            System.out.println("恭喜你赢了!");
            p.setCount(p.getCount() + 1);
        } else if ((result == 1 && quan == 3) || (result == 2 && quan == 1) || (result == 3 && quan == 2)) {
            System.out.println("你输了!");
            c.setCount(c.getCount() + 1);
        }
        sum++;
    }

    public void output() {
        System.out.println("一共玩了" + sum + "把");
        System.out.println("你赢了" + p.getCount() + "把");
        System.out.println("电脑赢了" + c.getCount() + "把");
        int a = p.getCount() + c.getCount();
        System.out.println("平局" + (sum - a) + "把");
        if (p.getCount() > c.getCount()) {
            System.out.println("恭喜你赢了!");
        } else {
            System.out.println("电脑赢了!");
        }
    }
}
 

//玩家类
public class Player {
    Scanner input = new Scanner(System.in);
    private String name;// 姓名
    private int count;// 赢的次数

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getCount() {
        return count;
    }

    public void setCount(int count) {
        this.count = count;
    }

    // 出拳方法
    // 让用户输入123出拳
    public String punches(int quan) {
        switch (quan) {
        case 1:
            return "剪刀";
        case 2:
            return "石头";
        case 3:
            return "布";
        default:
            return "输入错误!";
        }
    }

    // 让玩家输入姓名
    public void giveName() {

        System.out.println("请输入你的游戏昵称:");
        String name = input.next();
        this.setName(name);
    }
}
 

 

public class Test {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        Game g = new Game();
        g.start();
        String yn = input.next();
        if (yn.equals("y")) {
            String ny = "y";
            do {
                g.judge();
                System.out.println("是否下一局(y/n)");
                ny = input.next();
            } while (!ny.equals("n"));
            // 输出最终结果
            g.output();
            System.out.println("谢谢使用!");
        } else if (yn.equals("n")) {
            System.out.println("谢谢使用!");
            System.exit(0);
        }

    }
}
 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值