C语言编程练习_通过计算机生成伪随机数,实现一个接口,产生一个在指定范围内的数字

发布时间 2023-03-31 18:02:36作者: 碧波潭龙王爷

游戏中,武器的攻击力是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;
}