鱼C论坛

 找回密码
 立即注册
查看: 3792|回复: 2

用C++编写,模拟掷骰子

[复制链接]
发表于 2012-3-7 21:03:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 IWANT 于 2012-3-7 21:13 编辑

已知掷骰子游戏的游戏规则为:每个骰子有6面,这些面包含1、2、3、4、5、6个点,投两枚骰子之后,计算点数之和。如果第一次投的点数和为7或11,则游戏者获胜;如果第一次投的点数和为2、3或12,则游戏者输;如果第一次投的点数和为4、5、6、8、9或10,则将这个和作为游戏者获胜需要掷出的点数,继续投骰子,直到赚到该点数时算是游戏者获胜。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define TRUE 1
#define FALSE 0
int roll_dice(void);
int play_game(void);
int main(void)
{
   char jude;
   do
   {
   if(play_game()) printf("you win!\n");
   else printf("you lose!\n");
   printf("play again?(y or n)\n");
   scanf("%c",&jude);
   }
   while(jude=='y');                                                  /*我分步调试时,这个DO-WHILE循环只能循环一次,即我第 一次 输 入 'y'后可以循环一次,接下来就直接显示 “ press any key  to    continue”*/
   
   return 0;
}


int roll_dice(void)                                                         /*此函数是为了得到每次掷的点数*/
{
int num1,num2;
    srand((unsigned) time (NULL));
num1= rand() % 6+1;
num2= rand() % 6+1;
return num1+num2;
}

int play_game(void)                                                /*此函数是对掷的的点数进行判断,及进行掷骰子的游戏*/
{
int points,real_points;
points=roll_dice();
    printf("you rolled: %d\n",points);

if(points==7||points==11)
  return TRUE;
else if(points==2||points==3||points==12)
  return FALSE;
else
{
  real_points=points;
  points=roll_dice();
  while((points!=real_points)||(points!=7))
  {
            points=roll_dice();
   printf("you rolled: %d\n",points);
  }
  if (points==real_points)
   return TRUE;
     else return FALSE;
}
}

以上是我编写的代码,语法错误没有,应该有很多逻辑错误,因为执行后为死。但我找不出来错误在哪。。。还有,令我极其郁闷的是,在main函数中的那个 do-while,只能进行一次循环,就不知道为什么跳出了,我觉得我写的应该没错的啊。希望诸友能帮我看看这个程序,本人Q,529076144.谢谢




小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-3-8 14:17:47 | 显示全部楼层
我记得C现代方法里不是有答案么
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-3-8 22:12:12 | 显示全部楼层
没有啊,我下载的答案上没有。而且这个题的前面也没有 网上有答案 的那个 W 的标注
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-11 23:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表