Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
 

34 Zeilen
800 B

-module(ai_supervisor).
-behaviour(supervisor).
-export([start_link/0, init/1]).
-export([start_ai/1, stop_ai/1]).
%% API
start_link() ->
supervisor:start_link({local, ?MODULE}, ?MODULE, []).
%% 启动一个AI玩家
start_ai(Difficulty) ->
supervisor:start_child(?MODULE, [Difficulty]).
%% 停止一个AI玩家
stop_ai(AiPid) ->
supervisor:terminate_child(?MODULE, AiPid).
%% Callbacks
init([]) ->
SupFlags = #{strategy => simple_one_for_one,
intensity => 10,
period => 60},
ChildSpecs = [
#{id => ai_player,
start => {ai_player, create_ai_player, []},
restart => temporary,
shutdown => 5000,
type => worker,
modules => [ai_player]}
],
{ok, {SupFlags, ChildSpecs}}.