Programming language for the game Nomic
Ruby
Switch branches/tags
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
examples
features
lib
LICENSE
Manifest
README.rdoc
Rakefile
TODO
VERSION.yml

README.rdoc

Lomic

Lomic is a Domain Specific Language (DSL) intended to be used for Pomic, a programming version of the game Nomic.

Getting Started

Installing

Install the gem:

$ gem install lomic

Or grab the latest code from github:

$ git clone git://github.com/mindeavor/lomic.git
$ cd lomic
$ rake install

Quick Example

Here's a self-contained, offline example. For a networking example, check out listen_path.rb in the examples folder

simple.rb:

class Globals < Lomic
  var :didiwin => 'No...'
end

rule 101 do |g| # g refers to globals
  event "game:start" do
    puts '[Example: simple.rb]'
    g.didiwin = 'Yes!'
    set_next "game:test1"
  end

  event "game:test1" do
    puts "Did I win? #{g.didiwin}"
  end
end

myParseFile.rb:

require 'lomic'
game_state = Lomic.parse('simple.rb', 'game:start')

What does Lomic look like?

Lomic is designed to be expressive in declaring rules for the game Nomic:

class Globals < Lomic
  var :players => []
  var :currentPlayer
end

class Player < Lomic
  resource :hp => 15 # resources have a max and min value
end

rule 101 do |g| # g refers to globals
  ### The game begins with 4 players.
  ### Each player is assigned a unique number.
  event "game:start" do
    Player.new_var :number => 0
    4.times do |i|
      p = Player.new
      p.number = i
      g.players.push(p)
    end
  end
end

rule 102 do |g|
  ### At the beginning of each player's turn,
  ### that player takes 3 damage
  event "turn:start" do
    currentPlayer.hp -= 3
  end
end

Check 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)

Contributing

Lomic 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

Copyright

Copyright © 2010 Gilbert B Garza. See LICENSE for details.