之前写过一次关于剪刀石头布的游戏,代码量过大,后期维护困难,逻辑关系复杂

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

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

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出的是:石头
  最终结果是:人获胜!

 

【以下为完整代码】

 

 

java 剪刀石头布 java剪刀石头布程序_System

 

 

java 剪刀石头布 java剪刀石头布程序_java 剪刀石头布_02

 

 

java 剪刀石头布 java剪刀石头布程序_java 剪刀石头布_03

 

 

java 剪刀石头布 java剪刀石头布程序_随机数_04