c# - 使用掷骰子方法的 C# 掷骰子游戏
问题描述
下面的代码是用于掷骰子游戏的。我不确定代码的逻辑是否正确。我想对其进行测试,但是当我运行此代码时,没有给出任何输出。它编译并显示一个没有输出的空白屏幕。我无法弄清楚为什么什么都没有显示。此外,任何关于代码逻辑的建议都将不胜感激。当最初未滚动 2、3、7、11 或 12 时,我对如何执行重新滚动过程感到困难。谢谢
对于那些不熟悉游戏的人:掷出 2 个骰子,掷出 7 或 11 即为获胜。2、3 或 12 是损失。任何其他数字都成为“点”,玩家重新滚动直到点或 7 被滚动。匹配点就是胜利。这一次 7 是损失。
class Craps
{
const int dieSides = 6;
int roll;
//const int repeatGame = 1000;
Random random = new Random();
public void RollDice()
{
int die1 = 0;
int die2 = 0;
die1 = random.Next(6) + 1;
die2 = random.Next(6) + 1;
roll = die1 + die2;
Console.WriteLine("The shooter roled: {0}", roll);
}
public void PlayCraps()
{
RollDice();
int gameStatus = 0;
int point = roll;
int numRolls = 1;
while (gameStatus < 1)
{
if (roll == 7 || roll == 11)
{
Console.WriteLine("You won!");
break;
}
else if (roll == 2 || roll == 3 || roll == 12)
{
Console.WriteLine("You lost.");
break;
}
else
{
RollDice();
Console.WriteLine("The point is: {0}", point);
while (point != roll || roll != 7)
{
if (roll == point)
{
Console.WriteLine("You won!");
numRolls++;
gameStatus++;
}
if (roll == 7)
{
Console.WriteLine("You lost");
numRolls++;
gameStatus++;
}
RollDice();
numRolls++;
}
}
}
}
static void Main(string[] args)
{
Craps NewGame = new Craps();
Console.ReadLine();
}
}
}
解决方案
在您的Main
函数中,您正在创建一个Craps
对象,但从未对它做任何事情。
如果你调用Craps.PlayCraps()
,那将导致它实际上做一些事情,而不是创建一个对象然后等待用户输入。
推荐阅读
- python - 如何使用正则表达式在字符串中查找重复的单词
- javascript - 在Angular 12 TypeScript中设置超时后调用函数?
- python - 如何修复:“TypeError:无法解压不可迭代的 NoneType 对象”
- bash - 如何在第二列中对重复项进行分组并在第三列中为它们分配一个新编号?
- c++ - 'struct std::common_reference 中没有名为 'type' 的类型'
- linux - 防止 SLURM 在 /home 文件夹中运行
- amazon-web-services - 为 Cloudtrail 启用 AWS Cloudwatch 日志的好处?
- java - C# 和 Java 的散列结果不同
- android-studio - 为 recyclerView 中的每个项目暂停和恢复下载
- r - 在 bertin1953 中使用 st_transform 重新投影