您好我正在尝试为骰子滚动游戏创建一个频率表。以下是我正在进行的项目的说明:
创建一个模拟滚动标准6面骰子(编号为1 - 6)的应用程序。
现在我知道如何使用随机数类,但我被困在项目的摘要表部分,我只需要一些可以帮助我开始的东西
这是我到目前为止在项目中的位置,因为你会看到我的汇总表没有意义:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
namespace Dice
{
class Program
{
static void Main(string[] args)
{
Random rndGen = new Random();
Console.WriteLine("welcome to the ralph dice game");
Console.Clear();
Console.WriteLine("how many times do you want to roll");
int rollDice = int.Parse(Console.ReadLine());
for (int i = 0; i < rollDice; i++)
{
int diceRoll = 0;
diceRoll = rndGen.Next(1,7);
string table = " \tfrequency\tpercent";
table +="\n"+ "\t" + i + "\t" + diceRoll;
Console.WriteLine(table);
}//end for
Console.ReadKey();
}
}
}
答案 0 :(得分:0)
显示一个表格,显示每个骰子被掷骰的次数。
如果我理解正确,这意味着骰子获得1,2,3等的次数......你需要一个数组来存储所有结果计数,并在完成所有滚动时输出。
注意:未经测试的代码。
int[] outcomes = new int[6];
// init
for (int i = 0; i < outcomes.Length; ++i) {
outcomes[i] = 0;
}
for (int i = 0; i < rollDice; i++)
{
int diceRoll = 0;
diceRoll = rndGen.Next(1,7);
outcomes[diceRoll - 1]++; //increment frequency.
// Note that as arrays are zero-based, the " - 1" part turns the output range
// from 1-6 to 0-5, fitting into the array.
}//end for
// print the outcome values, as a table
跟踪会话数量。
只是使用另一个变量,但你的代码显然似乎没有实现这个部分。一种简单的方法是使用do-while循环:
do {
// your code
// ask if user wish to continue
bool answer = // if user want to continue
} while (!answer);