JAVA猜拳小游戏

思想与实现:

创建四个类:

1.玩家类

2.pc类

3.游戏类

4.运行类

一 .首先创建一个玩家类  Ren类

(1)类中有两个属性用来记录玩家的名字和获胜次数 (name  renjishu)

(2)类中还有两个方法分别用来 获取玩家名字 和 获取玩家出拳类型的方法(renname()  renquan() )

class Ren{// 创建一个玩家类
    String name;//用来接受玩家名字
    int renjishu = 0;//用来记录玩家获胜次数
    Scanner input = new Scanner(System.in);
    public void renname(){ // 获取玩家 名字 方法
        System.out.println("请输入玩家名字");
        this.name = input.nextLine();
        System.out.println("你选择了"+this.name+"进行对战");
    }
    public int renquan(){ //获取玩家 出拳类型 方法
        System.out.println("玩家输入(1石头2剪刀3布)");
        int renNum = input.nextInt();
        switch (renNum){
            case 1:{
                System.out.println(this.name+"出的是石头");
                break;
            }
            case 2:{
                System.out.println(this.name+"出的是剪刀");
                break;
            }
            case 3:{
                System.out.println(this.name+"出的是布");
                break;
            }
        }
        return renNum;
    }
}

 二.然后在创建一个电脑类  PC类

(1)类中有两个属性用来记录pc的名字和获胜次数 (name  pcjishu)

(2)类中还有两个方法分别用来 获取pc名字 和 获取pc出拳类型的方法(pcname()  pcquan() )

class PC{//创建一个pc类
    String name;
    int pcjishu = 0;
    Scanner input = new Scanner(System.in);
    public void pcname(){ // 获取pc 名字 方法
        System.out.println("请输入pc玩家名字 1钢铁侠2美国队战长3蜘蛛侠");
        int a = input.nextInt();
        switch (a){
            case 1:{
                this.name = "钢铁侠";
                System.out.println("pc选择的是"+this.name+"进行战斗");
                break;
            }
            case 2:{
                this.name = "美国队长";
                System.out.println("pc选择的是"+this.name+"进行战斗");
                break;
            }
            case 3:{
                this.name = "蜘蛛侠";
                System.out.println("pc选择的是"+this.name+"进行战斗");
                break;
            }
        }
    }
    public int pcquan(){// 获取pc 出拳类型 方法
        int pcNum = (int)((Math.random()*3)+1);
        switch (pcNum){
            case 1:{
                System.out.println(this.name+"出的是石头");
                break;
            }
            case 2:{
                System.out.println(this.name+"出的是剪刀");
                break;
            }
            case 3:{
                System.out.println(this.name+"出的是布");
                break;
            }
        }
        return pcNum;
    }
}

 三.在创建一个游戏类  Games类

 (1)   类中有两个属性用来记录 局数和平局次数(jushu  pingju)

 (2)   类中new了两个对象(ren  pc)

 (3)   类中有两个方法(games() (核心方法)用来进行游戏  result() 用来打印计分板)

 (4)   y/n用来开始或结束游戏

 (5)   ren.renname();// 调用 renname()方法 用来获取 玩家名字

 (6)   pc.pcname();// 调用pc.name()方法  用来获取  pc名字

 (7)   进入while循环 定义两个变量(rennum  pcnum)来接受  ren.renquan()和 pc.pcquan() 返回的值

  (8)   进行if 判断 判断 玩家获胜 或者 pc 获胜 或者 平局

  (9)   提示是否结束游戏(n 结束 y继续) 如果按 n 输出 游戏结束,之后会询问是否打印输出计分 板,如果按 y 调用result() 方法输出计分板然后直接break结束循环
 

class Games{// 创建一个游戏类
    int pingju = 0;// 记录平局次数
    int jushu = 0;// 记录局数
    Ren ren = new Ren();// 创建 Ren类 对象
    PC pc = new PC();// 创建 Pc类 对象
    Scanner input = new Scanner(System.in);
    public void games(){
        System.out.println("请输入是否开始游戏(y/n)");
        String yn = input.nextLine();
        if(yn.equals("y")){
            System.out.println("规则(1石头2剪刀3布)");
            ren.renname();// 调用 renname()方法
            pc.pcname();// 调用pc.name()方法
            System.out.println(ren.name+"VS"+pc.name);
            while(true){
                int rennum = ren.renquan();// 调用renquan()方法
                int pcnum = pc.pcquan();// 调用pcquan()方法
                if((rennum==1&&pcnum==2) || (rennum==2&&pcnum==3) ||(rennum==3&&pcnum==1)){
                    System.out.println(ren.name+"获胜");
                    ren.renjishu++;//记录玩家获胜次数
                }else if((rennum==2&&pcnum==1) || (rennum==3&&pcnum==2) ||(rennum==1&&pcnum==3)){
                    System.out.println(pc.name+"获胜");
                    pc.pcjishu++;//记录pc获胜次数
                }else{
                    System.out.println("平局");
                    this.pingju++;//记录平局次数
                }
                this.jushu++;// 记录局数
                System.out.println("是否要继续游戏(y/n)");
                yn = input.nextLine();
                if(yn.equals("n")){
                    System.out.println("游戏结束!");
                    System.out.println("你是否输出执行结果(输出y/不输出按其他键)");
                    String f = input.nextLine();
                    if("y".equals(f)){
                        this.result();
                        break;
                    }else{
                        break;
                    }
                }
            }
        }else if(yn.equals("n")){
            System.out.println("哎呦,玩一局嘛");
        }
    }
    public void result(){
        System.out.println("-------------比赛结果---------------");
        System.out.println(ren.name+"VS"+pc.name);
        System.out.println(ren.name+"赢了"+ren.renjishu+"局");
        System.out.println(pc.name+"赢了"+pc.pcjishu+"局");
        System.out.println("比赛"+this.jushu+"局");
        System.out.println("比赛的平局次数"+this.pingju+"次");
        if(ren.renjishu>pc.pcjishu){
            System.out.println(ren.name+"获胜");
        }else if(pc.pcjishu>ren.renjishu){
            System.out.println(pc.name+"获胜");
        }else{
            System.out.println("平局");
        }
    }
}

 四.创建一个运行类   ComputerGames类

 (1)    类中 new了一个对象 g

 (2)    g.games(); 调用games()方法 

public class ComputerGames {
    public static void main(String[] args){
       Games g = new Games();
       g.games();
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值