日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java摇两个色子代码_摇个骰子 - mokuang - 博客园

發布時間:2023/12/20 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java摇两个色子代码_摇个骰子 - mokuang - 博客园 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

分析要求

一開始思考如何實現骰子類的時候,感覺只需要實現得到一個1到6的隨機數的方法,這樣看來似乎不是一件困難的事,原計劃半個小時內完成,然而在老師的指導下,漸漸發現自己代碼中不規范的地方所在。現在思考的問題變成,如何實現一個規范的骰子類,代碼中變量的定義是否規范,是否將骰子獨立成一個可重復調用,適應一般情況的類,而不是當條件變更的時候還要進行反復修改,這就是老師所要求要學會面向對象的思考。

設計實現

如圖所示的各類間關系,當骰子數只有一個的時候,直接使用Dice類的方法;當骰子數不只一個的時候,通過使用骰盅Cup類調用Dice類的方法。

代碼說明

1.Dice.java

//骰子類的實現

public class Dice {

private int faceValue; //定義骰子面值

public Dice(){

faceValue = (int)(Math.random() * 6) + 1; //獲得一個1-6的隨機數

}

public void roll(){ //搖骰子

faceValue = (int)(Math.random() * 6) + 1;

}

public void unnormalroll(){ //搖不出4的骰子

while(faceValue==4){

faceValue = (int)(Math.random() * 6) + 1;

}

}

public int getValue(){ //獲得骰子數值

return faceValue;

}

}

2.Cup.java

//骰盅類的實現:可以放入多個骰子。

public class Cup {

private int num=1;// num記錄骰子的個數,默認為一個

private Dice dice[]; //聲明骰子數組

public Cup(){ //往骰盅放入一個骰子

dice = new Dice[num];

}

public Cup(int num){ //往骰盅放入多個骰子

this.num = num;

dice = new Dice[num];

}

public void roll(){ //搖動骰盅

int i;

for(i=0;i

dice[i] = new Dice();

}

}

public int getValue(){ //一個骰子開盅看大小,并返回該數值

return (dice[0].getValue());

}

public void getValues(int a[]){ //多個骰子開盅看大小。并將每個骰子的數值通過整型數組傳出

int i;

for(i = 0;i < num;i++)

a[i]=dice[i].getValue();

}

public int getTotal(){ //返回多個骰子的總數值

int sum=0,i;

for(i=0;i

sum += dice[i].getValue();

}

return sum;

}

}

3.Player.java

//Player1進行測試

import java.util.Scanner;

public class Player1 {

public static void main(String[] args){

int i,myDice,normal; //myDice定義骰子的個數,normal標記是否使用正常骰子

Scanner input = new Scanner(System.in);

System.out.println("你要幾個骰子?");

myDice = input.nextInt(); //從鍵盤讀入骰子數量

if(myDice==1){//一個骰子的情況

System.out.println("使用搖不出4的骰子?Yes--0,No--1"); //特殊骰子情況

normal = input.nextInt();

Dice dice = new Dice();

if(normal==1) //搖骰子

dice.roll();

else

dice.unnormalroll(); //特殊骰子

System.out.println("You get "+dice.getValue());//輸出所搖數值

}else{//多個骰子的情況

int[] myValue = new int[myDice];

Cup dice2 = new Cup(myDice);

dice2.roll();

dice2.getValues(myValue); //通過myvalue數組獲取每個骰子的大小

for(i = 0;i < myDice;i++) //輸出每個骰子的大小

System.out.println("第 "+(i+1)+"個骰子為:"+myValue[i]);

System.out.println("骰子總數為"+dice2.getTotal());//輸出總大小

}

}

}

測試運行

1.一個正常骰子

2.一個特殊骰子

3.多個骰子

小結

總的來看,通過反復的修改,調試,最后用了將近兩個小時。對比自己預估的時間,在要求分析和編寫代碼所用的時間較多,仔細思考,編寫代碼的不熟練也消耗了大部分時間,以及自己編寫代碼前,沒有思考好各個類間的關系,導致多次大面積重改代碼浪費許多時間。現在想想,寫代碼前先搞清楚類間關系,畫好類圖,養成這樣的好習慣,對整體效率的提升有很大的意義。

總結

以上是生活随笔為你收集整理的java摇两个色子代码_摇个骰子 - mokuang - 博客园的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。