猜数字游戏代码C语言
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void fun()
{
static int gc,count,try_time;
static int a[4],b[4],i,j,k=0,m=0,n=1,u,sumA=0,sumB=0,flag[10]={0};
srand(time(NULL));
count=4;
try_time=10;
for(i=0;i<count;i++)
{
int t;
do
{
t=rand()%10;
}while(i==0 && t==0);
if(flag[t]==0)
{
a[i]=t;
flag[t]=1;
}
else i--;
}
printf("\n∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽\n");
printf("∽ 猜 数 游 戏 ∽\n");
printf("∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽\n");
printf("∽ 1: 开始游戏 ∽\n");
printf("∽ 2: 查看上次成绩 ∽\n");
printf("∽ 3: 帮助信息 ∽\n");
printf("∽ 4: 系统设置 ∽\n");
printf("∽ 0: 退出游戏 ∽\n");
printf("∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽\n");
printf("请输入选择: ");
scanf("%d",&n);
if(n==0)
{
printf("\n\n感谢您的使用,游戏退出!\n");
exit(0);
}
if(n==2){ printf("\n\n上次的成绩为:%d\n",u);
do
{
printf("输入0返回上级菜单:");
scanf("%d",&n);
printf("输入错误!请重新输入!\n");
}while (n>0);
{
system("CLS");
fun();
}
}
if(n==3)
{
printf("----------------------------------------------------------\n");
printf("游戏规则:\n");
printf(" 在屏幕上输入个不同的数,在系统生成的个数进行比较,\n");
printf("如果数字跟位置都正确,则胜出!总共可以尝试%d次。每尝试一次扣10分。\n\n",try_time);
printf("----------------------------------------------------------\n");
do
{
printf("输入0返回上级菜单:");
scanf("%d",&n);
system("pause");
if(n!=0)
printf("输入错误!请重新输入!\n");
}
while (n>0);
{
system("CLS");
fun();
}
}
if(n==1)
{
printf("\n请输入%d位不同的数字(0~9之间):",count);
for(j=0;j<count;j++)
scanf("%d",&b[j]);
gc=0;
for(i=0; i<count; i++)
{
for(j=i+1;j<count;j++)
{
if(b[i]==b[j])
{
printf("输入有重复\n\n");
gc=1;
break;
}
}
}
if(gc==1)
for(i=0;i<count;i++)
{
for(j=0;j<count;j++)
{
if(i==j && a[i]==b[j])
sumA++;
else if(i!=j && a[i]==b[j])
sumB++;
}
}
printf("猜数结果为:");
printf("有%d个数数值和位置都相同!有%d个数
数值相同,但位置不同。\n",sumA,sumB);
if(sumA==4)
{
printf("\n恭喜你! 猜对了!!\n ");
printf("本次得分是: %d\n",u);
printf("\n恭喜你!你的成绩能进入积分榜!\n");
printf("请
输入你的姓名:");
printf("请输入0返回上级菜单:");
scanf("%d",&n);
do
{
printf("输入0返回上级菜单:");
scanf("%d",&n);
if(n!=0)
printf("输入错误!请重新输入!\n");
}while (n>0);
{
system("CLS");
fun();
}
}
sumA=0,sumB=0;
k++;
u=100-try_time*k;
if(k==try_time)
{
printf("所猜数字为: ");
for(i=0;i<count;i++)
printf("%d",a[i]);
printf("\n");
printf("请输入0返回上级菜单: ");
scanf("%d",&n);
do
{
printf("请输入0返回上级菜单:");
scanf("%d",&n);
if(n!=0)
printf("输入错误!请重新输入!\n");
}while (n>0);
{
system("CLS");
fun();
}
}
}
if(n==4)
{
int menu;
int temp;
system("cls");
printf(" 游戏设置 \n(1) 修改要猜的数字的个数.\n(2) 修改可以尝试的次数.\n(3) 退出设置.\n");
printf("请输入1到3:\n");
scanf("%d",&menu);
while(menu<1|| menu>3)
{
printf("请输入1到3:\n");
scanf("%d",&menu);
return ;
}
switch(menu)
{
case 1:
printf("目前游戏中系统会自动产生%d个数",count);
printf("请输入你要修改的个数(0到10):(输入0不修改)\n");
scanf("%d",&temp);
while(temp<0||temp>10)
{
if(temp=0)
{
printf("你并未修改.\n");
system("pause");
}
else
{
printf("请输入0到10:\n");
scanf("%d",&temp);
}
}
count=temp;
printf("你修改的新个位为:%d.\n",count);
system("pause");
break;
case 2:
printf("目前游戏中尝试次数为%d次",try_time);
printf("请输入你要修改的次数:(输入0不修改)\n");
scanf("%d",&temp);
while(temp<0)
{
if(temp==0)
{
printf("你并未修改.\n");
system("pause");
return ;
}
else
{
printf("请输入大于0的数:\n");
scanf("%d",&temp);
}
}
try_time=temp;
printf("你修改的新次数为:%d.\n",try_time);
system("pause");
break;
}
}
}
void main()
{
fun();
}