Code = secret_code:generate,
should be called as a function call Code = secret_code:generate(),
. Compare can be done using pattern matching. Code as follows
-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(),
check_code(X, Code).
check_code(Code, Code) ->
yes;
check_code(_, _) ->
no.
display_welcome_message() ->
display("Welcome to the game!").
Note the difference in secret_code to get it in string instead of returning a list of strings
-module(secret_code).
-export([generate/0, symbols/0]).
generate() ->
random:seed(now()),
[lists:nth(random:uniform(6), symbols()) || _ <- lists:seq(1, 4)].
symbols() ->
"bgpryo".
Example run:
1> console_io:gets(">").
>bgryo
yes
2> console_io:gets(">").
>bgryj
no
3>