【问题标题】:Can you randomize letters in Pascal?你能随机化 Pascal 中的字母吗?
【发布时间】:2018-07-22 11:00:12
【问题描述】:

我正在用 Pascal 为我在大学的计算机科学课创建一个石头剪刀布游戏。

我有代码,我在其中键入 0、1 或 2 来表示石头、纸或剪刀,这是完全随机的。

我想知道是否有办法让字母 r,p,s 随机代表石头、纸或剪刀,而不是使用数字。

我试图用 r,p 和 s 随机化这个游戏。随机“命令”是否仅适用于数字,如果是这样,它们是随机化字母的命令吗?)。

感谢您抽出宝贵时间阅读本文!如果您有任何问题,请随时问我,谢谢!

ps。我不知道你是否知道我在说什么,但我试图在凌晨 5 点发布代码超过半小时,但它的格式仍然不正确,不会让我发布,抱歉我是新手.

【问题讨论】:

  • 您可以添加未格式化的代码,希望有人会对其进行编辑,以便将其格式化为代码
  • 快捷方式:1) 将代码粘贴到编辑窗口的底部 2) 突出显示并 3) 点击“ctrl + k”
  • 就你的问题而言——当然你可以随机选择字母。如果您知道如何随机选择数字 0、1、2,只需将它们用作数组中的索引,其条目由 3 个字母组成。如果您还没有数组,只需根据随机生成的数字的值使用if ... else if ... else 构造。
  • 本网站不会因为未格式化而阻止您发布代码。查看每天编辑的数千个帖子中的任何一个以添加格式,因为它们是在没有它的情况下发布的。此外,您在输入帖子时会显示完整的格式帮助,以及在单击工具栏中的帮助 ? 时显示的大量标记帮助。说网站不允许是不真实的。

标签: string random numbers pascal letters


【解决方案1】:

您可以定义一个枚举,然后使用 HIGH() 获取枚举中的最大值。然后使用 ORD 转换为整数,并加一,得到枚举中的元素个数。随机调用,并转换回枚举类型。

Free Pascal 允许将枚举值写入控制台,如演示,这可能不适用于例如德尔福。

Type 
    TRPSType = (Rock,Paper,Scissors);

var i : integer;

begin  
 randomize;
  for i:=0 to 10 do
    writeln(TRPSType(random(ord(high(TRPSType))+1)));
end.

也许它可以推广到泛型函数,但我对这些不是很熟悉。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-11
    • 1970-01-01
    • 2014-04-15
    • 2015-03-01
    • 2014-11-30
    • 2019-09-08
    • 2017-06-08
    相关资源
    最近更新 更多