【发布时间】:2016-04-18 22:30:01
【问题描述】:
在课堂上,我们收到了一项任务,要求我们编写一个模拟掷骰子(或多个骰子)的 C++ 程序。很简单,我做得很简单,甚至让它一次掷出超过 1 个骰子并计算一个数字被掷出的次数(2-12,正如你将在底部的代码中看到的那样)。但后来老师又给了我们一个作业。让程序滚动用户输入多少个骰子,根据用户输入骰子有多少面,用户希望骰子滚动多少次,以及能够“握住”骰子,就像在 Yahtzee 游戏中一样。
我和我的同学真的很困惑如何做到这一点,老师给我们创建“保持”功能的提示涉及数组。我们很困惑,因为我们唯一的 Array 示例是我们在课堂上做的示例,我们作为示例制作的原始 Dice 模拟器和滚动两个骰子等。
以下是我目前所拥有的代码。我知道并非所有变量都有目的,我尝试使用数组复制代码下面的示例,但我知道我做的不对,所以请放轻松。我不是要你为我做任务,我只是需要一些关于下一步做什么以及我做错了什么的指导。带有注释标签的代码是我提到的原始骰子模拟器,上面是我正在做的。任何帮助表示赞赏。
srand (time(NULL));
int dicenumber,diceroll,sides,rolls,rolling;
//Be able to hold, ask how many dice to roll, how many sides per die, and how many rolls
cout<<"\033[1;36m How many dice would you like to roll? \033[0m \n";
cin>>dicenumber;
cout<<"\033[1;36m How many sides per die? \033[0m \n";
cin>>sides;
cout<<"\033[1;36m How many times do you want to roll? \033[0m \n";
cin>>rolls;
//Sets total rolls to 0
for (rolling=0;rolling<rolls;rolling++)
diceroll=rand()%sides+1;
cout<<diceroll;
//Initialize variables and randomness
//srand (time(NULL));
//int COUNTER,ROLLS,TOTALS[13];
//Set totals to 0
//for (COUNTER=0;COUNTER<13;COUNTER++)
//TOTALS[COUNTER]=0;
//Simulate 1,000,000 dice rolls
//for (ROLLS=0;ROLLS<1000;ROLLS++)
//TOTALS[rand()%6+1+rand()%6+1]++;
//Output the totals
//for (COUNTER=1;COUNTER<13;COUNTER++)
//cout<<COUNTER<<" = \033[1;36m"<<TOTALS[COUNTER]<<"\033[0m \n";
【问题讨论】:
-
缩进的内容并不意味着它在它所在的循环内。
-
是的,C++(大部分)对空格不敏感。从逻辑上讲,您需要大括号围绕第一个
for循环的两行。 -
用户可以“持有”多少个骰子是否有上限或假设上限?如果不是,您将不得不根据用户的选择动态分配一个数组
-
我知道如何使用循环,我只是把我们在课堂上一起做的事情作为起点。我的老师说a
for循环如果在括号中就不需要括号,我只是对这个项目感到很困惑,向我解释的方式并没有帮助我理解。 -
袋鼠,我怎样才能使数组创建的空格数等于用户整数?
标签: c++ arrays probability dice