当前位置: 首页 > news >正文

厦门人才网官方网站建设路小学网站

厦门人才网官方网站,建设路小学网站,看免费的视频的软件app,室内装修设计用什么软件编程实现一个游戏程序,会将连续三个字母中的一个隐去,由玩家填写隐去的那个字母,如屏幕上显示A ? C,则玩家需要输入B;屏幕上显示?B C,则玩家需要输入A。记录玩家完成20次游戏的时间以及正确率。…

编程实现一个游戏程序,会将连续三个字母中的一个隐去,由玩家填写隐去的那个字母,如屏幕上显示A ? C,则玩家需要输入B;屏幕上显示?B C,则玩家需要输入A。记录玩家完成20次游戏的时间以及正确率。

🍂1.实现连续三个字母出现

如何能让三个字母出现呢?
三个连续的字母的特点是ASCII码值成比例
只要列出三个成比例的数字然后它们对应的是字母即可。
那怎么找到三个成比例的数字呢?
我们可以利用rand()函数生成随机值,让随机值模上3便可以生成0-2之间的数字,而让0对应着第一个字母,1对应着第二个字母,2对应着第三个字母。如果rand()%3结果为0则让第一个字母为?其他字母显示,让玩家猜出这个?字母,而当rand()%3结果为1,则让第二个字母为?,第一个和第三个字母显示。如果rand()%3结果为2,则让第三个字母为?第1个和第2个字母显示。
但是使用rand()生成的值却是一个不变的随机值,我们需要一个生成不断变化随机值,这时就需要time来生成一个随机种子了
srand((unsigned int)time(NULL))time的参数是NULL,返回值为unsigned int类型。
这样就可以生成随机值了。
那对应关系我们知道了,还需要让连续字母出现也需要用到rand
rand()%24+'A'就可以生成随机字母了然后再与0,1,2对应就可以了。

 position = rand()%3+'0';    // 随机隐藏的位置0,1,2character = rand()%24+'A';  // 随机出现的第一个字母 A-Xprintf("----- Round %d -----\n", i+1);if (position == '0')//0对应着第一个字母  {answer = character;printf("? %c %c\n", character+1, character+2);} else if (position == '1') //1对应着第2个字母{answer = character + 1;printf("%c ? %c\n", character, character+2);} else if (position == '2')//3对应着第3个字母 {answer = character + 2;printf("%c %c ?\n", character, character+1);}

🍃2.确定游戏时间与准确率

我们可以利用time_t类型来定义两个变量start,end。
用来记录开始时间和结束时间。
第一次使用time(NULL),可以进行计时,而第二次再使用time(NULL),计时便停止下来。
所以我们可以在游戏开始之前进行计时,当20把游戏结束后进行计时结束。
start=time(NULL)开始计时
end=time(NULL)停止计时

如何确定准确率呢,肯定需要知道答对还是没答对,定义一个count;
用来记录答对的次数,每次答对则进行++。
而正确率的计算就是正确的个数/比赛的次数。

🍀3.猜字母操作

这里我们玩家需要猜出?是什么字母,将要写的字母输入电脑中,然后进行比较
不过我们需要注意的是:输入这个操作是要循环20次,所以就要考虑scanf函数的空格缓冲区域
每次输入一个字符还需要enter一下,这时缓冲区相当于就会有两个字符,而下一次scanf就会把空格传给电脑,这样是不行的,
所以我们需要在每次输入后,都要清除一下缓冲区中的空格,用getchar()函数吸收空格。

printf("请输入正确字母:");scanf("%c", &guess);getchar();if (answer == guess){printf("对的\n");count++;}else{printf("错误的,正确的答案是%c\n",answer);}

也可以使用另一种方法,利用do…while清空缓冲区

 printf("Please enter the correct letter: ");guess = getchar();do {scanf("%c",&c);} while(c!='\n');if (answer == guess) {printf("Correct!\n");count++;} else {printf("Wrong! The correct letter is %c\n", answer);}

🍁4.完整代码


int main(void) {char character, position, answer, guess, c;int i, count=0;double duration;time_t start, end;srand((unsigned int) (time(0)));    // 随机种子start = time(NULL);    // 开始计时for (i=0; i<20; i++) {position = rand()%3+'0';    // 随机隐藏的位置0,1,2character = rand()%24+'A';  // 随机出现的第一个字母 A-Xprintf("----- Round %d -----\n", i+1);if (position == '0')  {answer = character;printf("? %c %c\n", character+1, character+2);} else if (position == '1') {answer = character + 1;printf("%c ? %c\n", character, character+2);} else if (position == '2') {answer = character + 2;printf("%c %c ?\n", character, character+1);}printf("Please enter the correct letter: ");guess = getchar();do {scanf("%c",&c);} while(c!='\n');if (answer == guess) {printf("Correct!\n");count++;} else {printf("Wrong! The correct letter is %c\n", answer);}} end = time(NULL);  // 停止计时duration = ((double)(end - start));printf("Win Ratio: %f %%\n", count*100/20.0);printf("Game Time: %f s\n", duration);return 0;
}
http://www.yayakq.cn/news/685410/

相关文章:

  • 永兴网站建设湖北省建设工程质量协会网站
  • 网站建设报告家教总结wordpress置顶 显示
  • 网站建设_seo技术支持眼镜网站怎么做
  • 网站开发步奏跨境电商物流模式主要有哪些
  • 旅游网站建设风格襄阳大摩网站建设
  • 湖南做网站 多少钱磐石网络代理网址大全
  • 惠新西街网站建设城市网站建设意义
  • 哪个网站有免费ppt下载查找网站
  • 佛山网站优化平台哪里有营销型网站制作
  • 鹿城区住房和城乡建设局网站phpcms如何发布网站
  • 杭州网站设计 网站商城网站系统建设
  • 推荐佛山顺德网站建设微信小程序开发视频教程
  • 可信网站认证服务商a站全称
  • 莱西做网站公司关于自行建设门户网站的请示
  • 轴承网站建设wordpress喜欢插件
  • 企业网站源码挣钱吗梁朝伟做汤唯视频网站
  • 建设网站 软件wordpress菜单栏下拉
  • 网站开发后端做什么河南百度建个网站
  • 安徽省建设厅执业资格注册中心网站做暧暧网站在线看
  • 网站怎么做展现量珠海企业模板建站
  • 重庆市企业网站建设长沙网站设计咨询电话
  • 微网站 制作网站如何接广告赚钱
  • 做的最好的相亲网站上海什么做网站的公司比较好
  • 建设银行集团网站网站版权该怎么做呢
  • 云南做网站需要多少钱苏州网站建设专业的公司
  • 建设网站公司哪里好广告素材
  • 网站seo步骤昌邑市建设局网站
  • 网站如何防止黑客攻击wordpress被提权
  • o2o商城分销网站开发天津建设网站
  • 深圳市龙岗区建设局官网网站海城网站制作建设