求一篇C语言的猜谜游戏论文,1000字左右~!!!急需。。希望大家能帮忙。
游戏规则参考文曲星中的猜数字:
输入四个唯一的数字(用空格分隔)并按< Enter >返回结果显示在后面,
“表格是什么?答?B”,四个数中的位置和数都正确为A,数的相同位置不同为B,
4 A 0 B对的时候,每局有8次机会。
例如,如果原来的四个数字是1234,那么
1234 4 A 0 B
5678个0 A 0 B都不对。
1243 2 A 2 B 3,4是对的但是位置不对。
当你理解了规则之后,就很容易开始了。可能你还没有头绪。没关系,循序渐进。
1.首先,你想在你的游戏里做什么?
由玩家输入四个数字,验证这四个数字与正确答案的关系,提供一个“X A X B”。
提示玩家并输入...直到玩家猜对或者达到八次。
2.游戏需要哪些资源?
这个游戏不需要什么特别的东西,只需要一个printf和scanf就可以得到输入。
所以在节目开始的时候:
# include & ltstdio.h & gt
加上标准输入输出,没有这个Turbo C不知道printf和scanf从哪来。
好了,编程开始。...
main(){
}
先记下这个函数,这个叫主函数,而且只有一个程序,也叫程序入口函数。
这是你的程序开始执行的地方。)
(以下操作都在main()中)
设置四个变量来存储正确答案:(你也可以得到一个初始值)
int a1,a2,a3,a4;
然后设置四个变量来存储玩家的输入:
int b1,b2,b3,B4;
设置变量的猜测次数,并指定初始值:
int n = 0;
设置存储结果a和b的数量的两个变量:
int cA,cB;
准备完成后,设置正确答案:
a 1 = 3;
a2 = 5;
a3 = 9;
a4 = 7;
当然,你会抱怨正确答案是固定的。没关系。下面是如何产生随机效果。慢慢来。
仔细想想整个游戏流程。...
大概是这样的:
循环执行:
输入;
对比正确答案;
输出提示;
判断自己是否猜对了;
是:展现胜利,退出循环,否:无视;
倍加1;
判断次数是否超过;
是:显示失败,退出循环;
周期结束;
所以,为了更容易理解,我们使用了无限循环,但是我们要注意一点:必须有一个结束循环的语句!
打破;这是声明。
所以:
while(1){
...
打破;
...
}
写下来就好。而(XX){YYYY}是这样工作的:
XX是否为0(真)
否:
执行YYYY
是:退出循环
再次检查XX是否不为0。
...
但你一定要清楚:破;会迫使你退出这个圈子。
好了,就这样:
printf("\n\t猜测数字!\ n \ n ");/*打印一些提示*/
While(1){ /*开始用户输入和程序输出*/
printf("%d:",n+1);/*打印当前输入的数量*/
scanf("%d %d %d %d ",& ampb1。b2和ampb3和ampB3);
/*不知道为什么要在b1之前加& B2。,先想想,scanf会是这样的*/
cA = 0;
cB = 0;/*比较即将开始,所以将结果设置为0*/
/*在比较的开始,我们用了一堆if替我们做事*/
/*虽然这个有点繁琐,但是谁告诉我们是新手呢?但是告诉你,这种表达效率是最高的*/
if(a 1 = = b 1)ca++;
if(a2 = = B2)ca++;
if(a3 = = B3)ca++;
if(a4 = = B4)ca++;/*逐个检查添加的数量*/
if(a 1 = = B2 | | a 1 = = B3 | | a 1 = = B4)c b++;
if(a2 = = b 1 | | a2 = = B3 | | a2 = = B4)c b++;
if(a3 = = b 1 | | a3 = = B2 | | a3 = = B4)c b++;
if(a4 = = b 1 | | a4 = = B2 | | a4 = = B3)c b++;
/*通过彻底检查获得的B的数量*/
/*当然你一定要保证玩家输入的东西不一样,不然会闹出笑话*/
/*检查和比较结束*/
/*打印提示*/
printf("\t\t%d A %d B\n ",cA,cB);
/*判断是否获胜*/
if(cA == 4){
printf(" \ n \ t完成!\ n ");
getch();/*getch()的作用是输入一个字符,不需要输入,也不会显示在屏幕上*/
/*通常用于暂停程序*/
打破;/*退出循环*/
}
/*次数加一*/
n++;
/*判决数量*/