Delphi 如何从几个字符串中随机选择一个?
我有以下代码:Delphi 如何从几个字符串中随机选择一个?,delphi,random,Delphi,Random,我有以下代码: letsdoit(something,'abcd'); letsdoit(something,'asdfasdf'); letsdoit(something,'gagaga'); 如果可能的话,我希望它是一条简单的线,逻辑如下: (letsdoit(something,'abcd')) OR (letsdoit(something,'asdfasdf')) OR (letsdoit(something,'gagaga')); 因此,它有33%的机会从三者中选择一个。或: (l
letsdoit(something,'abcd');
letsdoit(something,'asdfasdf');
letsdoit(something,'gagaga');
如果可能的话,我希望它是一条简单的线,逻辑如下:
(letsdoit(something,'abcd')) OR (letsdoit(something,'asdfasdf')) OR (letsdoit(something,'gagaga'));
因此,它有33%的机会从三者中选择一个。或:
(letsdoit(something,'abcd')) OR (letsdoit(something,'asdfasdf'))
因此,它有50%的机会选择左边或50%的机会选择右边的东西
我的问题是:
我有个问题,你用了“letsdoit”但“某物”在哪里?我得到一个错误:错误:不兼容的类型:'Integer'和'String'只需添加
letsdoit
的这个参数。我展示了一个选择随机字符串的方法。如何使用它-你的任务。你意识到RandomChooseString
的作用吗?我现在必须想一想,我希望我能理解。我不理解所有的(const A:array of string):string代码>并获取一些“不兼容类型:'Integer'和'String'”错误,但这可能是一个很好的答案。我真是太蠢了,根本不明白我的错误。我的工作是随机的done@DavidHeffernan你的例子中的(3)是什么?是选择的数量。我想你已经阅读了Random的文档了吗?谢谢,我现在已经这样解决了var randomer:integer;随机化器:=随机(3);如果randomer=0,则开始letsdoit(某物,'abcd');结束;如果randomer=1,则开始letsdoit(某物,'asdfasdf');结束;如果randomer=2,则开始letsdoit(某物,'gagaga');结束代码>不要忘记在应用程序开始时调用随机化()。。。
function RandomChooseString(const A: array of string): string;
begin
Result := A[Random(Length(A))]
end;
letsdoit(something, RandomChooseString(['aaa', 'bbb', 'ccc']));