重拾C语言 对简单猜字游戏利用随机数生成器编写
2021/11/22 6:11:24
本文主要是介绍重拾C语言 对简单猜字游戏利用随机数生成器编写,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
时间戳概念:当前计算机时间——计算机起始时间 1970.1.1.0.0.0 单位s
基于Microsoft 创建的MSDN库函数查询软件得到获取一个随机数的函数为 rand();
查询MSDN可知该函数包含在头文件<stdlib.h>中,只需调用即可实现动态的随机数生成。而单次循环的随机数生成相同,所以由于静态限制,只是在选择的过程中通过函数自行生成,本质上已经不具备随机性。
引入时间戳概念,强调时间的变动性。但是由于受时间影响,随机数的生成具备一定的规律,在短时间多频率的运行状况下,随机数生成并不具备随机性。
利用srand()function 对这个rand()设置初始值。利用一个随机数对随机数函数rand设置初始值。可以选择time()时间函数对rand设置初始值 srand((unsigned)time(NULL));通过对time采用强制类型转换 使得返回值为int类型从而对rand设置初值。
具体实现代码如下
#include <iostream> #include <stdio.h> #include <stdlib.h> #include <time.h> #include <string.h> void menu()//创建游戏菜单栏 { printf("#######################\n"); printf("###1.play 0.exit###\n"); printf("#######################\n"); } void game() { int ret = 0; int i = 0; srand((unsigned int)time(NULL));//利用时间戳设置生成随机数初始值 ret = rand();//生成随机数 printf("%d\n", ret);//打印随机生成数 if (i < ret) { printf("猜错了比它小\n"); } else if (i > ret) { printf("猜错了比它大\n"); } else { printf("猜对了\n"); break; } } int main() { int input = 0; do { menu(); printf("选择开始>>"); scanf("%d", &input); switch (input)//判断游戏开始条件 { case 1: game();//游戏界面 break; case 0: printf("退出当前游戏"\n); break; default://默认未输出其它选项则自动跳出 break; } } while (input)//再次游戏 return 0; }
这篇关于重拾C语言 对简单猜字游戏利用随机数生成器编写的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享