c语言中的掷骰子游戏
首先,我真的很抱歉我的英语不好 我尽力解释这个问题 c语言中的掷骰子游戏 电脑掷两个骰子,如果结果是7或11,你直接赢,或者结果是2、3和12,你直接输 如果总和是4、5、6、8、9或10,它希望你再次掷骰子。这一次你必须找到相同的总和4,5,6,8,9或10 如果你在找到同样的数字之前得到了7或11,那么你就输了。(这就是问题所在,即使计算机两次找到相同的数字。它不会打印为“you won.” 示例: 掷骰子…你赢了 你想再玩一次吗(y/y–n/n)?y 掷骰子…3你输了 你想再玩一次吗(y/y–n/n)?y 骰子在滚动…12个皮球 是/是-否?是 掷骰子…你赢了 你想再玩一次吗(y/y–n/n)?y 掷骰子…你赢了 你想再玩一次吗(y/y–n/n)?y 骰子正在滚动…9结果不清楚,骰子将再次滚动。滚动(r/r) 骰子正在滚动…8结果不清楚,骰子将再次滚动。滚动(r/r) 骰子正在滚动…11结果不清楚,将再次滚动骰子。滚动(r/r)?r 掷骰子…9你赢了 Yeni oyun oynansın mı(y/y–(n/n)?e Zarrar atiliyor…5结果不清楚,将再次掷骰子。掷(r/r)r Zarrar atiliyor…10结果不清楚,将再次掷骰子。掷(r/r)r Zarrar atiliyor…7你输了 你想再玩一次吗(y/y–n/n)?n 废话已经结束了c语言中的掷骰子游戏,c,C,首先,我真的很抱歉我的英语不好 我尽力解释这个问题 c语言中的掷骰子游戏 电脑掷两个骰子,如果结果是7或11,你直接赢,或者结果是2、3和12,你直接输 如果总和是4、5、6、8、9或10,它希望你再次掷骰子。这一次你必须找到相同的总和4,5,6,8,9或10 如果你在找到同样的数字之前得到了7或11,那么你就输了。(这就是问题所在,即使计算机两次找到相同的数字。它不会打印为“you won.” 示例: 掷骰子…你赢了 你想再玩一次吗(y/y–n/n)?y 掷骰子…3你输了 你想再玩一次吗(y
#include<stdio.h>
#include <time.h>
int main()
{
char ynd;
int kazan=0;
int sonuc=0;
char yoyun;
do{
printf("dice is rolling ");
srand(time(NULL));
kazan = rand()%11+1;
kazan++;
if( kazan==7 || kazan==11 )
{
printf(" %d you won.\n",kazan);
}
else if( kazan==2 || kazan==3 || kazan==12 )
{
printf(" %d you lose.\n",kazan);
}
sonuc=kazan;
if( kazan==4 || kazan==5 || kazan==6 || kazan==8 || kazan==9 || kazan==10 )
{
do{
printf("%d result is unclear, dice will be rolled again roll(r/R) ",kazan);
scanf(" %s",&ynd);
printf("dice is rolling ");
kazan = rand()%11+1;
kazan++;
if(kazan == sonuc)
{
printf("%d you won",kazan);
break;
}
else if(kazan==7){
printf("%d You lose",kazan);
break;
}
}
while(ynd=='r' || ynd=='R');
}
printf("want to play a new game ( y/Y-n/N )");
scanf(" %s",&yoyun);
} while(yoyun=='y' || yoyun=='Y');
printf("craps has ended");
return 0;
}
#包括
#包括
int main()
{
char-ynd;
int-kazan=0;
int-sonuc=0;
char yoyun;
做{
printf(“掷骰子”);
srand(时间(空));
kazan=rand()%11+1;
喀山++;
如果(喀山==7 | |喀山==11)
{
printf(“%d您赢了。\n”,喀山);
}
else if(kazan==2 | | kazan==3 | | kazan==12)
{
printf(“%d您丢失。\n”,喀山);
}
索努克=喀山;
如果(喀山==4 | |喀山==5 | |喀山==6 | |喀山==8 | |喀山==9 | |喀山==10)
{
做{
printf(“%d结果不清楚,骰子将再次滚动(r/r)”,喀山);
scanf(“%s”、&ynd);
printf(“掷骰子”);
kazan=rand()%11+1;
喀山++;
如果(kazan==sonuc)
{
printf(“你赢了%d”,喀山);
打破
}
否则如果(kazan==7){
printf(“你输了%d”,喀山);
打破
}
}
而(ynd=='r'| | ynd=='r');
}
printf(“想玩一个新游戏(y/y-n/n)”);
scanf(“%s”&yoyun);
}而(yoyun=='y'| | yoyun=='y');
printf(“垃圾已经结束”);
返回0;
}
如果您发布的代码在找到7
之前找到了原始号码,那么它确实会打印出“您赢了”。也许您已经修复了翻译中的错误
但是,如果在找到副本之前滚动11
,则不会导致损失
我还看到一些潜在的改进:
- 您应该
#包括
以使用
和srand
(gcc会自动为您解决此问题)。请参阅。通常,请尝试解决编译器生成的警告(如果您不理解,请联机搜索)rand
- 我建议在程序开始时只使用
,因为如果用户快速玩游戏,他们会在第二个游戏结束之前玩相同的游戏srand(time(NULL))
- 您可以使用
来模拟(例如,rand()%6+rand()%6+2
比任何其他数字更可能)。只需使用7
即可得到均匀分布rand()%11+1
- 在调用
之后,您直接使用rand
和++
增加掷骰。在调用1
之后,只需添加rand
就更简单了2
- 无需检查掷骰子是否不确定。只需使用最后一个
并将else
移动到块中即可sonuc=kazan
- 您可能希望研究使用而不是
语句,因为在这样的情况下,如果输入(骰子滚动)是紧密压缩的整数,那么它可能会更有效if
#包括
#包括
#包括
int main()
{
char-ynd;
int-kazan=0;
int-sonuc=0;
char yoyun;
srand(时间(空));
做{
printf(“掷骰子”);
kazan=rand()%6+rand()%6+2;
如果(喀山==7 | |喀山==11)
{
printf(“%d您赢了。\n”,喀山);
}
else if(kazan==2 | | kazan==3 | | kazan==12)
{
printf(“%d您丢失。\n”,喀山);
}
其他的
{
索努克=喀山;
做{
printf(“%d结果不清楚,骰子将再次滚动(r/r)”,kazan;
scanf(“%s”、&ynd);
printf(“掷骰子”);
kazan=rand()%6+rand()%6+2;
如果(kazan==sonuc)
{
printf(“%d您赢了。\n”,喀山);
打破
}
else如果(kazan==7 | | kazan==11){
printf(“%d您丢失。\n”,喀山);
打破
}
}而(ynd=='r'| | ynd=='r');
}
printf(“想玩一个新游戏(y/y-n/n)”);
scanf(“%s”&yoyun);
}而(yoyun=='y'| | yoyun=='y');
printf(“垃圾已经结束。\n”);
返回0;
}
您的问题是什么?您发布了代码,代码有问题吗?请阅读,接受SO,阅读,以及。如果骰子是4、5、6、8、9或10,我希望计算机找到相同的数字并打印为“您赢了”。您没有解释您遇到的任何问题
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int main()
{
char ynd;
int kazan=0;
int sonuc=0;
char yoyun;
srand(time(NULL));
do {
printf("dice is rolling ");
kazan = rand()%6+rand()%6+2;
if( kazan==7 || kazan==11 )
{
printf(" %d you won.\n",kazan);
}
else if( kazan==2 || kazan==3 || kazan==12 )
{
printf(" %d you lose.\n",kazan);
}
else
{
sonuc=kazan;
do {
printf("%d result is unclear, dice will be rolled again roll(r/R) ",kazan);
scanf(" %s",&ynd);
printf("dice is rolling ");
kazan = rand()%6+rand()%6+2;
if(kazan == sonuc)
{
printf("%d you won.\n",kazan);
break;
}
else if(kazan==7 || kazan==11){
printf("%d You lose.\n",kazan);
break;
}
} while (ynd=='r' || ynd=='R');
}
printf("want to play a new game ( y/Y-n/N )");
scanf(" %s",&yoyun);
} while(yoyun=='y' || yoyun=='Y');
printf("craps has ended.\n");
return 0;
}