用C语言制作一个猜数字游戏

所需积分/C币:10 2012-10-13 13:54:37 804KB PDF
14
收藏 收藏
举报

用C语言编写的代码,PDF格式,实现猜数字游戏
程序流程图 主函数 游戏说明及选项 游戏选项,非1,2,3为无 效输入 2游戏说明 1开始游戏 3退出询问 并生成4个 清屏输出说明 位院机数 并返回 选择是, 选择否 结束程序 返 玩家输入 判断是输入是否有重复数字 并给予一定提示 如超过最大回答次数,给出 在规定次数内猜对,输出你 正确答案。 猜对了 询问‘是’迷续,‘否’退出 谊问‘是’继续,‘否’退出。 选择是 选择否 近择否 进择是 返旧 退出 退出 返叫 程序结束 四、程序清单: #inc lude <stdio. h> #include <stdlib. h> #incl ude <time. h> #def ine many 4 #define time out 8 *定义变量及函敬* nt a, b ll void game o void ab(int answer [, int guess [ void same (int num [) *王目录* include <stdio. h> #include <stdlib. h> Include <time. h> #def ine many 4 #define time-out 8 *定义变量及函数* int a. b u void gae o void ab(int answer[, int guess [] void same (int num D) 主目录* void menu o char choice, ch do system("cls") printf("\t\t\t\t简单猜数字Ⅶnnnn"); printf("t\t\tt1.开始游戏nⅦn"); print("t\t\t\t2.使用说明Ⅶn、n"); printf("\t\t\tt3.退出\nn") printf("\t\t\t请输入(1-3):"); fflush (stdin) choice=getchar: while(choice!=/1'&&choice! -'2'&&choice!='3') switch(choice) game brcak case system("cIs") printf("\t\tt欢迎使用本程斥n1n1n") printf("游戏说明∷输入%位数字,输入后会有提示XaYb,X表示有几 个数字与答案数字相同且位置相同。Ⅶn",MANY); printf("Y表示有几位数字与答案数字相同但位置不正确。\n"); printi("例如:答茉数字是5764,如果输入5481,则会提示1a1b。Ⅶn"); printf("祝你愉快!\nn") print("按任意键返回主目录……\n"); gotchA break case3′: print("确定要退出吗?(y/n):"); fflush(stdin) ch=getchar o if(ch=='y'llch==y)exit(0); else continue Wh1e(1); /*游戏部分* void game o int guess [MANy], answer [MANY int times, 1, m,J; int ke t imet t char wantplay, temp srand ((unsigned)timc(&t)) do /*生成MANY个随机数* do u=0 for(i=0: i<MANY: i++) guess [i]=rand 0%10 same (guess while qux printf("请输入‰位不相同的数:\n",MANY) for(times=l; times<=TIME-OUT+1; t imes++) /*超过限定数次* if (times==(TIME_OUT+1)) print("真确答案是:"); for(m=0; m<MANY; m++)printf ("%d", guess [m]) printf("Ⅶn猜了%次都没猜中",TIME0UT); break printf("第Ⅺ次:", times); /*玩冢输入* fflush (stdin) for〔j=0:j<MANY; temo=getchar o answer lil=temp-48 /*te口p是char型本/ /*检查输入有没有重复*/ u=0; same (answer) f(u) printf("你输入的数字有重复,请重新输入n") continue; ab(answer, guess); /*判,断输入数字正确的个数* if(a==MANY print("恭喜!你猜对了") break else printf ("%dA%dB\n", a, b) printf("还想玩吗?(y/n):"); fflush(stdin) wantplay=eet char o if( wantplay=’y'| wantplay=′Y) system("cls"); continue else menu o while(wantplay= y'Ilwantplay=='y') /*判断输入的数或生成的数有没有重复的函数 void same (int num[) nt 1, J for (i=0; i<MANY-1; i+ for(j=1+1; j<MANY; j++, if (num[i]==num[]) u=1; /*提示XaYb的函数* void ab(int answer l, int guess [ Int 1,J; a=b=0 for(i=0; i<MANY; i++) for (=0; j<MANY; i 十 if( answer「il== gules s「j) if(i==j)a++ else b++. /主函数本 void maino menu o 五、主要解决问题的方法及技术关键 1、主要问题及解决方法 I.随机数生成问题 用庠函数 stdlib.h及time.h来生成4个伪随机数,然后用所生成的4个随机数与10取余 数,这样就可以生成4个随机敖。 II.随机数重复问题 当生成4位随机数时难免要出现重复数字,所以要通过自定义的西数 yoid same( int num ]〕来判断数字是否有重复〔具体内容在程序中可见),当出现重复数字时系统将重新生成 随机数 2、技术关键 √随机敖生成〔 stdlib.h和time.h函数的调用) 数字重复问(自定义函 void same( int num])) 六、设计结果说明 1、设计优点:并未涉及到复杂函数,所用的全部是基本的简单函数 2、设计不足:本程序仅能输出字符,无图形界面

...展开详情
试读 9P 用C语言制作一个猜数字游戏
立即下载 身份认证后 购VIP低至7折
一个资源只可评论一次,评论内容不能少于5个字
您会向同学/朋友/同事推荐我们的CSDN下载吗?
谢谢参与!您的真实评价是我们改进的动力~
关注 私信
上传资源赚钱or赚积分
最新推荐
用C语言制作一个猜数字游戏 10积分/C币 立即下载
1/9
用C语言制作一个猜数字游戏第1页
用C语言制作一个猜数字游戏第2页

试读结束, 可继续读1页

10积分/C币 立即下载