From a68168d6517faaa15e13aaf9d7b4d9aa658b9797 Mon Sep 17 00:00:00 2001 From: Correl Roush Date: Fri, 4 May 2012 08:18:08 -0400 Subject: [PATCH] Initial commit --- Makefile | 14 +++++++ include/riichi.hrl | 4 ++ rebar | Bin 0 -> 118476 bytes rebar.config | 1 + src/riichi.app.src | 12 ++++++ src/riichi.erl | 73 ++++++++++++++++++++++++++++++++++++ src/riichi_app.erl | 16 ++++++++ src/riichi_sup.erl | 28 ++++++++++++++ test/riichi_tests.erl | 84 ++++++++++++++++++++++++++++++++++++++++++ 9 files changed, 232 insertions(+) create mode 100644 Makefile create mode 100644 include/riichi.hrl create mode 100755 rebar create mode 100644 rebar.config create mode 100644 src/riichi.app.src create mode 100644 src/riichi.erl create mode 100644 src/riichi_app.erl create mode 100644 src/riichi_sup.erl create mode 100644 test/riichi_tests.erl diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..c62f248 --- /dev/null +++ b/Makefile @@ -0,0 +1,14 @@ +.PHONY: all deps compile test clean + +REBAR=./rebar + +all: deps compile + +deps: + @$(REBAR) get-deps +compile: deps + @$(REBAR) compile +test: + @$(REBAR) skip_deps=true eunit +clean: + @$(REBAR) clean diff --git a/include/riichi.hrl b/include/riichi.hrl new file mode 100644 index 0000000..719a458 --- /dev/null +++ b/include/riichi.hrl @@ -0,0 +1,4 @@ +-record(tile, { + suit, + value +}). diff --git a/rebar b/rebar new file mode 100755 index 0000000000000000000000000000000000000000..672a9f841f06b44b6f361bec672ebc2cdda0c708 GIT binary patch literal 118476 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%0AYYP-~|E|03E<+M;jCbAq^gZkn)!kq6dUO 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 W1Z*flKzITFN&r!X1ppBU$o~iJm#MG- literal 0 HcmV?d00001 diff --git a/rebar.config b/rebar.config new file mode 100644 index 0000000..4483aa9 --- /dev/null +++ b/rebar.config @@ -0,0 +1 @@ +{cover_enabled, true}. diff --git a/src/riichi.app.src b/src/riichi.app.src new file mode 100644 index 0000000..9197eeb --- /dev/null +++ b/src/riichi.app.src @@ -0,0 +1,12 @@ +{application, riichi, + [ + {description, ""}, + {vsn, "1"}, + {registered, []}, + {applications, [ + kernel, + stdlib + ]}, + {mod, { riichi_app, []}}, + {env, []} + ]}. diff --git a/src/riichi.erl b/src/riichi.erl new file mode 100644 index 0000000..f9f3738 --- /dev/null +++ b/src/riichi.erl @@ -0,0 +1,73 @@ +-module(riichi). + +-include("riichi.hrl"). + +-export([ + is_valid_tile/1, + dora/1, + nearest/2, + score/3 +]). + +is_valid_tile(#tile{suit=dragon, value=Value}) -> + lists:member(Value, [white, green, red]); +is_valid_tile(#tile{suit=wind, value=Value}) -> + lists:member(Value, [east, south, west, north]); +is_valid_tile(#tile{suit=Suit, value=Value}) -> + ValidSuit = lists:member(Suit, [pin, sou, man]), + ValidValue = is_integer(Value) and (Value > 0) and (Value < 10), + ValidSuit and ValidValue; +is_valid_tile(_) -> + false. + +dora(#tile{suit=dragon, value=Value}=Indicator) -> + case Value of + white -> Indicator#tile{value=green}; + green -> Indicator#tile{value=red}; + red -> Indicator#tile{value=white} + end; +dora(#tile{suit=wind, value=Value}=Indicator) -> + case Value of + east -> Indicator#tile{value=south}; + south -> Indicator#tile{value=west}; + west -> Indicator#tile{value=north}; + north -> Indicator#tile{value=east} + end; +dora(#tile{value=Value}=Indicator) -> + case is_valid_tile(Indicator) of + false -> + throw({error, invalid_tile}); + _ -> + if + Value == 9 -> Indicator#tile{value=1}; + true -> Indicator#tile{value=Value + 1} + end + end. + +nearest(Num, To) when Num rem To == 0 -> + Num; +nearest(Num, To) -> + Num - (Num rem To) + To. + + +score(_Fu, Yaku, Limit) when (Yaku >= 5) and (Limit == true) -> + if + Yaku < 6 -> + 2000; + Yaku < 8 -> + 3000; + Yaku < 11 -> + 4000; + Yaku < 14 -> + 6000; + true -> + 8000 + end; +score(Fu, Yaku, Limit) -> + Score = nearest(Fu * round(math:pow(2, 2 + Yaku)), 100), + if + Limit and (Score > 2000) -> + 2000; + true -> + Score + end. diff --git a/src/riichi_app.erl b/src/riichi_app.erl new file mode 100644 index 0000000..cf619f5 --- /dev/null +++ b/src/riichi_app.erl @@ -0,0 +1,16 @@ +-module(riichi_app). + +-behaviour(application). + +%% Application callbacks +-export([start/2, stop/1]). + +%% =================================================================== +%% Application callbacks +%% =================================================================== + +start(_StartType, _StartArgs) -> + riichi_sup:start_link(). + +stop(_State) -> + ok. diff --git a/src/riichi_sup.erl b/src/riichi_sup.erl new file mode 100644 index 0000000..1095032 --- /dev/null +++ b/src/riichi_sup.erl @@ -0,0 +1,28 @@ + +-module(riichi_sup). + +-behaviour(supervisor). + +%% API +-export([start_link/0]). + +%% Supervisor callbacks +-export([init/1]). + +%% Helper macro for declaring children of supervisor +-define(CHILD(I, Type), {I, {I, start_link, []}, permanent, 5000, Type, [I]}). + +%% =================================================================== +%% API functions +%% =================================================================== + +start_link() -> + supervisor:start_link({local, ?MODULE}, ?MODULE, []). + +%% =================================================================== +%% Supervisor callbacks +%% =================================================================== + +init([]) -> + {ok, { {one_for_one, 5, 10}, []} }. + diff --git a/test/riichi_tests.erl b/test/riichi_tests.erl new file mode 100644 index 0000000..147f693 --- /dev/null +++ b/test/riichi_tests.erl @@ -0,0 +1,84 @@ +-module(riichi_tests). + +-include("riichi.hrl"). +-include_lib("eunit/include/eunit.hrl"). + +valid_tile_dragon_test_() -> + [?_assert(riichi:is_valid_tile(#tile{suit=dragon, value=Value})) || Value <- [white, green, red]]. +valid_tile_wind_test_() -> + [?_assert(riichi:is_valid_tile(#tile{suit=wind, value=Value})) || Value <- [east, south, west, north]]. +valid_tile_suit_test_() -> + [?_assert(riichi:is_valid_tile(#tile{suit=Suit, value=Value})) || Suit <- [pin, sou, man], Value <- lists:seq(1,9)]. + +invalid_tile_test_() -> + [?_assertNot(riichi:is_valid_tile(Tile)) + || Tile <- + [ + #tile{suit=badsuit, value=1}, + #tile{suit=dragon, value=hidden}, + #tile{suit=wind, value=broken}, + #tile{suit=pin, value=0}, + #tile{suit=sou, value=-1}, + #tile{suit=man, value=10}, + not_a_tile + ] + ]. + +dora_dragon_test_() -> + [?_assertEqual(riichi:dora(#tile{suit=dragon, value=Indicator}), #tile{suit=dragon, value=Dora}) + || {Indicator, Dora} <- + [ + {white, green}, + {green, red}, + {red, white} + ] + ]. + +dora_wind_test_() -> + [?_assertEqual(riichi:dora(#tile{suit=wind, value=Indicator}), #tile{suit=wind, value=Dora}) + || {Indicator, Dora} <- + [ + {east, south}, + {south, west}, + {west, north}, + {north, east} + ] + ]. + +dora_suit_test_() -> + [?_assertEqual(riichi:dora(#tile{suit=Suit, value=Indicator}), #tile{suit=Suit, value=Dora}) + || + {Indicator, Dora} <- + [{1,2}, {2,3}, {3,4}, {4,5}, {5,6}, {6,7}, {7,8}, {8,9}, {9,1}], + Suit <- [pin, sou, man] + ]. + +dora_invalid_test() -> + ?assertException(throw, {error, invalid_tile}, riichi:dora(#tile{suit=pin, value=9001})). + +nearest_test_() -> + [?_assertEqual(riichi:nearest(Val, 10), 80) || Val <- lists:seq(71,80)]. + +score_yaku_limit_test_() -> + [?_assertEqual(riichi:score(30, Yaku, true), Score) + || {Yaku, Score} <- + [ + { 5, 2000}, + { 6, 3000}, + { 7, 3000}, + { 8, 4000}, + { 9, 4000}, + {10, 4000}, + {11, 6000}, + {12, 6000}, + {13, 6000}, + {14, 8000}, + {1000, 8000} + ] + ]. + +score_fu_limit_test() -> + ?assertEqual(riichi:score(80, 4, true), 2000). + +score_rounded_test() -> + ?assertEqual(riichi:score(20, 1, true), 200). % 160 rounded up