求C语言猜拳游戏代码

猜拳游戏游戏包括“开始游戏”、“排行榜查看”2个主要功能。(1)开始游戏每个用户有初始积分为100金币。1)每一轮猜拳游戏,用户首先输入押入这轮的金币数(最大不可超过剩余... 猜拳游戏游戏包括“开始游戏”、“排行榜查看”2个主要功能。(1)开始游戏每个用户有初始积分为100金币。1)每一轮猜拳游戏,用户首先输入押入这轮的金币数(最大不可超过剩余金币数),如果赢得本轮,获得相应金币数,若输,损失相应金币数。2)提示信息让用户输入一个1~3之间的值,其值事先设定为: 1表示石头,2表示剪刀,3表示布。程序随机产生1~3的其中之一,然后与用户输入的值进行比较,根据猜拳游戏规则来判定,输出显示胜或败,并调整金币值。3)提示是否还要继续完游戏?如果输入Y或者y,则进行下一轮猜拳(步骤1)。如果输入N或n,则与排行榜中的前五名玩家的游戏记录比较,如果排名能够进入前五名,则提示用户输入玩家姓名,更新排行榜,退出程序。(2)排行榜查看(可选)此功能若不选,则功能1不必设置金币数。在排行榜查看功能中,用户可以查看当前的游戏排行,排行榜中总共显示前5名玩家姓名和金币数。 展开
 我来答
匿名用户
推荐于2017-12-16
展开全部
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void main()
{
int rand_0(void);
int game(int inp);
int start,yes=1,inp,inp_1=1; char y;
while(yes) /*预防用户输入1或2以外的数据*/
{
printf("1:开始游戏\n2:排行榜\n");
scanf("%d",&start);
if((start!=1)&&(start!=2))
{
printf("请输入1或2\n");
}
else
yes=0;
}
start:
if(start==1) /*如果用户选择开始游戏……*/
{
printf("你出?\n1:石头\n2:剪刀\n3:布\n");
while(inp_1) /*预防用户输入别的数据*/
{
scanf("%d",&inp);
if((inp!=1)&&(inp!=2)&&(inp!=3))
{
printf("你出?\n1:石头\n2:剪刀\n3:布\n");
}
else
{
inp_1=0;
switch(game(inp))
{
case 1:printf("\n\n恭喜你,你赢了!\n\n");break;
case 0:printf("\n\n很遗憾,你输了!\n\n");break;
case 2:printf("\n\n平局\n\n");break;
}
}
}
}
inp_1=1;
printf("\n\n是否重新开始游戏?(y/n)");
scanf("%s",&y);
if((y=='y')||y=='Y')
goto start;
else
return 0;}
int rand_0(void) /*取随机数*/
{
int i,rand_1;
srand((unsigned)time(NULL));
for(i=1;i<=10;i++)
{
rand_1=rand()%4;
if(rand_1==0) continue;
return(rand_1);
}
}
int game(int inp)
{
int random,win; /*win变量,1是赢,2是平,0是输*/
random=rand_0();
switch(inp)
{
case 1:if(random==3) return win=0;
else if(random==2) return win=1;
else return win=2;

case 2:if(random==3) return win=1;
else if(random==2) return win=2;
else return win=0; case 3:if(random==3) return win=2;
else if(random==2) return win=1;
else return win=0;
}
}就做了那么点点。。。
匿名用户
2017-03-22
展开全部
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
char gamer; // 玩家出拳
int computer; // 电脑出拳
int result; // 比赛结果
// 为了避免玩一次游戏就退出程序,可以将代码放在循环中
while (1){
printf("这是一个猜拳的小游戏,请输入你要出的拳头:\n");
printf("A:剪刀\nB:石头\nC:布\nD:不玩了\n");
scanf("%c%*c",&gamer);
switch (gamer){
case 65: //A
case 97: //a
gamer=4;
break;
case 66: //B
case 98: //b
gamer=7;
break;
case 67: //C
case 99: //c
gamer=10;
break;
case 68: //D
case 100: //d
return 0;

default:
printf("你的选择为 %c 选择错误,退出...\n",gamer);
getchar();
system("cls"); // 清屏
return 0;
break;
}

srand((unsigned)time(NULL)); // 随机数种子
computer=rand()%3; // 产生随机数并取余,得到电脑出拳
result=(int)gamer+computer; // gamer 为 char 类型,数学运算时要强制转换类型
printf("电脑出了");
switch (computer)
{
case 0:printf("剪刀\n");break; //4 1
case 1:printf("石头\n");break; //7 2
case 2:printf("布\n");break; //10 3
}
printf("你出了");
switch (gamer)
{
case 4:printf("剪刀\n");break;
case 7:printf("石头\n");break;
case 10:printf("布\n");break;
}
if (result==6||result==7||result==11) printf("你赢了!");
else if (result==5||result==9||result==10) printf("电脑赢了!");
else printf("平手");
system("pause>nul&&cls"); // 暂停并清屏
}
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式