C语言实验报告猜数字游戏

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

{ if(m&&t!=l[0]&&t!=l[1]&&t!=l[2]&&t!=l[3]) { j++;m=0;l[j-1]=t; /*若该位置上的数字尚未与其它数字“相 同”*/ } */ if(i==t) k++; } s/=10; } a/=10; } printf("提示信息(%d,%d)\n",k,j); printf("你猜对了%d个数字!\n",j); printf("其中位置也正确的有 %d 个.\n",k); if(k==4) break; /*若位置全部正确,则人猜对了,退出*/ else printf("请继续努力!\n"); } printf("经过 %d 次努力,你已经猜中了全部的数字,恭喜你.\n",c); } 四、运行结果: 原始界面: 欢迎进入猜数字游戏 游戏帮助 用户从键盘输入一个4位数,来匹配计算机内定的4位随机数,若数字和 位数均等同,表示用户赢了。 /*若位置也相同,则计数器k加1*/ /*记录相同数字时,该数字在所猜数字中的位置
实验报告———猜数字游戏
一、实验内容: 实验名称:猜数字游戏 实验目的:猜数:用户从键盘输入4位不重复的数,来匹配计算机给出 的4位随机数,若数字和位数均等同,表示用户赢了。每猜一次,计算 机均给出提示信息(x,y),x表示数字、位置都匹配的个数,y表示数 字匹配但位置不匹配的个数。 实验要求: (1) 设计友好的中文交互界面。 (2) 按H键,可以得到更详细的帮助信息,如:第1位数字 正确,第2,3位数字位置不对等。 (3) 按K键后,可以查看计算机所给的4位数,但查看前需 要输入密码,密码自定。 (4) 猜的结果以分值的形式给出,每猜错1次扣100分,若猜 对1个数,奖励20分。 (5) 每次游戏结束后将分值存盘,文件名自定。 二、算法说明: S1:计算机随机数通过宏定义来实现(本次设计为2008) S2:开始主函数,设计一个简单的中文界面 S3:定义stime,a,z,t,i,c,m,g,s,j,k等整型变量,其中k表示数字、位置都匹 配的个数,j表示数字匹配但位置不匹配的个数。 S4:将用scanf函数出入的四位数与计算机随机数比较 S5:用print函数输出比较结果,每次比较都有提示,并记录次数 S6:当完全猜中数字时,用户获得胜利,游戏结束
每猜一次,计算机均给出提示信息(k,j),k表示数字、位置都匹配 的个数,j表示数字匹配但位置不匹配的个数。 请输入你猜的数字: 例: a)输入 2776 输出 提示信息(1,1) 对了1个数字! 位置也正确的有1个 请继续努力! b)再次输入2805 输出: 提示信息(2,3) 对了3个数字! 位置也正确的有2个 请继续努力! c)再次输入2008 输出: 提示信息(4,4) 对了4个数字! 位置也正确的有4个 经过3 次努力,你已经猜中了全部的数字,恭喜你 d)按任意键安全退出 五、分析与思考:由于水平有限,这个程序我做得比较简单,例如 随机取数用宏定义实现,帮助是直接显现在菜单的,提示也会在每一次 猜数后自动给出,记录了次数百度文库没有记入分数。。。但我还是实现了一 些基本功能,如数的随机和结果的提示,希望再接再厉,下次做的更 好。
三、程序清单;
#include<stdio.h> #include<time.h>
#include<stdlib.h> #define COUNT 2008 /*宏定义一个计算机内定数,可由编程者修改*/ void main() { int stime,a,z,t,i,c,m,g,s,j,k,l[4]; /*j:数字正确的位数 k:位置正确的位数 */ long ltime; ltime=time(NULL); /*l:数字相同时,人所猜中数字的正确位置*/ stime=(unsigned int)ltime/2; srand(stime); z=COUNT; /*计算机内定数*/ printf(" 欢迎进入猜数字游戏\n"); printf(" 游戏帮助\n"); printf("用户从键盘输入一个4位数,来匹配计算机内定的4位随机数, 若数字和位数均等同,表示用户赢了。\n"); printf("每猜一次,计算机均给出提示信息(k,j),k表示数字、位置 都匹配的个数,j表示数字匹配但位置不匹配的个数。\n"); for(c=1;;c++) /*c: 猜数次数计数器*/ { printf("请输入你猜的数字:"); scanf("%d",&g); /*请人猜*/ a=z;j=0;k=0;l[0]=l[1]=l[2]=l[3]=0; for(i=1;i<5;i++) /*i:原数中的第i位数。个位为第一位,千位为第4 位*/ { s=g;m=1; for(t=1;t<5;t++) /*人所猜想的数*/ { if(a%10==s%10) /*若第i位与人猜的第t位相同*/
相关文档
最新文档