我正在用 Erlang 构建一个简单的控制台游戏。在过去的两天里,我一直在编写一些 Erlang 模块和测试,并且一切正常(在各个模块中)。我对如何运行游戏并让模块一起工作感到困惑。
我一直在阅读“Greater Good”一书,并且阅读了很多关于 OTP 的内容,但感觉难以承受。有没有我可以在某处学习的简单教程?书中的 OPT 示例对我正在尝试做的事情是否过度杀伤?
更新:感谢您的反馈。这是一个更具体的问题。
我有两个模块......
Console_IO模块
-module(console_io).
-export([display/1, display_welcome_message/0, gets/1]).
display(Message) ->
io:format(Message).
gets(Message) ->
{ok, [X]} = io:fread(Message, "~s").
io:format("You entered '~s'.", [X]);
display_welcome_message() ->
display("Welcome to the game!").
密码模块
-module(secret_code).
-export([generate/0, symbols/0]).
generate() ->
random:seed(now()),
[lists:nth(random:uniform(6), symbols()) || _ <- lists:seq(1, 4)].
symbols() ->
["b","g","p","r","y","o"].
这两个模块位于不同的文件中。我希望这些模块能够相互交谈,以便用户可以输入猜测,尝试猜测密码并且游戏返回“是”或“否”。
我想在我的“gets”语句中添加两行来生成密码并将其与猜测进行比较:
-module(console_io).
-export([display/1, display_welcome_message/0, gets/1]).
display(Message) ->
io:format(Message).
gets(Message) ->
{ok, [X]} = io:fread(Message, "~s"),
Code = secret_code:generate,
Code -- [X].
display_welcome_message() ->
display("Welcome to the game!").
我知道我没有走在正确的轨道上。有没有一种简单的方法可以做到这一点?