现在玩家越来越懒了,需要一键生成角色名。这里用Delphi实现自动生成玩家角色名,生成的角色名与手动想出的一样,毫无任何违和感。
效果展示
实现原理
872条姓数据+3000条男名数据+5000条女名数据 的随机组合,理论上可以根据男女性别生成百万级别的角色数据。
核心源码
//概率函数
function FiftyPercentChance(Probability: Single): Boolean;
begin
Randomize;
Result := Random < Probability;
end;
procedure TForm3.Button1Click(Sender: TObject);
var
NicknameUtil : TNicknameUtil;
RandomNickname: string;
begin
NicknameUtil := TNicknameUtil.Create;
if RadioButton1.Checked then
begin
RandomNickname := NicknameUtil.getRandomNickname(1)
end else begin
RandomNickname := NicknameUtil.getRandomNickname(0);
end;
if CheckBox1.Checked then
begin
if FiftyPercentChance(0.5) then
RandomNickname := TGBBIG5Convert.GBChs2Cht(RandomNickname);
end;
if CheckBox2.Checked then
begin
if FiftyPercentChance(0.1) then
begin
RandomNickname := '丿' + RandomNickname;
end
else if FiftyPercentChance(0.1) then
begin
RandomNickname := '乀' + RandomNickname;
end;
if FiftyPercentChance(0.2) then
begin
RandomNickname := RandomNickname + '丶';
end;
end;
Memo1.Lines.Add(RandomNickname);
NicknameUtil.Free;
end;