%%%-------------------------------------------------------------------
%%% @author li
%%% @copyright (C) 2018, <COMPANY>
%%% @doc
%%%
%%% @end
%%% Created : 13. 四月 2018 13:37
%%%-------------------------------------------------------------------
-module(majiang).
-author("li").
-include("server.hrl").
-include("common.hrl").
-include("majiang.hrl").
-define(MAJIANG_INIT_LIST, [1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,11,12,13,14,15,16,17,18,19,11,12,13,14,15,16,17,18,19,11,12,13,14,15,16,17,18,19,11,12,13,14,15,16,17,18,19,21,22,23,24,25,26,27,28,29,21,22,23,24,25,26,27,28,29,21,22,23,24,25,26,27,28,29,21,22,23,24,25,26,27,28,29,31,32,33,34,35,36,37,38,39,31,32,33,34,35,36,37,38,39,31,32,33,34,35,36,37,38,39,31,32,33,34,35,36,37,38,39,41,42,43,44,45,46,47,41,42,43,44,45,46,47,41,42,43,44,45,46,47,41,42,43,44,45,46,47]).
%% API
-export([check_he/1]).
%% 满足算法n*AAA+m*ABC+DD=14
check_he(List) ->
List1 = lists:sort(List),
d2(List1, []).
d2([], _L1) -> false;
d2([_A], _L1) -> false;
d2([A, A | L], L1) ->
case d3(lists:reverse(L1) ++ L) of
true -> true;
false -> d2([A | L], [A | L1])
end;
d2([A, B | L], L1) -> d2([B | L], [A | L1]).
d3([]) -> true;
d3([_A]) -> false;
d3([_A, _B]) -> false;
d3([A, A, A]) -> true;
d3([A, B, C]) when A < 40 ->
if
B - A == 1 andalso C - B == 1 -> true;
true -> false
end;
d3([_A, _B, _C]) -> false;
d3([A, A, A | L]) -> d3(L);
d3([A, B, B, C, C, D | L]) when A < 40 ->
if
B - A == 1 andalso C - B == 1 andalso D - C == 1 -> d3(L);
true -> false
end;
d3([A, A, B, B, C, C | L]) when A < 40 ->
if
B - A == 1 andalso C - B == 1 -> d3(L);
true -> false
end;
d3([A, B, C | L]) when A < 40 ->
if
B - A == 1 andalso C - B == 1 -> d3(L);
true -> false
end;
d3(_List) -> false.
erlang实现简单麻将胡牌算法
最新推荐文章于 2020-03-03 12:07:47 发布