Java简化实现⽯头剪⼑布游戏
之前写过⼀次关于剪⼑⽯头布的游戏,代码量过⼤,后期维护困难,逻辑关系复杂(详情见:)
所以,这次写了⼀个接⼝和⽅法调⽤版本的,⽅便于后期的维护和拓展。
⾸先,写程序之前要先明⽩游戏的需求:
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】
/*
java switch case string
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出的是:⽯头
  最终结果是:⼈获胜!
【以下为完整代码】

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。