掷骰子游戏
1.案例描述
规则:一盘游戏中,两人轮流掷骰子5次,并将每次掷的点数累加,5局之后,累计点数较大者获胜,点数相同则为平局。案例要求通过编程算出50盘之后的胜利者(50盘中赢的盘数最多的,即最终胜利者。)
2.案例设计
1.创建一个存放角色信息的结构体,用于储存每局获得的分数和获胜的次数
2.每个角色轮流生成5个随机数,统计随机数的和,和最大的赢得此局胜利
3.统计50次比赛后的结果,获胜次数最多者是最总胜利者
4.输出结果
3.代码实现
#include<stdio.h>
#include<stdlib.h>
#include <time.h>
struct Player{
//创建角色属性
char name[10];
int mark;//局的分数
int count;//获胜次数
}A={"A",0,0},B={"B",0,0};//初始化角色
int main(){
int throw_(int times,char *p );
int n;
//开始比赛
//#include <time.h>,用于刷新随机数
srand((unsigned)time(NULL));
for(n=0;n<50;n++){
printf("第%d局开始\n",n);
A.mark=throw_(5,A.name);
B.mark=throw_(5,B.name);
if(A.mark<B.mark)
{
printf("B获胜\n");
B.count++;
}else if(A.mark>B.mark){
printf("A获胜\n");
A.count++;
}else{
printf("平局\n");
}
}
//输出比赛结果
printf("A共获胜%d局,B共获胜%d局\n",A.count,B.count);
if(A.count!=B.count)//赢得局数多则为最终胜利者
printf(A.count>B.count?"A获胜":"B获胜");
else
printf("平局");
return 0;
}
int throw_(int times,char *p ){
int t,temp,sum=0;
//扔出times次骰子,输出结果并统计分数
printf("%s的五次得分为:",p);
for(t=0;t<times;t++){
temp = rand()%6+1;
printf("%d,",temp);
sum +=temp;
}
printf("%s共获得%d分:\n",A,sum);
return sum;
}