用C语言编写一个模拟掷骰子游戏谢谢了,大神帮忙啊

有这样一种游戏:4个人(A-D),每个人有4个骰子,各自在一个筒中摇匀后停止。每个人可以看到自己此时4个骰子的点数。由A开始,根据自己骰子点数估计某个点数的总个数,报两个... 有这样一种游戏:4个人(A-D),每个人有4个骰子,各自在一个筒中摇匀后停止。每个人可以看到自己此时4个骰子的点数。由A开始,根据自己骰子点数估计某个点数的总个数,报两个数字:骰子个数和点数,如“4个3”,然后等待下家B报数;B报出的数字中,骰子个数只能大于上家;如此重复;最后当某个人不再报数而叫“停”时,4人均打开摇筒。如果个数和点数恰与叫停者的上家所报相符,则上家胜;如果不相符,则叫停者胜。如果无人叫停,则继续报数直至报出的数字为“16个6”时结束。 谢谢了 展开
 我来答
°阿k丶392
2014-06-28 · 超过56用户采纳过TA的回答
知道答主
回答量:107
采纳率:0%
帮助的人:109万
展开全部
实践1:函数编程练习 1.掷骰子游戏 编写程序模拟掷骰子游戏。已知掷骰子游戏的游戏规则为:每个骰子有6面,这些面包含1、2、3、4、5、6个点,投两枚骰子之后,计算点数之和。如果第一次投的点数和为7或11,则游戏者获胜;如果第一次投的点数和为2、3或12,则游戏者输;如果第一次投的点数和为4、5、6、8、9或10,则将这个和作为游戏者获胜需要掷出的点数,继续投骰子,直到赚到该点数时算是游戏者获胜。如果投掷7次仍未赚到该点数,则游戏者输。 【思考题】 将游戏规则改为:计算机想一个数作为一个骰子掷出的点数(在用户输入数据之前不显示该点数),用户从键盘输入一个数作为另一个骰子掷出的点数,再计算两点数之和。其余规则相同,然后请读者重新编写该程序。 2.学生成绩统计(一维数组)要求函数参数中包含一维数组。 从键盘输入一个班(全班最多不超过30人)学生某门课的成绩,当输入成绩为负值时,输入结束,分别实现下列功能: (1)统计不及格人数并打印不及格学生名单; (2)统计成绩在全班平均分及平均分之上的学生人数,并打印这些学生的名单; (3)以直方图方式统计各分数段的学生人数及所占的百分比。形式如下: 分数段 学生人数 图形 <60 3(10%) *** 60-69 8(…) ******** 70-79 7(…) ******* 80-89 8(…) ******** >=90 4(…) **** 实践2:结构体编程练习 在屏幕上模拟显示一个数字式时钟 按如下方法定义一个时钟结构体类型: struct clock { int hour; int minute; int second; }; typedef struct clock CLOCK; 然后,将下列用全局变量编写的时钟模拟显示程序改成用CLOCK结构体变量类型重新编写。已知用全局变量编写的时钟模拟显示程序如下: #include <stdio.h> int hour, minute, second; /*全局变量定义*/ /* 函数功能:时、分、秒时间的更新 函数参数:无 函数返回值:无 */ void Update(void) { second++; if (second == 60) /*若second值为60,表示已过1分钟,则 minute值加1*/ { second = 0; minute++; } if (minute == 60) /*若minute值为60,表示已过1小时,则 hour值加1*/ { minute = 0; hour++; } if (hour == 24) /*若hour值为24,则hour的值从0开始计时*/ { hour = 0; } } /*函数功能:时、分、秒时间的显示 函数参数:无 函数返回值:无 */ void Display(void) /*用回车符'\r'控制时、分、秒显示的位置*/ { printf("%2d:%2d:%2d\r", hour, minute, second); } /*函数功能:模拟延迟1秒的时间 函数参数:无 函数返回值:无 */ void Delay(void) { long t; for (t=0; t<50000000; t++) { /*循环体为空语句的循环,起延时作用*/ } } main() { long i; hour = minute = second = 0; /*hour,minute,second赋初值0*/ for (i=0; i<100000; i++) /*利用循环结构,控制时钟运行的时间*/ { Update(); /*时钟更新*/ Display(); /*时间显示*/ Delay(); /*模拟延时1秒*/ } }
匿名用户
2015-10-19
展开全部
念,亦是留恋
念,亦是留恋
念,亦是留恋
念,亦是留恋
念,亦是留恋
念,亦是留恋
念,亦是留恋
念,亦是留恋
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yr04603280
2020-01-17
知道答主
回答量:4
采纳率:0%
帮助的人:2462
展开全部
对喜欢永远多点
绝招树立正反面典型
弄清思绪万千望穿
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
再一次1234
2018-02-03
知道答主
回答量:1
采纳率:0%
帮助的人:904
展开全部

#include<stdio.h>

#include<stdbool.h>

#include<time.h>

#include<stdlib.h>

int roll_dice(void);

bool play_game(void);

int main(void){

srand((unsigned) time(NULL));

int win=0,lose=0;   //记录胜败的次数

char ch1,ch2;        //用来判定前进还是退出

//反复调用play_gram函数

for(;;){                           

for(;;){

if(play_game()==true){

win++;

printf("You win!\n");

break;

}     

else {

printf("You lose!\n");      

lose++;

break;

}

}

//用来存储Y(y)或其他字母

printf("\nPlay again?");

ch1=getchar();

ch2=getchar();

printf("\n");

//判定是否继续

if(ch1=='y'||ch1=='Y'){

continue;

}else{

break;

}

}

printf("\nWins=%d  Losses=%d",win,lose);

return 0;

}

//两个随机数的总和

int roll_dice(void){   // 随机时间不应放在函数内

int num1,num2;

num1=1+rand() % 6;

num2=1+rand() % 6;

return num1+num2;

}

bool play_game(void){

int x,y=0;

for(int i=1;;i++){

x=roll_dice();         //随机数总和

if(1==i){               //第一次的判定

if(x==7||x==11){

printf("You rolled:%d\n",x);

printf("Your point is %d\n",x);

return true;

break;

}

else if(x==2||x==3||x==12){

printf("You rolled:%d\n",x);

printf("Your point is %d\n",x);

return false;

break;

}

else {

printf("You rolled:%d\n",x);

printf("Your point is %d\n",x);

continue;

}      

}

//两次以上的判定

if(x==4||x==5||x==6||x==8||x==9||x==10){

y++;                                   //判定两次是否是目标

printf("You rolled:%d\n",x);

if(y==2){                              //只有两次都出现才能返回真

return true;

break;

}

else{

continue;

}

}  

else if(x==7){   

printf("You rolled:%d\n",x);

return false;

break;

}

else{

printf("You rolled:%d\n",x);

continue;

}

}

}

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
伦桂凡07
2018-08-07 · 贡献了超过281个回答
知道答主
回答量:281
采纳率:0%
帮助的人:44.3万
展开全部
然而,要是没有这样的一份遇见
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式