制作游戏自动辅助第一步:游戏创建角色随机取名
的有关信息介绍如下:当我们需要实现自动创建游戏的时候,起名字就成了问题。怎样才能随机取名既好听又快捷呢?既然说是随机取名,那就少不了随机数的应用~看看随机数是如何实现,数字的随机,字母的随机,和汉字的随机~~
内容大纲
1、随机数字取名:随机数字重复及不重复的写法。
2、随机字母取名:随机字母重复及不重复的写法。
3、随机汉字取名:如何取好听的名字。
随机数字取名
随机数字允许重复
思路:
1、设定随机数字的范围(最大数9,最小数1)
2、设置由几个数字组成名字(名字位数5)
3、做一个循环,将设定的随机数范围的数字存入到数组中
4、在数组中取一个随机数
5、将循环五次取到的随机数合成为字符串名字
代码:
名字=""
最大数=9
最小数=1
位数=5
Randomize
数组="|"
Fori=最小数To最大数
数组=数组&i&"|"
Next
While(位数)
随机数=split(数组,"|")(Int((最大数-最小数+1)*Rnd+最小数))//在数组中取一个随机数
名字=名字&随机数
位数=位数-1
Wend
MessageBox名字
运行结果:
运行了两次,第一次结果为:88363,五位数中8和3都是重复的。第二次结果为:85336,五位数中3重复了一次。
随机数字不重复
思路:
1、设定随机数字的范围(最大数9,最小数1)
2、设置由几个数字组成名字(名字位数5)
3、做一个循环,将设定的随机数范围的数字存入到数组中
4、在数组中取一个随机数
5、将当前取到的随机数从数组中删除,以免下一次取到重复的
6、将循环五次取到的随机数合成为字符串名字
代码:
名字=""
最大数=9
最小数=1
位数=5
Randomize
数组="|"
Fori=最小数To最大数
数组=数组&i&"|"
Next
While(位数)
随机数=split(数组,"|")(Int((最大数-最小数+1)*Rnd+最小数))//在数组中取一个随机数
数组=Replace(数组,"|"&随机数&"|","|")//将当前取到的随机数从数组中删除,以免下一次取到重复的
名字=名字&随机数
最大数=最大数-1
位数=位数-1
Wend
MessageBox名字
运行结果:
运行了两次,第一次结果为:23597,第二次结果为:37159。两次运行结果五位数中没有出现重复的情况
随机字母取名
随机字母允许重复
思路:
1、设定随机字母的范围(小写26个加大写26个,总共52个字母)
2、设置由几个字母组成名字(名字位数5)
3、将52个字母赋值给字符串变量
4、随机在52个字母中获取一个字母
5、将循环五次获取到的字母叠加给字符串变量:名字。
代码:
//大小写字母总共52个,52个字母内随机选择五位不同的字母组合成名字
位数=5
字母个数=52
名字=""
Randomize
字母="A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z"
字符串=""
While(位数)
随机字母=split(字母,"|")(Int((字母个数+1)*Rnd))
名字=名字&随机字母
位数=位数-1
Wend
MessageBox名字
运行结果:
运行了两次,第一次结果为:jjFja,五位字母中j重复了。第二次结果为:BEcEG,五位字母中E重复了。
随机字母不重复
思路:
1、设定随机字母的范围(小写26个加大写26个,总共52个字母)
2、设置由几个字母组成名字(名字位数5)
3、将52个字母赋值给字符串变量
4、随机在52个字母中获取一个字母
5、将当前取到的随机字母从数组中删除,以免下一次取到重复的
6、将循环五次获取到的字母叠加给字符串变量:名字。
代码:
//大小写字母总共52个,52个字母内随机选择五位不同的字母组合成名字
位数=5
字母个数=52
名字=""
Randomize
字母="A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z"
字符串=""
While(位数)
随机字母=split(字母,"|")(Int((字母个数+1)*Rnd))
字母=Replace(字母,"|"&随机字母&"|","|")
名字=名字&随机字母
字母个数=字母个数-1
位数=位数-1
Wend
MessageBox名字
运行结果:
随机汉字取名
随机汉字取名方法一
这类型的起名测试想必很多童鞋都有玩过,根据它的规则起出来的名字都不至于太惨不忍睹。咱们也可以利用这个思路,挑选我们觉得好听的姓氏、名字的第一个字、名字的第二个字。好听的姓氏加上好听的名字,组合起来的名字比随机得到是不是正常很多,让我们一起来实验下。
思路:
1、设定10个好听的姓氏,放在selectcasea中。a的值等于10的随机数。
2、设定10个好听的字作为名字的第一个字,放在selectcaseb中。b的值等于10的随机数。
3、设定10个好听的字作为名字的第二个字,放在selectcasec中。c的值等于10的随机数。
4、用随机数获取姓氏,名字的第一个字第二个字,组合成名字
代码:
Randomize
a=CInt(Int((10-1+1)*Rnd+1))
b=CInt(Int((10-1+1)*Rnd+1))
c=CInt(Int((10-1+1)*Rnd+1))
nei=""
SelectCasea
Case1
zhu="傅"
Case2
zhu="薛"
Case3
zhu="夏"
Case4
zhu="上官"
Case5
zhu="欧阳"
Case6
zhu="岳"
Case7
zhu="墨"
Case8
zhu="温"
Case9
zhu="景"
Case10
zhu="燕"
EndSelect
nei=nei&zhu
SelectCaseb
Case1
zhu="琪"
Case2
zhu="汝"
Case3
zhu="瑞"
Case4
zhu="诗"
Case5
zhu="雯"
Case6
zhu="君"
Case7
zhu="沐"
Case8
zhu="双"
Case9
zhu="宇"
Case10
zhu="玉"
EndSelect
nei=nei&zhu
//第三个字
SelectCasec
Case1
zhu="琬"
Case2
zhu="博"
Case3
zhu="涵"
Case4
zhu="彬"
Case5
zhu="棠"
Case6
zhu="宸"
Case7
zhu="海"
Case8
zhu="浪"
Case9
zhu="川"
Case10
zhu="竹"
EndSelect
随机取姓名=nei&zhu
MessageBox随机取姓名
运行的结果是:墨君川,那啥……小编的文化程度也就只有这高度了,童鞋们可以设置自己喜欢的文字,看看组合起来会变成啥,如果组合到了神马奇怪逗逼的名字,务必贴出来让小编也乐乐~~
随机汉字取名方法二
思路:
1、将你觉得好听的名字收集放入到字符串变量,随机名字中
2、分割字符串变量中的名字,并且获取数组元素个数
3、使用随机数从数组中随机获取一个名字
代码
i=0
Randomize
随机名字="依凝|如柏|雁菱|凝竹|宛白|初柔|南蕾|书萱|梦槐|南琴|绿海|沛儿|晓瑶|凝蝶|紫雪|念双|念真|曼寒|凡霜|飞雪|雪兰|雅霜|从蓉|冷雪|靖巧|翠丝|觅翠|凡白|乐蓉|迎波|丹烟|梦旋|书双|念桃|夜天|安筠|觅柔|初南|秋蝶|千易|安露|诗蕊|山雁|友菱|香露|晓兰|白卉|语山|冷珍|秋翠|夏柳|如之|忆南|书易|翠桃|寄瑶|如曼|问柳|幻桃|又菡|醉蝶|亦绿|诗珊|听芹|新之|易巧|念云|晓灵|静枫|夏蓉|如南|幼丝|秋白|冰安|秋白|南风|醉山|初彤|凝海|紫文|凌晴|雅琴|傲安|傲之|初蝶|代芹|诗霜|碧灵|诗柳|夏柳|采白|慕梅|乐安|冬菱|紫安|宛凝|雨雪|易真|安荷|静竹|代柔|丹秋|绮梅|依白|凝荷|幼珊|忆彤|凌青|之桃|芷荷|听荷|代玉|念珍|梦菲|夜春|千秋|白秋|谷菱|飞松|初瑶|惜灵|梦易|新瑶|曼梅|碧曼|友瑶|雨兰|夜柳|芷珍|含芙|夜云|依萱|凝雁|以莲|安南|幼晴|尔琴|飞阳|"
随机名字=split(随机名字,"|")
名字总个数=UBound(随机名字)-1
TracePrint名字总个数
i=(Int((名字总个数+1)*Rnd+1))
TracePrinti
MessageBox随机名字(i)