{"rsdb":{"rid":"239130","subhead":"","postdate":"0","aid":"164833","fid":"88","uid":"1","topic":"1","content":"
\n

error_msg.ex  \u4f7f\u7528\u4e86\u70b9\u5b8f<\/p> \n

\uff08\u5e9f\u4e86\u70b9\u65f6\u95f4\uff0c\u4e00\u81f4\u5728\u5c1d\u8bd5\u62b9\u521d\u90a3\u6bb5for\uff0c\u60f3\u76f4\u63a5\u5b9a\u4e49\u4e2a\u5de5\u5177\u5b8f\uff0c \u7531\u4e8e\u751f\u758f\u4e86\u6ca1\u80fd\u5f88\u5feb\u6210\u529f\uff0c<\/p> \n

\u597d\u5728for\u7684\u4ee3\u7801\u4e5f\u5f88\u7b80\u77ed\uff0c\u800c\u5b9e\u9645\u4e0a\u4ececsv\u751f\u6210\u7684\u8bdd\uff0c\u4e5f\u662f\u8981\u505a\u5faa\u73af\u5de5\u4f5c\uff0c\u7b97\u662f\u5b89\u6170\uff09<\/p> \n

\n \"\"\n \"\" \n
\n
defmodule ErrorMsg do\r\n    @msgs <\/span>%{\r\n        player_not_enough: <\/span>"<\/span>player_not_enough<\/span>"<\/span>,\r\n        can_not_start_when_playing: <\/span>"<\/span>can_not_start_when_playing<\/span>"<\/span>,\r\n        can_not_dismiss_when_playing: <\/span>"<\/span>can_not_dismiss_when_playing<\/span>"<\/span>,\r\n        just_creator_can_start: <\/span>"<\/span>just_creator_can_start<\/span>"<\/span>,\r\n        just_creator_can_dismiss: <\/span>"<\/span>just_creator_can_dismiss<\/span>"<\/span>,\r\n        can_not_join_when_playing: <\/span>"<\/span>can_not_join_when_playing<\/span>"<\/span>,\r\n        repeated_join: <\/span>"<\/span>repeated_join<\/span>"<\/span>,\r\n        can_not_quit_when_playing: <\/span>"<\/span>can_not_quit_when_playing<\/span>"<\/span>,\r\n        can_not_quit_when_creator: <\/span>"<\/span>can_not_quit_when_creator<\/span>"<\/span>,\r\n        can_not_make_up_when_not_playing: <\/span>"<\/span>can_not_makeup_when_not_playing<\/span>"<\/span>,\r\n        can_not_make_up_when_open: <\/span>"<\/span>can_not_make_up_when_open<\/span>"<\/span>,\r\n        can_not_make_up_when_full: <\/span>"<\/span>can_not_make_up_when_full<\/span>"<\/span>,\r\n        just_tian_gong_can_open: <\/span>"<\/span>just_tian_gong_can_open<\/span>"<\/span>,\r\n        repeated_open: <\/span>"<\/span>repeated_open<\/span>"<\/span>\r\n    }\r\n\r\n    <\/span>for<\/span> {tag, text} <- @msgs do\r\n        <\/span>def<\/span> unquote(tag)() do\r\n            unquote text\r\n        end\r\n    end\r\n\r\n\r\nend<\/span><\/pre> \n  <\/div> \n  error_msg.ex<\/span>\n <\/div> \n 

\u9519\u8bef\u6d88\u606f\u4e5f\u53ef\u4ee5\u4ece\u5916\u90e8\u6587\u4ef6\u751f\u6210\uff0c\u53ea\u662f\u7cfb\u5217\u672c\u8eab\u4e3b\u8981\u6f14\u793a\u57fa\u7840\u670d\u52a1\u5668\u5f00\u53d1\uff0c\u56e0\u6b64\u5c31\u4e0d\u8fdb\u4e00\u6b65\u4e86\u3002<\/p> \n

\u6211\u66fe\u7ecf\u5728\u535a\u5ba2\u91cc\u6709\u5199\u8fc7\u65b9\u6848\u4eceexcel\u76f4\u63a5\u751f\u6210<\/p> \n

\uff08\u4e0d\u8fc7\u73b0\u5728\u4e0d\u5efa\u8bae\u4e86\uff0c\u8be5\u65b9\u6848\u4f9d\u8d56\u7684excel\u5904\u7406\u5e93\u4e0d\u591f\u597d\uff0c \u5efa\u8bae\u8f6c\u6210csv\uff0c\u518d\u4ececsv\u751f\u6210\u66f4\u597d\uff09<\/p> \n

simple_table.ex \u65b0\u589e\u7684\u4f7f\u6d4b\u8bd5\u901a\u8fc7\u7684\u4ee3\u7801<\/p> \n

\n \"\"\n \"\" \n
\n
defmodule SimpleTable do\r\n    @state_ready  :ready\r\n    @state_playing :playing\r\n    @state_dismiss :dismiss\r\n    <\/span>def<\/span> init() do\r\n        <\/span>%{\r\n            id: 0,\r\n            cards: nil,\r\n            creator: nil,\r\n            seat_map: <\/span>%{},\r\n            seat_order: [],\r\n            state: @state_ready\r\n        }\r\n    end\r\n\r\n    <\/span>def<\/span> is_playing?(table), do: table.state == @state_playing\r\n    <\/span>def<\/span> is_dismiss?(table), do: table.state == @state_dismiss\r\n    <\/span>def<\/span> is_ready?(table), do: table.state == @state_ready\r\n\r\n    <\/span>def<\/span> set_playing(table), do: put_in(table.state, @state_playing)\r\n    <\/span>def<\/span> set_ready(table), do: put_in(table.state, @state_ready)\r\n    <\/span>def<\/span> set_dismiss(table), do: put_in(table.state, @state_dismiss)\r\n\r\n\r\n    <\/span>def<\/span> set_cards(table, cards), do: put_in(table.cards, cards)\r\n    <\/span>def<\/span> get_cards(table), do: table.cards\r\n\r\n    <\/span>def<\/span> init_deal(table) do\r\n        table.seat_order\r\n        <\/span>|> Enum.map(&(find_seat(table, &1)))\r\n        <\/span>|> Enum.reduce(table, \r\n            fn seat, new_table <\/span>->\r\n                new_table <\/span>|> init_deal_one(seat)\r\n            end)\r\n    end\r\n\r\n    <\/span>def<\/span> init_deal_one(table, seat) do\r\n        {:ok, cards, left} <\/span>= SimplePoker.init_deal(table.cards)\r\n        seat <\/span>= seat |> Seat.add_cards(cards)\r\n        table <\/span>|> update_seat(seat)\r\n              <\/span>|> set_cards(left)\r\n    end\r\n\r\n    <\/span>def<\/span> set_id(table, id), do: put_in(table.id, id)\r\n    <\/span>def<\/span> get_id(table), do: table.id\r\n\r\n    <\/span>def<\/span> set_creator(table, player), do: put_in(table.creator, player)\r\n    <\/span>def<\/span> get_creator(table), do: table.creator\r\n    \r\n    <\/span>def<\/span> seat_count(table), do: table.seat_order |> Enum.count\r\n    <\/span>def<\/span> seat_order(table), do: table.seat_order\r\n\r\n    <\/span>def<\/span> find_seat(table, %{} = player), do: find_seat(table, player |> Player.get_id)\r\n    <\/span>def<\/span> find_seat(table, player_id), do: table.seat_map[player_id]\r\n\r\n\r\n    <\/span>def<\/span> add_seat(table, player) do\r\n        seat <\/span>= Seat.init(player)\r\n        seat_id <\/span>= seat |> Seat.get_id\r\n        table <\/span>= table |> update_seat(seat)\r\n        add_to_order(table, seat_id)\r\n    end\r\n\r\n    <\/span>def<\/span> update_seat(table, seat), do: put_in(table.seat_map[seat |> Seat.get_id], seat)\r\n\r\n    <\/span>def<\/span> add_to_order(table, seat_id), do: update_in(table.seat_order, &","orderid":"0","title":"\u7b80\u5355Elixir\u6e38\u620f\u670d\u8bbe\u8ba1-\u4f7ftable\u6d4b\u8bd5\u901a\u8fc7(\u4e00)","smalltitle":"","mid":"0","fname":"Erlang","special_id":"0","bak_id":"0","info":"0","hits":"6346","pages":"2","comments":"0","posttime":"2017-10-16 18:18:42","list":"1508149122","username":"admin","author":"","copyfrom":"","copyfromurl":"","titlecolor":"","fonttype":"0","titleicon":"0","picurl":"http:\/\/images.cnblogs.com\/OutliningIndicators\/ContractedBlock.gif","ispic":"1","yz":"1","yzer":"","yztime":"0","levels":"0","levelstime":"0","keywords":"\u7b80\u5355<\/A> Elixir<\/A> \u6e38\u620f<\/A> \u8bbe\u8ba1<\/A> table<\/A> \u6d4b\u8bd5<\/A> \u901a\u8fc7<\/A>","jumpurl":"","iframeurl":"","style":"","template":"a:3:{s:4:\"head\";s:0:\"\";s:4:\"foot\";s:0:\"\";s:8:\"bencandy\";s:0:\"\";}","target":"0","ip":"113.108.110.181","lastfid":"0","money":"0","buyuser":"","passwd":"","allowdown":"","allowview":"","editer":"","edittime":"0","begintime":"0","endtime":"0","description":"\u7b80\u5355Elixir\u6e38\u620f\u670d\u8bbe\u8ba1-\u4f7ftable\u6d4b\u8bd5\u901a\u8fc7","lastview":"1713557445","digg_num":"481","digg_time":"0","forbidcomment":"0","ifvote":"0","heart":"","htmlname":"","city_id":"0"},"page":"1"}