嗨,大家好,我需要这个问题的帮助:掷骰子游戏有两个六面骰子。玩游戏的用户将掷出两个骰子,并且将生成介于1和6之间的两个随机数。这两个数字的总和将用于决定下一步。如果总和是2,3或12,则玩家获胜。如果总和是7或11,则他/她输了。如果总和为4、5、6、8、9或10,则程序会自动再次掷骰子,直到玩家赢或输。每次掷骰后,都会提示玩家输入。玩家应该决定游戏是否应该继续。每次掷骰子后,也应显示获胜和输掉的游戏数量。我已经设法使第一部分开始工作,但是无法弄清楚如何提示用户是否希望继续或他们赢得/输了多少游戏
public class DiceGame {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
while (true) {
int dice1=(int)(Math.random()*6+1);
int dice2=(int)(Math.random()*6+1);
int sum = dice1 + dice2;
System.out.println("Roll: total = " + sum);
if (sum==2 || sum==3 || sum==12) {
System.out.println("Sorry with a " + sum + " you loose :(");
break;
}
else if(sum==7 || sum==11) {
System.out.println("With a " + sum + " you win :)");
break;
}
}
}
}
扫描仪可用于提示用户询问他/她是否要继续。
您甚至可以跟踪编号。掷骰子的次数。
import java.util.Scanner;
public class DiceGame {
public static int attempt = 1;
/**
* @param args
* the command line arguments
*/
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int dice1 = (int) (Math.random() * 6 + 1);
int dice2 = (int) (Math.random() * 6 + 1);
int sum = dice1 + dice2;
while (true) {
System.out.println();
System.out.println("Rolling dice for " + attempt + " time!");
dice1 = (int) (Math.random() * 6 + 1);
dice2 = (int) (Math.random() * 6 + 1);
sum = dice1 + dice2;
System.out.println("Roll: total = " + sum);
if (sum == 2 || sum == 3 || sum == 12) {
System.out.println("Sorry with a " + sum + " you loose :(!");
System.out.println();
break;
} else if (sum == 7 || sum == 11) {
System.out.println("With a " + sum + " you win :)!");
System.out.println();
break;
}
System.out.println();
System.out.println("Do you wish to continue? Press 'y' for YES or ANY key for EXIT");
if (!scanner.next().equalsIgnoreCase("y")) {
break;
}
attempt++;
}
System.out.println("Thanks for playing dice game, you rolled the dice " + attempt + " times!");
}
}
EDIT:
如果要在总和为4 5 6 8 9 10时自动掷骰子,则不再需要Scanner,即用户输入是否继续。
这是相同的解决方案。
public class DiceGame {
public static int attempt = 1;
public static void main(String[] args) {
int dice1 = 0;
int dice2 = 0;
int sum = 0;
while (true) {
System.out.println();
System.out.println("Rolling dice for " + attempt + " time!");
dice1 = (int) (Math.random() * 6 + 1);
dice2 = (int) (Math.random() * 6 + 1);
sum = dice1 + dice2;
System.out.println("Roll: total = " + sum);
if (sum == 2 || sum == 3 || sum == 12) {
System.out.println("Sorry with a " + sum + " you loose :(!");
System.out.println();
break;
} else if (sum == 7 || sum == 11) {
System.out.println("With a " + sum + " you win :)!");
System.out.println();
break;
// this will roll the dices automatically
// when sum is 4, 5, 6, 8, 9 or 10
} else {
System.out.println();
System.out.println("With " + sum + " dices are rolled again automatically!!");
attempt++;
}
}
System.out.println("Thanks for playing dice game, you rolled the dice " + attempt + " times!");
}
}
样品运行
Rolling dice for 1 time!
Roll: total = 4
With a 4, dices are rolled again automatically!!
Rolling dice for 2 time!
Roll: total = 6
With a 6, dices are rolled again automatically!!
Rolling dice for 3 time!
Roll: total = 2
Sorry with a 2 you loose :(!
Thanks for playing dice game, you rolled the dice 3 times!
我试图为一个游戏的掷骰子程序,其中用户输入一个下注金额和2个六面骰子滚动,如果7或11是滚动,他们赢了。如果掷2,3或12就输了,如果掷其他任何一个数字,它就显示该数字为一个点。它会继续掷骰子,直到掷7或该点为止,如果掷7就输了,否则就赢了。出于某种原因,在掷骰子时,他会掷骰子,然后再掷一次,看看他们是否赢了或输了。我不知道如何解决这个问题,任何帮助都不会附带
代码的目的是让两个玩家掷一对骰子。第一个掷出20分的玩家赢得比赛。我很难弄清楚如何正确地跟踪滚动的总和;它只给我当前回合的总和,然后当每个玩家滚动10次时游戏就结束了。 我如何正确地计算每个玩家游戏的总和,然后当其中一个玩家的总和等于20时停止循环?
我是一个C++初学者,我需要创建一个骰子游戏模拟掷两个骰子。我对头文件的使用感到很困惑。但首先,为什么我需要返回骰子的票面号码?其次,int roll函数做什么?来重置价值观和面孔?如果是,默认值是多少?而最后一个函数骰子(int n),我是否使用这个函数来控制骰子值的最大总和?函数必须有一个具有以下函数的类头文件:
本文向大家介绍Java编写掷骰子游戏,包括了Java编写掷骰子游戏的使用技巧和注意事项,需要的朋友参考一下 废话不多说了,直接奔主题。 **多线程&&观察者模式 题目要求:《掷骰子》窗体小游戏,在该游戏中,玩家初始拥有1000的金钱,每次输入押大还是押小,以及下注金额,随机3个骰子的点数,如果3个骰子的总点数小于等于9,则开小,否则开大,然后判断玩家是否押对,如果未押对则扣除下注金额,如果押对则奖
程序在最后未能计算出正确的和。我做错了什么?如有任何帮助,不胜感激。谢了。