导航:首页 > 编程知识 > 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如何编程模拟一个骰子相关的资料

热点内容
网站怎么换模板 浏览:511
ps处理后的文件打印出来很模糊 浏览:204
有什么看污污动漫的网站 浏览:184
用户名邮箱手机号数据库 浏览:879
cad不能启动此对象的源应用程序 浏览:901
微信上的骗子都怎么骗人 浏览:294
加工中心编程如何算重量 浏览:758
什么是机灵数据 浏览:724
ecshop配置文件 浏览:116
excel两个表格怎么对比相同数据 浏览:383
ps4港服文件怎么弄 浏览:560
苹果6splusnote5s6 浏览:426
定向流量30G都包括哪些APP 浏览:352
apple和瑶瑶综艺 浏览:351
打开word所在文件夹自动弹出 浏览:390
c怎么编程改名字 浏览:146
哪些电视剧app不带logo的 浏览:406
开机后桌面变黑色桌面文件丢失 浏览:136
网络电视怎么用遥控器 浏览:953
我的世界json打开失败 浏览:867

友情链接