{"id":13509299,"url":"https://github.com/olhado/dicer","last_synced_at":"2025-10-21T15:55:51.290Z","repository":{"id":19645153,"uuid":"22897550","full_name":"olhado/dicer","owner":"olhado","description":"dice string parser and roller","archived":true,"fork":false,"pushed_at":"2015-05-24T01:36:15.000Z","size":564,"stargazers_count":4,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-21T15:55:40.947Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"aerospike/aerospike-helper","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/olhado.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-08-13T00:53:18.000Z","updated_at":"2023-09-22T20:25:05.000Z","dependencies_parsed_at":"2022-08-21T13:40:35.434Z","dependency_job_id":null,"html_url":"https://github.com/olhado/dicer","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/olhado/dicer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olhado%2Fdicer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olhado%2Fdicer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olhado%2Fdicer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olhado%2Fdicer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/olhado","download_url":"https://codeload.github.com/olhado/dicer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olhado%2Fdicer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280290185,"owners_count":26305279,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-21T02:00:06.614Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T02:01:05.883Z","updated_at":"2025-10-21T15:55:50.979Z","avatar_url":"https://github.com/olhado.png","language":"Elixir","funding_links":[],"categories":["Text and Numbers"],"sub_categories":[],"readme":"# NOW DEPRECATED!\n\nDicer is still available on hex.pm, but will not be worked on anymore. Check out my new replacement project [at gitlab.com named Rollex](https://gitlab.com/olhado/rollex). \n\nDicer\n=====\n\nA dice roller expression evaluator written in Elixir!\n\nInstallation\n============\n\nPre-requisites\n--------------\n\n* Erlang 17 or greater\n* Elixir 1.0.1\n* git (to clone the repository)\n\nCreating a command line binary\n------------------------------\n\n`mix escript.build`\n\nFrom here, execute rolls like this:\n\n`$ dicer \"1+2+3\"`\n\nRunning in interactive shell\n----------------------------\n\n`iex -S mix`\n\nFrom here, execute rolls like this:\n\n`iex(1)\u003e Dicer.roll \"1+2+3\"`\n\nAdding as a mix dependency\n--------------------------\n\nIn your mix.exs file:\n\n```\n  def application do\n    [mod: {MyApp, []},\n     applications: [:dicer]]\n  end\n```\n\nand this:\n\n```\n  defp deps do\n    [{:dicer, \"0.4.0\"}]\n  end\n```\n\nDetails\n=======\n\nDicer is an elixir application that lets you evaluate dice rolls with simple arithmetic operators. \n\n* The operators supported are `+, -, /, *`.\n* Grouping is via parentheses\n* Polyhedral dice are designated using the `\u003cquantity\u003ed\u003csides\u003e` format (Ex. 20d8 or D100).\n* Fudge/Fate dice are designated using the `\u003cquantity\u003edF` format (Ex. 42dF)\n* You can ask Dicer to take the top or bottom X rolls via the `^\u003cquantity\u003e` (take top) and `v\u003cquantity\u003e` (take bottom) symbols (Ex. 10d100^5 [take top 5 results from 10 rolls of a 100-sided die])\n\nWhy?\n====\n\nBecause it was a fun, somewhat non-trivial way to work in Elixir.\n\nThanks\n======\n\nThanks to [Lukasz Wrobel](http://lukaszwrobel.pl/) for his [short series on parsing](http://lukaszwrobel.pl/blog/math-parser-part-1-introduction). Part 3 was my template for my code, even if it took me way too long to translate the loops into recursive function calls!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Folhado%2Fdicer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Folhado%2Fdicer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Folhado%2Fdicer/lists"}