吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2186|回复: 12
收起左侧

[C&C++ 转载] 小白学习C语言1--猜拳游戏

  [复制链接]
有只小狐狸 发表于 2020-11-8 19:45
最近在学习C语言,为了监督自己每天学习,在学习的过程中坚持写程序发帖!每天学习一点点,积少成多,加油!
2020/11/8
猜拳游戏,功能很简单:和电脑进行猜拳,显示胜负。结束游戏后可显示双方出过手势和胜负历史记录
[C] 纯文本查看 复制代码
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
#define OK 0

int comp; //电脑手势
int human;  //玩家手势
int result;  //胜负结果
char *s[]={"石头","剪刀","布"}; 
char *showresult[]={"平局","你输了","你赢了"}; 
//游戏初始化
int initialize()
{	
	srand(time(NULL));
	printf("猜拳游戏开始啦!\n\n"); 
	return OK;
}

//进行游戏(电脑、玩家出拳并记录) 
int game(int his_comp[],int his_human[],int count)
{
	int i;
	comp=rand()%3;
	his_comp[count]=comp;
	do
	{
		printf("石头剪刀布>>>");
		for(i=0;i<3;i++)
			printf("%d-%s ",i,s[i]);
		printf(":");
		scanf("%d",&human);
		his_human[count]=human;
	}while(human<0||human>2);   //输入错误检验 
	printf("我出%s,你出%s,",s[comp],s[human]);
	return OK;
}

//胜负判断并记录显示胜负结果 
int judge(int his_result[],int count)
{
	result=(human-comp+3)%3;
	his_result[count]=result;
	printf("%s\n\n",showresult[result]);
} 

//询问是否再次游戏 
int comfirm_retry()
{
	int retry;
	do
	{
		printf("再来一次吗? 0-否 1-是 :");
		scanf("%d",&retry);
	}while(retry!=0&&retry!=1);
	return retry;
} 
 
//历史记录
int history(int his_comp[],int his_human[],int his_result[],int count)
{
	int i;
	printf(">>>游戏历史记录<<<\n");
	for(i=0;i<count;i++)
		printf("round %d:我出%-4s,你出%-4s,%s\n",i+1,s[his_comp[i]],s[his_human[i]],showresult[his_result[i]]);
	return OK;
} 
 
 
 int main()
 {
	int count; //游戏进行次数
	const int MAX_count=50; //游戏最大进行次数
	int his_comp[MAX_count]; //电脑历史手势 
	int his_human[MAX_count];//玩家历史手势
	int his_result[MAX_count];  //历史胜负结果
	int retry;  //是否继续游戏标志 
	int i;
	initialize();   //游戏初始化 
	do
	{
		game(his_comp,his_human,count);    //进行游戏
		judge(his_result,count);   //胜负判断并记录显示胜负结果 
		retry=comfirm_retry();  //确认是否再次游戏 
		count++;
	}while(retry==1&&count<50); 
	if(count==50)
		printf("休息一下吧\n");
	for(i=0;i<10;i++)
		printf("---");
	printf("\n游戏结束\n\n");
	history(his_comp,his_human,his_result,count);  //显示历史记录
	return OK;
 }


运行结果:

运行结果

运行结果

免费评分

参与人数 2吾爱币 +2 热心值 +2 收起 理由
Tea毒生灵 + 1 + 1 用心讨论,共获提升!
郑智薰 + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Tea毒生灵 发表于 2020-11-9 09:53
跟着学习吧  感谢楼主
qqbing1994 发表于 2022-7-31 15:55
楼主你好,我是c语言初学者,有个问题不明白请教一下,为什么要将ok宏定义为0,可不可也用指针将ok字符指向,然后后续输出字符ok?
xjshuaishuai 发表于 2020-11-8 20:09
郑智薰 发表于 2020-11-8 20:16
厉害厉害  我以前也想做 没做出来  拿走学习了
sergin 发表于 2020-11-8 20:25
学习一下,谢谢分享
186978177 发表于 2020-11-8 20:29
拿回去学习学习
QingYi. 发表于 2020-11-8 20:32
c语言我学的时候 也有这个编程
aimzhangyuting 发表于 2020-11-8 20:37
感谢楼主分享  好人一生平安
qdfxy 发表于 2020-11-14 20:52
拿走学习学习
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-30 00:48

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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