该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
//NumberRiddle.c
//这个程序还没有做完,用户输入检测部分没有做,不继续了。2009-12-22
//猜数字游戏
//游戏规则:
//电脑随机产生4个0~9的数字排列(没有重复数字),如:2459
//玩家输入4个猜测的数字,如: 2345
//电脑给出猜测的结果:1A2B
//其中,1A表示有一个数字猜对了而且位置也是对的
//2B则表示有两个数字虽然猜对了,但是位置不对
//玩家根据提示继续猜测,直到猜中(即:4A0B)或超过限制的猜测次数
//一盘结束,由玩家选择继续游戏或者退出
//
//--------------------预编译----------------------------------
#include
#include
#include
//
#define YES 1
#define NO 2
#define NUMBER_MAX 4
#define SEED ((unsigned)(time(NULL)))
//-------------------函数声明---------------------------------
int init();//初始化,打印开始信息等
int menu();//菜单,返回用户选择
int game();//一局游戏
int set_rand(int n[]);//产生4个随机数
int guess_it(int guess[]);//猜一次
int match_it(int n[],int guess[]);//验证结果
int say_right();//显示猜对信息
int say_wrong(int n[]);//显示失败信息
//-------------------main函数---------------------------------
int main(void)
{
init();//初始化
while(menu()==YES)
{
game();
}
system("pause");
return 0;
}
//-------------------------------------------------------------
int init()
{
system("cls");
printf("\t猜数字\n");
return 0;
}
//
int menu()
{
int choise=0;
printf("1.玩一盘;2.不玩了\n请选择:");
while((choise!=YES)&&(choise!=NO))
{
scanf("%d",&choise);
}
return choise;
}
//
int game()
{
int n[NUMBER_MAX];
int guess[NUMBER_MAX];
int counter=0;//猜的次数
int win=0;
set_rand(n);//产生4个随机数
while((counter
{
guess_it(guess);
win=match_it(n,guess);
counter++;
}
if(win)say_right();