C语言小游戏

这篇博客分享了作者作为小白用C语言编写的一款小游戏,可在Devc++或Visual Studio上运行,邀请读者体验挑战。
摘要由CSDN通过智能技术生成
#include<bits/stdc++.h>
using namespace std;
void explain()
 {
 	
 	printf("猜数字\n游戏规则如下\n电脑会随机生成一个不含重复数字的三位数,然后你根据电脑的提示来猜这个三位数。\n如果你猜的三位数里有一个数字和电脑生成的这个数字相同,但是位置不同");
	printf( "那么电脑会显示一个字母B,有多个数字相同但是位置不同就显示多个B\n");
	printf("如果你猜的三位数里有一个数字和电脑生成的这个数字相同,而且位置相同\n");
	printf("那么电脑会显示一个字母A,有多个数字相同而且位置相同就显示多个A\n") ;
	printf("例如,电脑现在生成一个数字123,而你猜的数字是321.那么电脑蒋会显示1A2B\n");
	printf("注意:你不能猜有相同数字的数(这样写也很慢不是吗),数字有可能是0开头的,如012\n");
}
int main()
{
	int flag;
	printf("这是一个考验你的逻辑推理能力的小游戏,如果你准备好了就按1"); 
	scanf("%d",&flag);
	if(flag==1)
{
	explain();

		char a[3];
	int i,j=1,b,s=0,k,h;
	srand((unsigned)time((NULL)));
	while(j)
	{
h=(100+rand()%899);
i=0,s=0;
k=h;
while(h!=0)
{
	a[i]=h%10;
	h/=10;
	i++;
}
for(i=0;i<2;i++)
{
for(j=i+1;j<3;j++)
	if(a[i]==a[j])
	s++;
}
	if(s==0)
		j=0;
}
char m[3];
int l=0,w,e,r=1;
while(r)
{
w=0;
	e=0;
	printf("请输入你猜的数字:\n");
scanf("%s",m);
for(i=0;i<3;i++)
for(j=2;j>=0;j--)
{
	
	if(a[j]==m[i]-'0'&&i!=j)
	w++;
	else if(a[j]==m[i]-'0'&&i==j)
	e++;
}
if(w==1&&e==0)
{
printf("1B\n");
l++;
}
else if(w==2&&e==0)
{
printf("2B\n");
l++;
}
else if(w==3&&e==0)
{
printf("3B\n");
l++;
}
else if(e==1&&w==0)
{
printf("1A\n");
l++;
}
else if(e==2&&w==0)
{
printf("2A\n");
l++; 
}
else if(e==3&&w==0)
{
	l++;
	printf("你真是个大聪明,只用了%d步就猜出来了",l);
	r=0;
}
else if(e==1&&w==1)
{
	printf("1A1B\n");
	l++;
}
else if(e==1&&w==2)
{
	printf("1A2B\n");
	l++;
}
else if(e==2&&w==1)
{
	printf("2A1B\n");
	l++;
}
else
{
	printf("false\n");
	l++;
}
}
}	
else
	printf("就这样放弃了?就这?就这?");
}

小白自己写的一个小游戏,欢迎━(`∀´)ノ亻!各位来挑战。
可以在Devc,visual上运行

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值