views:

267

answers:

5

I'm looking for an implementation of the LOGO programming language that supports 'dynaturtles' - animated turtles that can programmatically change shape, speed and direction as well as detect collisions with each other or other objects in the environment.

Back in the mists of time when the earth was new and 8 bit micros ruled supreme, Atari LOGO did this famously well. One could create all sorts of small games and simulated environments using this technique very easily as that implementation of the language had a very well thought out, elegant syntax.

I know about LCSI's Microworlds but I'm looking for something I can use to get some friends and their kids involved in programming without breaking my budget.

+2  A: 

Digging around a bit online, I've found OpenStarLogo. Though they don't specifically mention "dynaturtles" the docs do mention collision detection. The site has code and documentation downloads.

From this wikipedia article, under the Implementations section, there is a PDF listing known current and antique implementations. Some of these, such as StarLogo TNG and Elica have support for 3D objects. These are definitely not like the LOGO programs I wrote as a kid...

Pedro
StarLOGO does exactly what I want in terms of allowing me to define turtle 'objects', move them around the screen, and detect collisisions between them. StarLOGO used to have parallel support which was cool, but it was streamlined towards sims and didn't seem to have the robust 3D support TNG does.
feoh
A: 

Check out the turtle python package. It is in the standard python distribution and it supports a graphical turtle interface.

minty
A: 

I use microworlds for my logo... I know of kturtle for kde kturtle I also found a few links that could be interesting
python turtle
fmslogo
MSWlogo

A: 

If you use win-logo (www.win-logo.de/eng/e_index.htm; you must register and then you can try for 30 days), you can practise this code (german version Nr. 2):

PR test
   ;* #####  Startdatei  ######
   SETZE "sprung.x" 0
   SETZE "sprung.y" 0
   flug
ENDE

PR flug
   sprung
   tasten
   flug
ENDE

PR sprung
   SETZE "sprung.x" :sprung.x + (SIN KURS)/2
   SETZE "sprung.y" :sprung.y + (COS KURS)/2
   AUFXY (XKO + :sprung.x) (YKO + :sprung.y)
ENDE

PR tasten
   SETZE "t" TASTE
   WENN :t = "d" DANN LI 30
   WENN :t = "e" DANN DZ "Abbruch!" AUSSTIEG
   WENN :t = "f" DANN RE 30
   WENN :t = "h" DANN sprung
   tasten
ENDE

OK? Greetings. Michael Kraus

A: 

Two additions to my post of yesterday, concerning LOGO-procedures with dynaturtle:

1.) the key "d" is NUM 4

the key "e" is NUM 5

the key "f" is NUM 6

the key "h" is NUM 8

2.) After hitting "e" = NUM 5 to stop the recursive procedures, you have also to click the exit-button. - I have tried to find out why, but I have no idea.

Michael Kraus