随机生成游戏用户昵称,nodejs版本

1 前言

有时需要生成随机的用户(或机器人)昵称,头像,金币等,但又不想太生硬,可以现在网上爬一些常见昵称到文本中,然后读取出来,随机使用即可。

2 代码

var nickNameArr = [];

function initNickName(){

    var dirname =__dirname;
    var nickname00 = fs.readFileSync(dirname+"/res/nickname00.txt","utf-8");

    //把换行的都全局替换成空格,然后按空格分割为数组
    var rn00 = nickname00.replace(/\r\n/g," ");
    var nameArr00 = rn00.split(' ');

    nickNameArr = [].concat(nameArr00);

    console.log("nickNameArr length=",nickNameArr.length);
}

function genName(){

    var name = "";
    var len =nickNameArr.length;
    if(len > 0){
        var pos = Math.floor(Math.random()*len);
        name = nickNameArr[pos];
        if(name.length == 0){ //防止拿到空白值,正常情况不会出现
            genName();
        }
    }

    return name;
}

//nickname00文本格式为每个昵称中间空一格或者换行,例子如下:
昵称1 昵称2 昵称3
nk1 nk2
nk3
昵称x
nk4

3 头像随机

function genHeadimg(){

    var url_img = "";

    var path = "./public/images/headImages/";
    //实际使用用域名,内部测试ip如下
    var ip = "127.0.0.1";
    //如果有端口就写,如果没有,跳过
    var port = "8888";
    var path_link = "http://"+ip + ":" + port + "/public/images/headImages/";

    var files = fs.readdirSync(path);

    var len = files.length;
    var randNum = Math.floor(Math.random()*len);
    var url_img = path_link + files[randNum];
    console.log("genHeadimg rand link=",url_img);

    return url_img;
}

4 小结

金币等随机数只是数字的随机数,略。