人机猜拳互动游戏

人机猜拳互动游戏

    ####游戏规则####

1、选取对战角色
根据提示,输入用户的姓名,选择猜拳的对手
2、猜拳
开始对战,用户选择出拳,与对手进行比较,提示胜负信息。
3、记录分数
每局猜拳结束,获胜一方加 1 分(平局都不加分),停止游戏时,显示对战次数
以及对战最终结果。

阶段一: 显示游戏信息及选择对战对手, 运行效果如下图所示。
输入: 从键盘接收一个数字 1~3, 代表对战对手的编号。
输出: 对战对手

这里写图片描述

阶段二: 实现一局对战, 运行效果如下图所示。
输入对战角色和用户姓名后,询问是否开始游戏。 若用户输入“y” , 则开始
游戏, 用户和计算机出拳,并给出胜负结果。 否则,直接退出程序。 胜负结果显
示如下:

这里写图片描述

提示: 计算机如何出拳呢?
产生一个 1~3 的随机数,模拟计算机的出拳结果。2
compFist = (int)(Math.random()*10)%3 + 1; //产生随机数,表示电脑出
拳

这里写图片描述

阶段三:实现循环对战,并累计得分。
实现循环对战,并且累加赢家的得分, 运行效果如下图所示。

这里写图片描述

阶段四: 本次游戏结束后,显示对战次数, 双方的各自得分及对战结果, 运行
效果如下图所示:

这里写图片描述

阶段五: 实现循环游戏, 直到退出系统

这里写图片描述

这里写图片描述

这里写图片描述

代码截图:

这里写图片描述

我以这样的方式让代码类分开,这里只是单纯的建了一个包,如果是一个项目,那么就需要对代码进行分层,更加规范。

其中:结束的时候对整个回合的一段话,我用数组表示:

public class basic {
    public String basic(int a,int b){
        String [][]win = new String[3][3];
        win[0][0] = "和局,真衰!嘿嘿,等着瞧吧!";
        win[0][1] = "^_^你输了,真笨!";
        win[0][2] = "恭喜你赢了!";
        win[1][0] = "恭喜你赢了!";
        win[1][1] = "和局,真衰!嘿嘿,等着瞧吧!";
        win[1][2] = "^_^你输了,真笨!";
        win[2][0] = "^_^你输了,真笨!";
        win[2][1] = "恭喜你赢了!";
        win[2][2] = "和局,真衰!嘿嘿,等着瞧吧!";
        return win[a][b];
    }
}

用一个单独的类来放这个游戏需要初始化声明的对象:


public class guesso {
    String name = "";//保存姓名
    String answer = "";//保存是否开始
    String user="";//保存角色名称
    String cqname = "";//保存出拳名称
    String cqnum = "";//保存出拳代号
    String answer2="";//保存是否开始下一局
    int num=0;//角色编号
    int part;//角色
    int partsum;
}

给大家看看一个我写的主函数类:

public class playGame {

    public static void main(String[] args) {
        int juese;
        int i;//表示玩家出拳的数字
        int partsum = 0;
        Game g = new Game();
        g.init();
        System.out.println("-------------欢 迎 进 入 游 戏 世 界---------------"); 
        System.out.println("       *********************"); 
        System.out.println("           **猜拳,开始**"); 
        System.out.println("       *********************"); 
        System.out.println("出拳规则:1.剪刀 2.石头 3.布");
        Scanner input = new Scanner(System.in);
        try{
            juese = input.nextInt();
             while(juese!=1&&juese!=2&&juese!=3){//输入内容必须是一个1~3的整数,否则重新输入  
                    System.out.println("输入的内容应该是一个1~3的整数,请重新输入!");  
                    juese=input.nextInt();  
                }  
             g.cpoputerPlayer(juese);
              System.out.println("请输入您的姓名:");  
                g.person(input.next());  
                System.out.println("出拳:(输入0退出)");  
                i=input.nextInt();  
                while(i!=0){//若用户不输入0,执行循环体,一直玩游戏  
                    g.chuquan(i);  
                    g.jisuan();  
                    System.out.println("\n出拳:(输入0退出)");  
                    i=input.nextInt(); 
                }  
                System.out.println("游戏结束!");  
                g.result();  

                if(i>partsum){
                    System.out.println("结果:恭喜!你赢了");
                    System.out.println("--------------------");
                    System.out.println();
                }else if(i<partsum){
                    System.out.println("结果:哼!你输了,哈哈加油加油!");
                    System.out.println("--------------------");
                    System.out.println();
                }else if(i==partsum){
                    System.out.println("结果:打成平手,下次再和你一决高下!");
                    System.out.println("--------------------");
                    System.out.println();

                }
          }catch(InputMismatchException e){  
                System.out.println("程序运行出错:输入非法字符!");  
          }finally{  
                System.out.println("\n谢谢使用!");  
            }  
            input.close();  
        }


    }

我们在写任何一个项目的时候,首先就是要构思这个项目分成几个板块,这几个板块都是些什么呢? 我该如何用代码的形式把他们一一写出来,最后能达到我期待的那个效果。

以上是我在这个项目中认为更加注意的代码了哈,并没有全部贴上去,当然你要结合自己想要写的东西的需求去调整,用什么样的方法有效,相信你会找到适合你的解决方式咯!

github代码上传在这里:
https://github.com/Liumce/personguess.git

请各位多指教咯! 谢谢

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

liumce

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值