#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MANY 4
#define TIME_OUT 8
///
int a,b,u ;
void game();
void ab(int answer[],int guess[]);
void same(int num[]);
//主目录
void menu()
{
char choice,ch ;
do
{
do
{
system("cls");
printf("/t/t/t/t简单猜数字/n/n/n/n");
printf("/t/t/t/t1.开始游戏/n/n");
printf("/t/t/t/t2.使用说明/n/n");
printf("/t/t/t/t3.退出/n/n");
printf("/t/t/t请输入(1-3): ");
fflush(stdin);
choice=getchar();
}
while(choice!='1'&&choice!='2'&&choice!='3');
switch(choice)
{
case '1' :
{
game();
break ;
}
case '2' :
{
system("cls");
printf("/t/t/t/t欢迎使用本程序/n/n/n");
printf("作者:烈冰/n");
printf("游戏说明: 输入%d位数字,输入后会有提示XaYb,X表示有几",MANY);
printf("个数字与答案数字相同/n");
printf("且位置正确,Y表示有几位数字与答案数字相同但位置不正确。例如:答案数字是/n");
printf("5764,如果输入5481,则会提示1a1b。/n");
printf("祝你愉快!/n/n");
printf("按任意键返回主目录……/n");
getch();
break ;
}
case '3' :
{
printf("确定要退出吗?(y/n):");
fflush(stdin);
ch=getchar();
if(ch=='y'||ch=='Y')exit(0);
else continue ;
}
}
}
while(1);
}
//
//游戏部分
void game()
{
int guess[MANY],answer[MANY];
int times,i,m,j ;
int key;
time_t t ;
char wantplay,temp ;
srand((unsigned)time(&t));
do
{
//生成MANY个随机数
do
{
u=0 ;
//!!!!!!
for(i=0;i<MANY;i++)
guess=rand()%10 ;
same(guess);
}
while(u);
printf("请输入%d位不相同的数:/n",MANY);
for(times=1;times<=TIME_OUT+1;times++)
{
//超过限定数次
if(times==(TIME_OUT+1))
{
printf("真确答案是:");
for(m=0;m<MANY;m++)printf("%d",guess[m]);
printf("/n猜了%d次都没猜中,你个猪头",TIME_OUT);
break ;
}
printf("第%d次:",times);
//玩家输入
fflush(stdin);
for(j=0;j<MANY;j++)
{
temp=getchar();
answer[j]=temp-48 ;
}
//检查输入有没有重复
u=0 ;
same(answer);
if(u)
{
printf("你输入的数字有重复,老实点哦!不然不给你提示/n");
continue ;
}
//
ab(answer,guess);
if(a==MANY)
{
printf("恭喜!你猜对了,你真厉害!!");
break ;
}
else printf("%dA%dB/n",a,b);
}
printf("还想玩吗?(y/n):");
fflush(stdin);
wantplay=getchar();
if(wantplay=='y'||wantplay=='Y')
{
system("cls");
continue ;
}
else menu();
}
while(wantplay=='y'||wantplay=='Y');
}
/
//判断输入的数或生成的数有没有重复
void same(int num[])
{
int i,j ;
for(i=0;i<MANY-1;i++)
for(j=i+1;j<MANY;j++)
if(num==num[j])
u=1 ;
}
//
//提示
void ab(int answer[],int guess[])
{
int i,j ;
a=b=0 ;
for(i=0;i<MANY;i++)
for(j=0;j<MANY;j++)
if(answer==guess[j])
if(i==j)a++;
else b++;
}
///
//主函数
void main()
{
menu();
}
猜数字游戏C语言描述源代码
最新推荐文章于 2024-08-24 21:25:27 发布