{"id":21144359,"url":"https://github.com/gilbert/pomic","last_synced_at":"2025-03-14T13:40:37.605Z","repository":{"id":942119,"uuid":"718064","full_name":"gilbert/pomic","owner":"gilbert","description":"A programming version of the game Nomic","archived":false,"fork":false,"pushed_at":"2015-08-14T03:07:55.000Z","size":140,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-05T22:49:20.528Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"pomic.net","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gilbert.png","metadata":{"files":{"readme":"README.rdoc","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2010-06-13T00:28:38.000Z","updated_at":"2015-08-14T03:07:56.000Z","dependencies_parsed_at":"2022-07-15T05:30:37.401Z","dependency_job_id":null,"html_url":"https://github.com/gilbert/pomic","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gilbert%2Fpomic","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gilbert%2Fpomic/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gilbert%2Fpomic/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gilbert%2Fpomic/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gilbert","download_url":"https://codeload.github.com/gilbert/pomic/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243588698,"owners_count":20315464,"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","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-11-20T08:17:07.958Z","updated_at":"2025-03-14T13:40:37.586Z","avatar_url":"https://github.com/gilbert.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"= Lomic\n\nLomic is a Domain Specific Language (DSL) intended to be used for Pomic, a programming version of the game Nomic.\n\n== Getting Started\n\n=== Installing\n\nInstall the gem:\n\n    $ gem install lomic\n\nOr grab the latest code from github:\n\n    $ git clone git://github.com/mindeavor/lomic.git\n    $ cd lomic\n    $ rake install\n\n=== Quick Example\n\nHere's a self-contained, offline example. For a networking example, check out listen_path.rb[http://github.com/mindeavor/lomic/blob/master/examples/listen_path.rb] in the examples[http://github.com/mindeavor/lomic/tree/master/examples/] folder\n\nsimple.rb:\n  \n  class Globals \u003c Lomic\n    var :didiwin =\u003e 'No...'\n  end\n  \n  rule 101 do |g| # g refers to globals\n    event \"game:start\" do\n      puts '[Example: simple.rb]'\n      g.didiwin = 'Yes!'\n      set_next \"game:test1\"\n    end\n  \n    event \"game:test1\" do\n      puts \"Did I win? #{g.didiwin}\"\n    end\n  end\n\nmyParseFile.rb:\n  \n  require 'lomic'\n  game_state = Lomic.parse('simple.rb', 'game:start')\n\n\n== What does Lomic look like?\n\nLomic is designed to be expressive in declaring rules for the game Nomic:\n\n    class Globals \u003c Lomic\n      var :players =\u003e []\n      var :currentPlayer\n    end\n    \n    class Player \u003c Lomic\n      resource :hp =\u003e 15 # resources have a max and min value\n    end\n\n    rule 101 do |g| # g refers to globals\n      ### The game begins with 4 players.\n      ### Each player is assigned a unique number.\n      event \"game:start\" do\n        Player.new_var :number =\u003e 0\n        4.times do |i|\n          p = Player.new\n          p.number = i\n          g.players.push(p)\n        end\n      end\n    end\n    \n    rule 102 do |g|\n      ### At the beginning of each player's turn,\n      ### that player takes 3 damage\n      event \"turn:start\" do\n        currentPlayer.hp -= 3\n      end\n    end\n\nCheck out the `examples/` folder to see what Lomic is supposed to look like, and `parse.rb` to see how to use Lomic (in its current, underdeveloped state)\n\n== Contributing\n\nLomic is currently in the concept and development stage. To discuss contributing, syntax, goals, or implementation, join us at #lomic on irc.freenode, or email me at gilbertbgarza aT gmail\n\n== Copyright\n\nCopyright (c) 2010 Gilbert B Garza. See LICENSE for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgilbert%2Fpomic","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgilbert%2Fpomic","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgilbert%2Fpomic/lists"}