网游中随机获得名字的方法

其实很简单,两种方法。

1、String类有个静态方法 fromCharCode(),返回一个字符串,该字符串由参数中的 Unicode 字符代码所表示的字符组成。

然后再查一下中文的Unicode 范围,我试的大概是19968到40891这个样子(十进制),这样就能随机获得一个中文了(包括简体和繁体)。

var index:int = 19968 + (30000-19968)*Math.random();

trace(String.fromCharCode(index));

想获得一个昵称则随机组合2-5汉字就行,就是有2个问题

(1)这样获得的汉字很多是繁体字或可读性差的生僻汉字。

(2)没有进行姓名的区分,这样随机的名字只是汉字的随机组合。所以又有了第二种方法。


2、这种方法就是很笨的枚举法了,把所有常用的姓和名分别列出来,比如我随便列举一些:

//姓

var xing:string  = "俞", "倪", "傅", "储", "元", "充", "党", "全", "公", "公冶", "公孙", "公羊", "关", "养", "冀", "冉","农", "冯", "冷", "凌", "凤", "刁", "刘", "利", "别", "劳", "勾", "包", "匡", "华", "卓", "单", "单于";

//名

var ming:string = "蔼艾爱安傲白柏般半宝碧璧彬滨冰波伯博采彩苍超琛臣尘辰宸晨诚城程驰初吹春辞聪从翠代黛丹蝶冬恩尔凡方芳访";

这样具体列举出来,使用的时候分别随机获得姓和名,来组成一个名字,这样最后获得的名字则符合传统观念了。

现在的问题你是不是担心重复率很高??上面列举的只是一些姓和名,你可以百度一些直接复制下来,(直接所搜百家姓即可),虽是百家姓,实际姓氏可达500+

我做过测试,用480个姓和410个名生成 :姓+名(两个汉字),重复率极低, 100W次有效名字994106个, 30W次有效名字299470个

我想即使是所有服务器名字唯一,也够你用了吧,哈哈




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值