游戏中,武器的攻击力是100~300的值,计算机中会产生一个随机数字,实现一个接口,武器每攻击一次就会产生出这个范围的数字。
C语言中运用随机数的思路:1、在每次运行程序时都会从熵池中获取一个随机数;2、在程序中,不断从刚刚初始化的熵池中取出随机数。
熵池实现:通过time.h中的time_t cur = time(NULL)函数实现srand(cur)种子的不断变化。从而实现不同的熵池。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
typedef unsigned int attack_t;
/* 模拟游戏后台,每次用户触发武器的动作时
* 返回一个该武器的攻击效果
*/
attack_t getWeaponValue(attack_t miniValue, attack_t maxValue) {
return (rand() % (maxValue - miniValue + 1)) + miniValue;
}
int main() {
time_t tm = time(NULL);
srand(tm);
attack_t cur;
for (int i = 0; i < 10; ++i) {
cur = getWeaponValue(100, 300);
printf("---- %d ---- \n", cur);
}
return 0;
}