Erlang で簡単なコンソール ゲームを作成しています。過去 2 日間、いくつかの Erlang モジュールとテストを作成してきましたが、(個々のモジュールで) すべて正常に動作しています。ゲームを実行し、モジュールを連携させる方法について混乱しています。
私は「Greater Good」の本を読んでおり、OTP についてかなり読んでいますが、圧倒されます。どこかに従うことができる簡単なチュートリアルはありますか? 本の OPT の例は、私がやろうとしていることに対してやり過ぎですか?
更新: フィードバックありがとうございます。ここに、より具体的な質問があります。
私は2つのモジュールを持っています.....
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"].
これら 2 つのモジュールは別のファイルにあります。これらのモジュールが互いに通信して、ユーザーが推測を入力できるようにして、秘密のコードを推測しようとすると、ゲームは「はい」または「いいえ」を返します。
「gets」ステートメントに 2 行を追加して、秘密のコードを生成し、それを推測と比較したいと考えています。
-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!").
私は正しい軌道に乗っていないことを知っています。これを行う簡単な方法はありますか?