| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
任务描述 
本关任务(习题5.1):模拟掷双骰子游戏,游戏规则:每轮投两次骰子,取两次的和,第一轮若和为7或11则获胜,游戏结束。 
 
例一: 
和为11,则显示:'Round 1:  Score:11  Success!' 
若和为2、3或12则输了,失败结束, 
 
例二: 
和为12,则显示:'Round 1:  Score:12  Failed!' 
若和为其他数字,则将第一轮两次骰子点数的和(假定为8)作为自己的点数,继续第二轮,第三轮,……,直到某轮两次骰子点数的和等于该点数(第一轮两次投掷点数和)则获胜,若中间某轮两次投掷骰子点数的和为7,则输掉游戏。对应显示: 
 
'Round 1:  Score:8  Continue!' 
'Next rounds: Score 8:Success, Score 7:Failed, others:Continue' 
'Round 2:  Score:4  Continue!' 
'Round 3:  Score:6  Continue!' 
'Round 4:  Score:9  Continue!' 
'Round 5:  Score:7  Failed!' 
相关知识 
为了完成本关任务,你需要掌握: 
 
C语言函数定义与调用; 
 
C语言函数参数传递与返回; 
 
C语言生成指定范围的随机数。 
 
编程要求 
在右侧编辑器完成diceGame(int randSeed)函数,其中参数randSeed为随机数种子,为方便测试,种子在测试文件中由键盘输入。 
 
测试说明 
平台会对你编写的代码进行测试,由于rand()函数返回的随机数在windows和Linux(平台环境)下的值不同,为方便同学们测试,分别给出两种环境的测试结果: 
 
Linux环境 
测试输入:1    //随机数种子:用于初始化随机数生成器 
预期输出:Round 1:  Score:7  Success! 
 
测试输入:18 
预期输出: 
 
'Round 1:  Score:8  Continue!' 
'Next rounds: Score 8:Success, Score 7:Failed, others:Continue' 
'Round 2:  Score:4  Continue!' 
'Round 3:  Score:6  Continue!' 
'Round 4:  Score:9  Continue!' 
'Round 5:  Score:7  Failed!' 
windows环境 
测试输入:100   //随机数种子:用于初始化随机数生成器 
预期输出:Round 1:  Score:11  Success! 
 
测试输入:10 
预期输出: 
 
'Round 1:  Score:10  Continue!' 
'Next rounds: Score 10:Success, Score 7:Failed, others:Continue' 
'Round 2:  Score:6  Continue!' 
'Round 3:  Score:9  Continue!' 
'Round 4:  Score:4  Continue!' 
'Round 5:  Score:7  Failed!' 
 
我的代码如下:(任务只要求定义函数,不用写main的部分) 
- /***在下面Begin至End间,按原型 void diceGame(int randSeed) 定义函数***/
 
 - /********** Begin **********/
 
 - void diceGame(int randSeed)
 
 - {   
 
 -     int x,y,z,i;
 
 -     x=rand();
 
 -     x=x%6+1;
 
 -     y=rand();
 
 -     y=y%6+1;
 
 -     z=x+y;
 
 -     if(z==7||z==11) printf("Round 1:  Score:%d  Success!",z);
 
 -     else if(z==2||z==3||z==12) printf("Round 1:  Score:%d  Failed!",z);
 
 -     else 
 
 -     {   
 
 -         printf("Round 1:  Score:%d  Continue!\n",z);
 
 -         printf("Next rounds: Score %d:Success, Score 7:Failed, others:Continue",z);
 
 -         int a,b,c;
 
 -         for(i=1;i<10;i++)
 
 -         {   a=rand();
 
 -             a=a%6+1;
 
 -             b=rand();
 
 -             b=b%6+1;
 
 -             c=a+b;
 
 -             if(c!=z&&c!=7) printf("Round %d:  Score:%d  Continue!",i,c);
 
 -             else if(c==7) printf("Round %d:  Score:7  Failed!");
 
 -         }
 
  
-     }
 
 - }
 
  
- /********** End **********/
 
  复制代码 
 
请求: 
1、现在问题在于,不论怎么运行,结果只会输出:Round 1:  Score:7  Success! 
请修改我的代码,使它符合题目要求。(不要提供新的代码,否则不予采纳,谢谢) 
 
2、定义的int randSeed 有什么用呢? |   
 
 
 
 |