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出的是:石頭
  最終結果是:人獲勝!

 

【以下為完整代碼】

 

 

 

 

 

 

 

 

 

 












免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM