zoukankan      html  css  js  c++  java
  • Java简化实现石头剪刀布游戏

    之前写过一次关于剪刀石头布的游戏,代码量过大,后期维护困难,逻辑关系复杂(详情见:https://www.cnblogs.com/1355861728--qqcom/p/11959565.html

    所以,这次写了一个接口和方法调用版本的,方便于后期的维护和拓展。

    首先,写程序之前要先明白游戏的需求:

    1.电脑和人各生成“石头、剪刀、布”中任意一个结果。

    2.比较电脑和人各自的“值”,并输出结果(值代表:石头、剪刀、布)。


    开始写代码:

    【需求1】

    /*

    新建Computer接口和Person接口,并且在其中生成自己的随机数(随机数的值为:0~2):

    */

    public interface Computer {
    int computerIntResult = new Random().nextInt(3);
    }

    public interface Person {
    int personIntResult = new Random().nextInt(3);
    }
    /*

    1.因为电脑和人生成的是数字,而我们最后输出的是“石头剪刀布”的汉字,所以我们需要有int和String的虚拟转化方法,即change类。
    2.change类中创建changeShow方法,
    3.name的值用来区分电脑和人的不同结果
    4.changeNumber的值用来接收人和电脑的随机数。
    5.新建一个
    stringRandomNumber的变量,用于输出虚拟转化后的结果,=null是为了以后要是写循环就可以清除上一次的值。
    6.switch中的表达式我们用 changeNumber,当传过来的值(电脑或者人的随机数)为0的时候,stringRandomNumber的值为:剪刀(1和2就不解释了)。
    7.最后输出:Person/Computer出的是:剪刀/石头/布
    */
    public class Change {
    public void changeShow(String name,int changeNumber){
    String stringRandomNumber = null;
    switch (changeNumber){
    case 0:
    stringRandomNumber="剪刀";
    break;
    case 1:
    stringRandomNumber="布";
    break;
    case 2:
    stringRandomNumber="石头";
    break;
    default:
    break;
    }
    System.out.println(name+"出的是:"+stringRandomNumber);
    }

    }

    【需求2】
    /*
    1.写一个类Compare实现Computer和Person的接口,这个类是用来比较人和电脑各自值的结果。
    2.在类中写一个show方法,方便于之后在测试类中调用测试。
    3.写两个输出语句提示出人和电脑各自生成的随机数为多少。
    4.
    调用Change类里面的changeShow方法并且分别将电脑和人的随机数赋值给changeShow方法里面的changeNumber,实现将随机数输出为汉字。
    5.
    使用电脑和人的随机数进行判断最后的结果。
    */
    public class Compare implements Computer,Person{
    public static void show(){
    System.out.println("电脑随机数为:"+computerIntResult);
    System.out.println("人的随机数为:"+personIntResult);
    Change change= new Change();
    change.changeShow("Computer",computerIntResult);
    change.changeShow("Person",personIntResult);
    if(computerIntResult>personIntResult){
    System.out.println("最终结果是:电脑获胜!");
    }else if(computerIntResult==personIntResult){
    System.out.println("最终结果是:平局!");
    }else{
    System.out.println("最终结果是:人获胜!");
    }
    }
    }

    /*
    最后编写测试类TestMain直接调用Compare类中的show方法
    */
    public class TestMain {
    Compare compare = new Compare();
    public static void main(String [] args){
    Compare.show();
    }
    }
    /*
    输出结果(例举一种):
    */

      电脑随机数为:0
      人的随机数为:2
      Computer出的是:剪刀
      Person出的是:石头
      最终结果是:人获胜!

    【以下为完整代码】

     

     

     

     











  • 相关阅读:
    logstash收集nginx日志
    logstash收集java日志,多行合并成一行
    一个配置文件收集多个日志-if根据type类型判断
    CentOS 7 kibana安装配置
    CentOS7 logstash配置部署
    Centos7 Elasticsearch部署
    awk命令
    top命令
    java中的getClass()函数
    java容器
  • 原文地址:https://www.cnblogs.com/1355861728--qqcom/p/12452637.html
Copyright © 2011-2022 走看看