導航:首頁 > 編程知識 > java如何編程模擬一個骰子

java如何編程模擬一個骰子

發布時間:2025-04-26 08:52:04

A. 寫一個java程序,搖兩個骰子,要有骰子類,用(int)(1+Math.random()*(6)),直到兩個值相等為止

publicclassDice{
publicintnumber;
publicstaticvoidroll(Dicex){
x.number=(int)(1+Math.random()*(6));
}
publicstaticvoidmain(String[]args){
Dicea=newDice();
Diceb=newDice();
roll(a);
roll(b);
while(a.number!=b.number){
System.out.println("Notequal!a="+a.number+",b="+b.number);
roll(a);
roll(b);
}
System.out.println("Equal!a=b="+a.number);
}

}

B. 擲骰子模擬程序 Java

publicclassTestDieRoll{
privateclassDieRoll{
版privatefinalintDIES=6;
privateintroll(){
return(int)(Math.floor(Math.random()*DIES+1));
}
}
publicstaticvoidmain(String[]args){
DieRolld=newTestDieRoll().newDieRoll();
int[]arr=newint[6];
for(inti=0;i<1000;i++)
arr[d.roll()-1]++;
for(inti=0;i<arr.length;i++){
System.out.println("擲得"+(i+1)+"點的權次數為"+(arr[i])+"次");
}
}
}

C. 如何用java程序實現,求到一百需要擲幾次骰子

packagecom.test;

importjava.util.Random;

publicclasssaizi{
publicstaticvoidmain(String[]args){

intcount=0;//用於統計次數
intsum=1;//用於記錄骰子和,退<1></1>就減。

while(sum<100){
count++;//每次循環都加1次
Randomr=newRandom();
intnum=r.nextInt(6);
intdiceCount=num+1;//用於模擬骰子點數
sum+=diceCount;//每一次都加上骰子點數
while(ifLoop(sum)){
sum=changeSum(sum);
}
}
System.out.println(count);
}

publicstaticintchangeSum(intsum){
//開始判斷退格
while(ifLoop(sum)){
Randomr=newRandom();
intnum=r.nextInt(2);
if(sum==8){
if(num==0){//使用隨機數模擬隨機退4或6
sum-=4;
}else{
sum-=6;
}
}elseif(sum==15||sum==17||sum==19||sum==23||sum==21||sum==25){
sum=20;
}elseif(sum==20){
if(num==0){
sum=70;
}else{
sum=90;
}
}elseif(sum==28){
if(num==0){//使用隨機數模擬隨機進3或5
sum+=3;
}else{
sum+=5;
}
}elseif(sum==30||sum==34||sum==80){
if(num==0){//使用隨機數模擬隨機退3或5
sum-=3;
}else{
sum-=5;
}
}elseif(sum==36||sum==40){
sum-=5;
}elseif(sum==43||sum==67||sum==81||sum==92){
sum-=4;
}elseif(sum==47||sum==52||sum==61||sum==69||sum==85||sum==83){
sum-=6;
}elseif(sum==56||sum==65||sum==91||sum==93){
sum-=5;
}elseif(sum==72||sum==74||sum==76||sum==78){
sum=70;
}elseif(sum==87){
sum=80;
}elseif(sum==94||sum==95||sum==97){
sum=90;
}elseif(sum==98){
if(num==0){//使用隨機數模擬隨機退2或5
sum-=2;
}else{
sum-=5;
}
}elseif(sum==99){
sum-=4;
}
}

returnsum;

}

publicstaticbooleanifLoop(intsum){
intarray[]={8,15,17,19,20,21,23,25,28,30,34,36,40,43,47,52,56,61,65,67,69,70,72,74,
76,78,80,81,83,85,87,90,91,92,93,94,95,97,98,99};
for(inti=0;i<array.length;i++){
if(sum==array[i]){
returntrue;
}elseif(sum==70){
System.out.println("樂趣怪!");
returnfalse;
}elseif(sum==90){
System.out.println("驚喜怪!");
returnfalse;
}
}
returnfalse;
}
}

D. 求教java骰子編程問題

importjava.util.Random;
importjava.util.Scanner;


publicclassGame{

Playerhuman;
Playercomputer;
Rulerule;
intturnNo;
/**
*開始游戲
*/
publicvoidstart(){
/*初始化*/
human=newHumanPlayer();
computer=newComputerPlayer();
rule=newRule();
turnNo=1;
/*開始*/
while(true){
System.out.println("turn"+turnNo+++":");
human.turn(rule);
if(human.isWin()){
System.out.println("humanwin!");
break;
}
System.out.println("");
computer.turn(rule);
if(computer.isWin()){
System.out.println("computerwin!");
break;
}
System.out.println("*******************************************");
System.out.println("human:"+human.score);
System.out.println("computer:"+computer.score);
System.out.println(" ");
}

}
/**
*游戲規則
*@authorAdministrator
*
*/
classRule{
booleanisMustRollAgain;//是否必須再擲骰子
booleanisMustEndTurn;//是否必須結束當前回合

publicvoidinit(){
isMustRollAgain=false;
isMustEndTurn=false;
}
publicintcountScore(intdice1,intdice2){
init();
if(dice1==1||dice2==1){//有一個骰子是1回合得0分且必須結束回合
isMustEndTurn=true;
return0;
}
if(dice1%2==1&&dice2%2==1){//兩個都是單數積25分且必須再擲骰子
isMustRollAgain=true;
return25;
}
if(dice1%2==0&&dice2%2==0){//兩個都是雙數積兩倍骰子的數值且必須再擲骰子
isMustRollAgain=true;
return2*(dice1+dice2);
}
returndice1+dice2;
}
}
/**
*游戲選手——公共方法
*@authorAdministrator
*
*/
abstractclassPlayer{
protectedintscore=0;
protectedintdice1,dice2;
Stringname="player";
publicPlayer(){
this.score=0;
}
publicvoidturn(Rulerule){
System.out.println(name+"'sturn:");
intturnScore=roll(rule,0,score);
System.out.println("return"+turnScore);
score+=turnScore;
System.out.println(name+"get"+turnScore+".aggregatescore:"+score);
}

publicbooleanisWin(){
returnscore>=100;
}
publicintgetRollScore(Rulerule){
Randomrandom=newRandom();
dice1=random.nextInt(6)+1;
dice2=random.nextInt(6)+1;
System.out.println("dice1:"+dice1+"dice2:"+dice2);
introllScore=rule.countScore(dice1,dice2);
System.out.println("rollscore:"+rollScore+".");
returnrollScore;
}
publicintroll(Rulerule,intturnScore,intscore){
introllScore=getRollScore(rule);
if(rule.isMustEndTurn){
turnScore=0;
System.out.println(".");
returnturnScore;
}
else{
turnScore+=rollScore;
if(turnScore+score>=100)
returnturnScore;
System.out.println("get"+turnScore+"pointforthisturnnow");
if(rule.isMustRollAgain){
System.out.println("mustrollagain!");
turnScore=roll(rule,turnScore,score);
}
else{
charch=thinkingStrategy(rule,turnScore,score);
if(ch=='y'){
turnScore=roll(rule,turnScore,score);
}
else{
returnturnScore;
}
}
}
returnturnScore;
}
(Rulerule,intturnScore,intscore);
}
/**
*人類玩家
*@authorAdministrator
*
*/
classHumanPlayerextendsPlayer{
Stringname="human";
publicHumanPlayer(){
super();
super.name=this.name;
}
@Override
publiccharthinkingStrategy(Rulerule,intturnScore,intscore){
System.out.println("rollagin?(y/n)");
charch=newScanner(System.in).next().charAt(0);
returnch;
}
}
/**
*電腦玩家
*@authorAdministrator
*
*/
{
Stringname="compter";
publicComputerPlayer(){
super();
super.name=this.name;
}
@Override
publiccharthinkingStrategy(Rulerule,intturnScore,intscore){
// if(newRandom().nextInt(100)<100-turnScore-score){
if(turnScore<40){
System.out.println("computerchoosetorollagain!");
return'y';
}
else{//回合得分超過40選擇結束回合
System.out.println("computerchoosetohold(endthisturn)!");
return'n';
}
}
}

publicstaticvoidmain(String[]args){
newGame().start();
}
}

不知道英語理解的是否正確。但是大致上就是這樣的。

E. 關於Java演算法編程的 做一個小游戲,電腦隨機生成三個骰子(每個骰子點數為1~6),將這三個數相加。

1 設計一個int數組!長度為3.
2 設計3個變數!a, b, c. 分別取值為1-6.int a= new Random(6)+1.重復b, c.
3 把a, b, c放入數組中!
4 循環遍歷數組把三內個元素相容加 輸出這把總和是
5 判斷總和能否被2整除,如果能,輸出是雙數,不能輸出是單數!
6 判斷大小 大於等於4&&小於等於10 顯示開小
大於等於11&&小於等於17顯示開大
7 遍歷數組 判斷三個元素是否相等 相等顯示開豹子。。

手機打字!!有什麼問題在問吧

F. 編寫一個簡單的 Java程序,模擬兩個玩家擲骰子

Java程序,模擬兩個玩家擲骰子,玩家按照下列

閱讀全文

與java如何編程模擬一個骰子相關的資料

熱點內容
ps去掉掃描文件無效部分 瀏覽:191
快速創建文件夾路徑路徑 瀏覽:849
京東app虛擬試衣 瀏覽:136
三星電視智能升級卡 瀏覽:327
word文件字型大小 瀏覽:460
word文檔去除下劃線 瀏覽:576
貝多芬交響曲版本 瀏覽:532
下載的視頻文件損壞了 瀏覽:119
怎麼把jpg轉成cad格式的文件大小 瀏覽:674
如何編程真人快打 瀏覽:57
double運行數據最長多少 瀏覽:367
tr90如何看數據 瀏覽:418
word裡面插了一個文件怎麼打開 瀏覽:40
蘋果7限時秒殺1999元 瀏覽:748
如何提升app推送觸達率 瀏覽:584
vba用kill刪除文件路徑錯誤 瀏覽:648
linux查看10個文件總大小 瀏覽:423
形色app怎麼回復別人 瀏覽:690
折彎機如何進入編程 瀏覽:676
編程一般要什麼配置 瀏覽:998

友情鏈接