用C语言编写一个猜数字游戏的程序(最好附带说明)

输入4位不重复的数,与计算机随机给出的4位数相匹配,若数字和位置均等同,则表示用户赢了;每猜一次,计算机均给出提示信息(x,y),x表示数字、位置都匹配的个数,y表示数字... 输入4位不重复的数,与计算机随机给出的4位数相匹配,若数字和位置均等同,则表示用户赢了;每猜一次,计算机均给出提示信息(x,y),x表示数字、位置都匹配的个数,y表示数字匹配但位置不匹配的个数。
要求: 1:交互界面友好;
2:给定H键做为帮助键,帮助用户尽快达到目的,无论何时,按下H键,均能得到详细信息,如:第一位数字正确,第2,3位数字位置不对等;
3:给定K键做为管理键,按下后可以查看计算机所给的4位数,但查看前需要输入密码,密码自定;
4:设置游戏分值,将每次猜的结果以分值的形式给出,如初始分值1000分,每猜一次扣100分,若猜对一个数,奖励20分(计分算法自定);
5:将得分最高的前三位的分值在每次开始新游戏前显示出来,同时,在每次游戏结束后将前3位的分值存盘,文件名自定。
-----谢谢各位帮助!
不是很难的东西,大一C语的课设而已,主要用到的估计也就我们学过的数组、函数、指针等,高深的不用了
展开
 我来答
百度网友ec39437d4
推荐于2016-02-27 · TA获得超过225个赞
知道小有建树答主
回答量:495
采纳率:0%
帮助的人:307万
展开全部
我住几天院估计没时间了 没有那么复杂只是需要调是而已 下边是我的代码还没完善
#include <stdlib.h>
#include <stdio.h>
//#include <iostream>
unsigned char Num[4] = {0},getNum[4] = {0x20,0x20,0x20,0x20};
void help(void)
{
char i =0,j = 0;
for(i =0;i<4;i++)
{
for(j = 0;j<4;j++)
if(Num[j] == getNum[i])
{
if(i==j)
printf("%dth is correct!\r\n",i);
else
{
printf("%d is a correct data\r\n",getNum[i]);
}

}
else
{
if(i == 3&&j==3)
{printf("/********************small game*****************/\
input 4 data gess the random data,input h can get help\
");}
}
}
}

void main( void )
{
int orginal = 0,getdata = 0,i = 0,j = 0;
// { int a;a = 878*101;cout<<a<<endl}
//first = 0,second = 0,third = 0,fourth = 0;
/* Seed the random-number generator with GetTickCount so that
the numbers will be different every time we run.
*/
srand( (unsigned)time( NULL ) );

orginal = rand();
Num[3] = orginal%10000/1000;
Num[2] = orginal%1000/100;
Num[1] = orginal%1000%100/10;
Num[0] = orginal%10;
// printf(" %d",orginal);
for(i = 0;i<4;)
{

for(j = i+1;j<4;j++)
{
if(Num[i]==Num[j])
{ Num[i]++;if(Num[i]>9) Num[i] = 0;i=0;break;}
}
if(j == 4)i++;
}
get: for(i = 0;i<4;)
{
printf("input Num %d ",i);
scanf("%s",&getNum[i]);

if(getNum[i]-0x30>9||getNum[i]-0x30<0)
{
if (getNum[i] == 'H'||getNum[i] =='h')
{
help();
}
else
printf("input one num\r\n");
//if(i>0)i--;
}
else
{
getNum[i] -=0x30;
for(j = 0;j<i;j++)
{
if(getNum[i] == getNum[j])
{printf("have a same data,please input another\r\n"); break;}
}

if(j==i)
i++;
}
}
printf("you input num %d%d%d%d Y or N?\r\n",getNum[0],getNum[1],getNum[2],getNum[3]);
do{
scanf("%c",&j);
printf("%c",j);
if((j == 'N') || (j == 'n'))goto get;
}while( !((j == 'Y') || (j == 'y')));
printf("over");

}
ryw12403
2010-06-29 · TA获得超过1899个赞
知道大有可为答主
回答量:2501
采纳率:0%
帮助的人:2103万
展开全部
有偿,先程序后cash ,有意加我
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式