Skip to content

BradleyLyman/DarwinBots.Js

Repository files navigation

#DarwinBots.js

This repo represents the core functionality of the DarwinBots.js app. All code directly related to the user-facing application can be found in the DarwinBots.js-Client repo.

JsDoc can be found here: http://bradlyman.github.io/DarwinBots.Js/

Right now the parser supports compiling provided source into an abstract syntax tree.

Example Source:

'Animal_Minimalis
'By: Nums -- Modified by Brad Lyman
'Good for mutation sims and for
'newbies to see how a basic bot works.
'Contains everything necessary for it
'to survive and reproduce.
'Syntax modified for DarwinBots.js,
'the semantics have not changed.

' Gene 1 Food Finder
cond
  eye5 > 0
  and refeye != myeye
start
  dx <- refveldx
  up <- refvelup + 30
stop

' Gene 2 Eat Food
cond
  eye5 > 50
  and refeye != myeye
start
  shoot <- -1
  up    <- refvelup
stop

' Gene 3 Avoiding Family
cond
  eye5 = 0
  or refeye = myeye
start
  rnd   <- 314
  aimdx <- rnd
stop

' Gene 4 Reproduce
cond
  nrg > 20000
start
  repro <- 10
stop
end

A Demo program/source is provided, to try it out just clone the repo, run "npm install" and then run "node demo.js" in the repo's directory.

The demo program just dumps a pretty printed AST.

The parser uses a recursive descent strategy and is essentially a codification of the modified BNF describing the language. This can be viewed in the dnaSpec.markdown file.

About

Implementation of the ALife simulator, DarwinBots, as an HTML5/JavaScript app.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published