- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
长话短说,我目前正在学习 C 编程,今天我正在尝试构建一个迷你游戏,根据玩家掷骰子的结果计算玩家总数。
我的程序功能正常,它会提示用户输入并比较他们的滚动以确保他们输入了正确的信息。
我遇到的问题是显示在程序末尾的总数似乎没有相加。无论我输入的结果如何,总值始终为 1。
有人能指引我正确的方向吗?
谢谢
#include <stdio.h>
int main(void)
{
int R1, R2, R3;
int totalScore = 0;
puts("Welcome to CRAZY dice game!");
puts("Enter Roll 1 Value: ");
scanf("%d", &R1);
while (R1 < 1 || R1 > 6) {
puts("Value is outside accepted input, try again: ");
scanf("%d", &R1);
}
puts("Enter Roll 2 Value: ");
scanf("%d", &R2);
while (R2 < 1 || R2 > 6) {
puts("Value is outside accepted input, try again: ");
scanf("%d", &R2);
}
puts("Enter Roll 3 Value: ");
scanf("%d", &R3);
while (R3 < 1 || R3 > 6) {
puts("Value is outside accepted input, try again: ");
scanf("%d", &R3);
}
if (R1 == 1 || 2) {
totalScore = totalScore + 1;
}
else if (R1 == 3 || 4) {
totalScore = totalScore + 2;
}
else if (R1 == 5 || 6) {
totalScore = totalScore + 3;
}
if (R2 < R1) {
switch (R2){
case '1':
case '2':
totalScore = totalScore + 1;
case '3':
case '4':
totalScore = totalScore + 2;
case '5':
case '6':
totalScore = totalScore + 3;
}
}
else {
totalScore = totalScore;
}
if (R3 < R2) {
switch (R3){
case '1':
case '2':
totalScore = totalScore + 2;
case '3':
case '4':
totalScore = totalScore + 4;
case '5':
case '6':
totalScore = totalScore + 6;
}
}
else if (R3 < R1) {
switch (R3){
case '1':
case '2':
totalScore = totalScore + 1;
case '3':
case '4':
totalScore = totalScore + 2;
case '5':
case '6':
totalScore = totalScore + 3;
}
}
printf("Total Score is: %d", totalScore);
}
最佳答案
这些:
if (R1 == 1 || 2)
else if (R1 == 3 || 4)
else if (R1 == 5 || 6)
没有达到您的预期。他们应该是
if (R1 == 1 || R1 == 2)
else if (R1 == 3 || R1 == 4)
else if (R1 == 5 || R1 == 6)
这个:
switch (R2){
case '1':
case '2':
totalScore = totalScore + 1;
case '3':
case '4':
totalScore = totalScore + 2;
case '5':
case '6':
totalScore = totalScore + 3;
}
应该是
switch (R2){
/* Remove the '' as R2 is not a character, but an integer */
/* Add breaks so that execution does not slip into subsequent cases */
case 1:
case 2:
totalScore = totalScore + 1;
break;
case 3:
case 4:
totalScore = totalScore + 2;
break;
case 5:
case 6:
totalScore = totalScore + 3
break;
}
其他 switch-case
也是如此。
这是很多重复的代码:
puts("Enter Roll 1 Value: ");
scanf("%d", &R1);
while (R1 < 1 || R1 > 6) {
puts("Value is outside accepted input, try again: ");
scanf("%d", &R1);
}
puts("Enter Roll 2 Value: ");
scanf("%d", &R2);
while (R2 < 1 || R2 > 6) {
puts("Value is outside accepted input, try again: ");
scanf("%d", &R2);
}
puts("Enter Roll 3 Value: ");
scanf("%d", &R3);
while (R3 < 1 || R3 > 6) {
puts("Value is outside accepted input, try again: ");
scanf("%d", &R3);
}
我建议创建一个函数并返回一个值:
int getVal()
{
static int counter = 1;
int temp;
puts("Enter Roll %d Value: ", counter);
scanf("%d", &temp);
while (temp < 1 || temp > 6) {
puts("Value is outside accepted input, try again: ");
scanf("%d", &temp);
}
counter++;
return temp;
}
并使用以下方法从 main
调用该函数:
R1 = getVal();
R2 = getVal();
R3 = getVal();
或者在 main
中使用数组,例如:
int R[3];
代替
int R1, R2, R3;
这样你就可以使用:
int i;
for(i = 0; i < 3; i++)
{
R[i] = getVal();
}
这个:
else {
totalScore = totalScore;
}
什么都不做。将其删除。
关于c - 小游戏总数不相加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32535877/
现在我正在学习一些 Javascript,但由于我的技能很低,现在遇到了很多问题。我需要一些帮助来解决这段代码中的几个问题。 我正在尝试编写一个名为“打鱼”的游戏。它有一个计时器、分数和 onclic
我知道网上有几个类似的问题,但没有一个真正对我有帮助。我只是想绘制一个网格,并为用户提供点击这些网格单元格的选项。每次用户单击时,单元格的颜色/填充应从黑色变为白色。 我目前正在做的事情如下: BLA
我正在创建一个小游戏,其中一只猫必须捕获一只随机移动的老鼠。代码背后的想法是首先随机移动鼠标,然后检查猫相对于鼠标的位置。该代码对于较小的网格(CatAndMouse(...) 中的第一个输入)工作得
这个问题在这里已经有了答案: Iterating through a Collection, avoiding ConcurrentModificationException when removi
本文实例为大家分享了C语言实现三子棋(井字棋)小游戏的具体代码,供大家参考,具体内容如下 推荐阅读顺序(不建议跳过) 先看实现之后的界面 —— 然后看分析程序要实现的步骤 —— 之后在看翻到te
我想在我正在开发的简单平台游戏中实现实体块,但我不知道如何实现。 我尝试了很多东西,但没有任何效果。 我想做以下事情: 当我跳上去时,我会留在那里 当我跳到它下面时,我不会到达顶部 当我从左侧跳时,我
我正在 WinForms 中制作简单的图形游戏,目前我希望在游戏开始时显示一个菜单。我唯一的问题是我不确定应用程序本身的结构,这是我目前所拥有的: 1) 要有菜单形式和游戏形式。选择新游戏后,创建游戏
我试图让我的玩家 rect 在侧面和底部与我的敌人 rect 碰撞,因此玩家 rect 不会抛出敌人的 rect 但我不知道为什么它一直将我传送到它根本不起作用 VIDEo platform.rec
我是一名优秀的程序员,十分优秀!