- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我为 Yahtzee 编写了代码。我的代码询问用户是否想玩 Yahtzee 还是顺子。然后它会滚动,直到获得快艇或直道。
它运行良好,但需要很长时间并且需要太多轮次,所以我希望我的代码更加高效并且能够自行重新滚动。因此,如果滚动的数字是 1 2 2 3 2,我希望计算机重新滚动 1 和 3,直到它们变成 2。
我刚刚开始学习如何用 C++ 编程,所以我对编程主题的了解有限。我知道如何使用循环、switch、if 和 else 语句。任何建议或简单的解决方案都会有所帮助。
我有一些关于如何让计算机重新滚动的想法,但它们似乎不起作用。如果您能够弄清楚如何让计算机重新滚动,请向我提供对代码的修改,并指导我如何做到这一点。
int die3 = 0;
int die4 = 0;
int die5 = 0;
int roundCounter = 0;
bool yahtzeeNotFound = true;
bool yahtzeeGame = true;
char game[4] = "";
//ask user if they want to play for Yahtzee or Straight
printf("Lets play Yahtzee!\n Do you want to play for a Yahtzee or a Straight? (Y/S)");
scanf("%s", game);
//if user wants to play Yahtzee, program rolls for same numbers from all the dice.
if (tolower(game[0]) == 'y')
{
yahtzeeGame = true;
//this is included so that new numbers are rolled after each round.
srand(time(0));
//if the condition of an unfound Yahtzee is met, the program proceeds to enter the loop.
while (yahtzeeNotFound)
{
roundCounter++;
//the dice are all rolled at same time.
die1 = rand() % 6 + 1;
die2 = rand() % 6 + 1;
die3 = rand() % 6 + 1;
die4 = rand() % 6 + 1;
die5 = rand() % 6 + 1;
//the numbers rolled are printed for user to see.
//the counter counts each round, so user knows how many rounds it take for a Yahtzee.
printf("ROUND # %d\n\n", roundCounter);
printf(" Die 1 = %d\n", die1);
printf(" Die 2 = %d\n", die2);
printf(" Die 3 = %d\n", die3);
printf(" Die 4 = %d\n", die4);
printf(" Die 5 = %d\n\n\n\n", die5);
//when all the dice have rolled the same number, a Yahtzee is achieved.
if ((die1 == die2) && (die1 == die3) && (die1 == die4) && (die1 == die5))
{
printf(" Congratulations! You finally reached Yahtzee after %d rounds!\n", roundCounter);
//when the Yahtzee is achieved, the program exits the loop.
break;
}
}
}
else
{
//if the user does not play for a Yahtzee, they must play for a straight.
yahtzeeGame = false;
//this ensures that new number are rolled after each round.
srand(time(0));
//the program enters the loop.
while (yahtzeeNotFound)
{
//the counter is declared.
roundCounter++;
//the 5 dice are rolled at the same time.
die1 = rand() % 6 + 1;
die2 = rand() % 6 + 1;
die3 = rand() % 6 + 1;
die4 = rand() % 6 + 1;
die5 = rand() % 6 + 1;
//the numbers are printed out with the round number for the user to see.
printf("ROUND # %d\n\n", roundCounter);
printf(" Die 1 = %d\n", die1);
printf(" Die 2 = %d\n", die2);
printf(" Die 3 = %d\n", die3);
printf(" Die 4 = %d\n", die4);
printf(" Die 5 = %d\n\n\n\n", die5);
//if the numbers rolled have unique values, the user has a Straight.
if ((die1 != die2) && (die1 != die3) && (die1 != die4) && (die1 != die5) && (die2 != die3)
&& (die2 != die4) && (die2 != die5) && (die3 != die4) && (die3 != die5) && (die4 != die5))
{
// The user is told how many rounds it took for them to get a Straight.
printf(" Congratulations! You finally reached a Straight after %d rounds!\n", roundCounter);
//when the user has a Straight, the program exits the loop.
break;
}
}
}
return 0;
}
最佳答案
我帮助教人们如何编码,这是一个常见问题。
答案是......刚刚开始。
您大致知道从哪里开始,知道基本结构,这就是您所需要的。
不要试图一次性完成所有工作,只需迈出一小步,测试它是否有效,然后再采取另一步。
你会犯错误,事情不会顺利进行,这是完全正常的和预期的。学习编码有点像通过马拉松学习走路,你会绊倒,你会摔倒,但你只需要爬起来,然后再次向前迈进。每次你尝试,你就能跑得更远一点,进步是令人振奋的。
编辑:回应Q的编辑,特别询问如何重新滚动。
因此,要掷第二个骰子,您需要使用以下代码行:
die2 = rand() % 6 + 1;
要重新滚动它,请使用同一条线。
最终您将希望将代码转换为对六个骰子使用数组。这将允许更动态、更智能的代码,并且重复次数更少。但这是第二个版本,小步骤,让一些东西工作,然后让其他东西工作,然后调整它们以更好地工作等等。
关于c - 需要在 Yahtzee 中重新启动计算机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52808624/
我正在制作 java yahtzee 游戏,我只是想知道以下代码在任何情况下是否都会产生误报 die 是一个数组,其中包含每个骰子的伪随机(Math.random())数字,我已使用冒泡排序对它们进行
我拿回了学校作业,要求我们为 Yahtzee 游戏创建一些函数,其中之一是同类函数。这是我写的代码,我得到的评论是:“你必须能够检查所有数字直到 nrOfDieValues。”我不太确定如何检查最多
对于一项学校作业,我们正在努力用 java 实现 yahtzee 游戏,但我在为直道(小直道和大直道,这意味着 4/5 连续数字用于小直道和 5/5 表示大)。 我做了一个我认为应该有效的算法,但实际
我正在参加初学者的java类(class)。我已经使用这个 yahtzee 程序三周了,但我仍然无法弄清楚这一点。我需要滚动 5 个骰子两次,看看我是否得到一个 yahtzee(5 个骰子相同) 我在
我为 Yahtzee 编写了代码。我的代码询问用户是否想玩 Yahtzee 还是顺子。然后它会滚动,直到获得快艇或直道。 它运行良好,但需要很长时间并且需要太多轮次,所以我希望我的代码更加高效并且能够
我正在学习 MIT OpenCourseWare 计算机编程入门类(class),我不确定我是否以正确的方式解决了一个简单的模拟问题。 What is the probability of rolli
这是我的情况,我目前正在创建一个 Yahtzee game在 Lazarus IDE 中使用 Turbo Pascal 语言,我负责开发的计分方面,我已经完成了计分的下半部分,并且已经开始了较高部分,
在我制作的 Yahtzee 游戏中,我创建了一个有效的 javascript 函数来检查 5 个数字的数组是否有小顺子。我已经对它进行了无休止的测试,我相信它在 100% 的时间内都能正常工作,但就效
我一直在 StackOverflow 上寻找一个简单的 C++ 网络 TCP 连接,我似乎只找到了 Java、Python 和 C#。我知道 Python 或 Java 可以建立简单的连接,但大多数情
更新:我发现我的 DP 解决方案没有正确处理奖金的问题。我向状态数组添加了一个维度来表示前 6 个类别的总和。但是,解决方案超时。这不是很严重的超时,因为每个测试用例在我的机器上可以在不到 1 秒的时
我被要求用 Java 编写一个 Yahtzee 游戏。问题是,我有一个包含 5 个值的 vector (代表骰子),这些值是使用以下代码随机生成的: Value= 1 + (int)(Math.ran
我正在为学校的一项作业制作这个程序,但是我们需要获得获得 Yahtzee 所需的最高掷骰数和获得 Yahtzee 所需的最少掷骰数。然后我们需要找到平均卷数。目前,我对确定获得 Yahtzee 的最高
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 5 年前。 Improve this q
我正在尝试检查保留的骰子掷骰(最多 5 个)是否是 3 个同类,因此我正在尝试将骰子掷骰值相互比较。 R的第一个值当然显示为0,但是代码运行后R的第二个值每次都显示为8191,我不太清楚为什么。 我也
我在初学者 C++ 类(class)中,我正在尝试构建一个 Yahtzee 游戏,用户可以在该游戏中掷骰子,希望所有五个骰子都获得相同的数字。我们需要尝试握住弹出次数最多的骰子(例如,我们掷出“4 5
我目前无法让我的重压机在 100% 的时间内正常工作。有时它的行为是正确的,只会改变我选择的内容,但有时它似乎有自己的想法。这是我的代码中的一些片段。 Int main() ... whi
我想输入一些与 rand 和 srand 函数混淆的“简单”代码,并且我尝试编写 Yahtzee rolls 的模拟器。它随机掷出 5 个骰子,如果它们匹配,它会打印出你有一个 Yahtzee 以及需
我是 C++ 的初学者,这是家庭作业,但我卡住了。我还有一个问题,然后我就完成了。我想不出一种算法可以判断用户输入的是小直线 (1234) 还是 (2345) 还是 (3456)。我知道如何使用循环来
我是一名优秀的程序员,十分优秀!