我正在看一些使用erlang制作的游戏,我发现了一个简单的井字游戏here。我理解这个游戏,但我有一个简单的问题,即该人使用io:format()
来显示游戏状态。所以当我像
gameclient:make_move(Player1, ChallengedPlayer, Message),
我获得的回报是
{make_move,"player1",a3}
但我想知道如何在调用函数make_move/3
时检索当前的游戏状态。
我不认为在这里使用mnesia是一个不错的选择。
任何人都可以建议一种检索/返回游戏状态的方法,而不仅仅是使用io:format打印它。
答案 0 :(得分:0)
您可以使用ETS表作为示例
在启动时创建表格
ets:new(tik_tak_tab, [public, {read_concurrency, true}, ordered_set,named_table]).
将数据存储到表中:
loop(Name) ->
receive
{ msg, Message } ->
ets:insert(tik_tak_tab, {state, Message}),
loop(Name)
end.
制作新功能以检索状态:
some_func() ->
case ets:lookup(tik_tak_tab, state) of
[{state, Message}] -> Message;
_ -> error
end.
_。 还有便宜的方式来使用记录
您可以查看详细的here