铁血丹心

 找回密码
 我要成为铁血侠客
搜索
查看: 5213|回复: 5

[其他] 人物姓名生成和地名生成工具源代码发布

[复制链接]
发表于 2010-3-1 22:54 | 显示全部楼层 |阅读模式
本人曾发表的人物姓名生成和地名生成工具1.04版
的源代码

现予发布,请有志之士给好的建议和意见,并帮忙改进,请PM我。


[发帖际遇]: yu_xinxing除去游坦之脸上铁面,但游坦之毁容后的容貌被阿紫憎恶,游坦之迁怒追杀yu_xinxing,丢失银两13333333333333两。


[ 本帖最后由 yu_xinxing 于 2010-3-1 22:58 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要成为铁血侠客

x

评分

参与人数 1声望 +8 收起 理由
黄顺坤 + 8 支持开源

查看全部评分

【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2010-3-2 01:03 | 显示全部楼层
可惜是vb的,我不会vb,只会dephi……
但是还是要赞颂lz的无私~
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2010-3-2 09:36 | 显示全部楼层
非常谢谢LZ,你的姓名地名生成器很好用.
有个功能不知能否加上,就是姓名生成里面,有个指定"名字",能否改成"指定中间字","指定末尾字"这两项,这样在取同辈份人的名字时比较方便,还有就是地名,能否加入单字地名

[发帖际遇]: 千草彦偷学武当梯云纵轻功,不幸从树上摔下,花掉医药费银两16两。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2010-3-2 11:35 | 显示全部楼层
似乎可以使用一些子程完成所有步骤

我好像几个月前也写过这个
  1. ‘从你源码里拷贝出来的。。总觉得这样写不是很好,但是无妨。。vb效率也就这样了。。
  2. Option Explicit
  3. Public Declare Function GetTickCount Lib "kernel32" () As Long

  4. Rem 定义中国地名字、外国地名字、单姓、复姓、男名、女名变量
  5. Public Const c_DiMing = "庵阪邦堡陂边场城陲村岛地巅殿洞坊坟峰府阜冈岗港阁沟谷关观国海河湖江疆界径境郡圹里林岭陵楼陆路麓峦庙墓弄坡丘区塞山省市寺塔台滩潭汀亭土疃屯湾坞县乡崖茔屿峪园苑寨嶂镇冢州渚祝庄"
  6. Public Const e_DiMing = ""
  7. Public Const c_XingD = "赵钱孙李周吴郑王冯陈褚卫蒋沈韩杨朱秦尤许何吕施张孔曹严华金魏陶姜戚谢邹喻柏水窦章云苏潘葛奚范彭郎鲁韦昌马苗凤花方俞任袁柳酆鲍史唐费廉岑薛雷贺倪汤滕殷罗毕郝邬安常乐于时傅皮卞齐康伍余元卜顾孟平黄和穆萧尹姚邵湛汪祁毛禹狄米贝明臧计伏成戴谈宋茅庞熊纪舒屈项祝董梁杜阮蓝闵席季麻强贾路娄危江童颜郭梅盛林刁钟徐邱骆高夏蔡田樊胡凌霍虞万支柯昝管卢莫房裘缪干解应宗丁宣贲邓郁单杭洪包诸左石崔吉钮龚程嵇邢滑裴陆荣翁荀羊惠甄曲家封芮羿储靳汲邴糜松井段富巫乌焦巴弓牧隗山谷车侯宓蓬全郗班仰秋仲伊宫宁仇栾暴甘钭历戎祖武符刘景詹束龙叶幸司韶郜黎蓟溥印宿白怀蒲邰从鄂索咸籍赖卓蔺屠蒙池乔阳胥能苍双闻莘党翟谭贡劳逄姬申扶堵冉宰郦雍却璩桑桂濮牛寿通边扈燕冀浦尚农温别庄晏柴瞿阎充慕连茹习宦艾鱼容向古易慎戈廖庾终暨居衡步都耿满弘匡国文寇广禄阙东欧殳沃利蔚越夔隆师巩厍聂晁勾敖融冷訾辛阚那简饶空曾毋沙乜养鞠须丰巢关蒯相查后荆红游竺权逮盍益桓公"
  8. Public Const c_XingF = "万俟司马上官欧阳夏侯诸葛闻人东方赫连皇甫尉迟公羊澹台公冶宗政濮阳淳于单于太叔申屠公孙仲孙轩辕令狐徐离宇文长孙慕容司徒司空亓官司寇仉督子车颛孙端木巫马公西漆雕乐正"
  9. Public Const c_MingM1 = "安邦宝保彪彬斌波伯博才策昌超琛辰晨成承诚春达德东栋发飞风峰福富刚罡功固冠光广贵国海翰航豪浩和河恨亨恒弘宏鸿厚华辉会家坚建健江杰金进敬军钧俊康克朗乐磊力利良梁亮林龙伦轮茂民明鸣楠宁朋鹏平奇启谦强清庆全群仁荣榕若山善绍生胜盛时士世树顺思松泰涛腾天维伟文武先祥翔小心新信兴星行雄旭学言岩炎以义毅永勇友有玉裕元泽哲振震政之志致中忠壮子"
  10. Public Const c_MingM2 = ""
  11. Public Const c_MingM3 = ""
  12. Public Const c_MingM4 = ""
  13. Public Const c_MingW1 = "爱安傲白柏半宝贝蓓碧璧冰波采彩婵痴初春纯聪翠代黛丹娣蝶冬娥儿尔凡梵芳飞菲芬风枫凤芙馥谷桂海含涵寒菡荷恨红华骅桦怀槐欢环幻卉惠慧姬寄佳嘉剑姣娇洁婕金锦瑾菁晶静菊娟君筠苛可兰岚蓝澜乐蕾冷莉丽荔怜莲琳灵玲凌菱柳露璐绿玛曼眉梅美妹媚梦觅妙茗慕娜南妮念凝盼沛佩飘平萍琦琪绮千茜倩巧芹琴勤青卿清晴琼秋荣容蓉融柔如蕊瑞睿若莎山珊诗书淑舒双霜爽水烁丝思松素堂桃婷彤纨宛婉琬薇苇文雯问希惜霞夏贤娴香向霄小晓笑欣新馨秀萱旋雪寻雅娅烟妍琰彦艳雁燕阳洋瑶叶夜伊依仪宜怡以忆艺亦易逸英莺迎滢颖影映咏友又幼宇羽雨语玉育毓元园苑媛瑗月悦阅云芸韵昭贞珍真之芝枝芷忠珠竹紫宗醉"
  14. Public Const c_MingW2 = ""
  15. Public Const c_MingW3 = ""
  16. Public Const c_MingW4 = ""

  17. Rem 定义随机取好的单姓,复姓、男名首字,男名尾字,女名首字,女名尾字,地名用字
  18. Public StrA As String
  19. Public StrB As String
  20. Public StrC As String
  21. Public StrD As String
  22. Public StrE As String
  23. Public StrF As String
  24. Public StrG As String '取字符串

  25. Rem 定义字符串、男姓名、女姓名、
  26. Public AllMstr As String
  27. Public AllWstr As String
  28. ‘********************************************************************
  29. Public Function rndInt(x1 As Long, x2 As Long) As Long
  30.     Randomize
  31.     rndInt = Int(Rnd * (Int(x2) - Int(x1) + 1)) + x1
  32. End Function
  33. Public Sub SplitWords(ByVal SplitString As String, Splitn() As String, SplitStep As Long)
  34. Dim i As Long
  35.     ReDim Splitn(Len(SplitString) / SplitStep - 1)
  36.     For i = 1 To Len(SplitString) Step SplitStep
  37.         Splitn((i - 1) / SplitStep) = Mid(SplitString, i, SplitStep)
  38.     Next i
  39. End Sub
  40. Public Function RndString(Splitn() As String) As String
  41. RndString = Splitn(rndInt(0, UBound(Splitn)))
  42. End Function
  43. ’*****************************************************************
复制代码
放在模块里、、

初始化的时候,调用
  1. Private Sub Form_Load()
  2. 'single
  3. SplitWords c_XingD, c_XingD_N, 1
  4. 'double
  5. SplitWords c_XingF, c_XingF_N, 2
  6. 'male
  7. SplitWords c_MingM1, c_MingM1_N, 1
  8. 'female
  9. SplitWords c_MingW1, c_MingW1_N, 1
  10. End Sub
复制代码
之后显示人名只需要
  1.     If Option1.Value = True Then
  2.         For i = 0 To 100 - 1
  3.             List1.AddItem RndString(c_XingF_N) & " " & RndString(c_MingW1_N)
  4.         Next i
  5.     Else
  6.         For i = 0 To 100 - 1
  7.             List1.AddItem RndString(c_XingD_N) & " " & RndString(c_MingW1_N)
  8.         Next i
  9.     End If
复制代码
代码几乎没有优化
tickcont的时间是16(似乎就是不耗时间)。。。

抛砖引玉,个人对优化方面理解不深

[发帖际遇]: 黄顺坤帮丘处机寻找杨家后人,被完颜洪烈发现海扁一顿,还被抢走银两27两。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2010-3-2 15:01 | 显示全部楼层
原帖由 千草彦 于 2010-3-2 09:36 发表
非常谢谢LZ,你的姓名地名生成器很好用.
有个功能不知能否加上,就是姓名生成里面,有个指定"名字",能否改成"指定中间字","指定末尾字"这两项,这样在取同辈份人的名字时比较方便,还有就是地名,能否加入单字地名

[发帖 ...



嗯,有道理,考虑加进去

[发帖际遇]: yu_xinxing在绝情谷被当作周伯通的同伙,被绿衣弟子一顿暴打,损失银两10两。

555555……我怎么这么惨?这几天都损失银两?难道是RP问题?
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2010-3-2 15:04 | 显示全部楼层
原帖由 黄顺坤 于 2010-3-2 11:35 发表
似乎可以使用一些子程完成所有步骤

我好像几个月前也写过这个‘从你源码里拷贝出来的。。总觉得这样写不是很好,但是无妨。。vb效率也就这样了。。
Option Explicit
Public Declare Function GetTickCount Lib  ...



嗯,我知道,这是简化版本,你的这个方法我在完全版本中已经使用了,其实随机字数时,还是得用其它过程来随机
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。

本版积分规则

小黑屋|手机版|铁血丹心

GMT+8, 2024-5-2 17:26

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表