# The Liberty Basic Newsletter - Issue #109 - June 2003

## © 2003, http://groups.yahoo.com/group/lbnews/

### [http://libertybasicuniversity.com/lbnews/]

### All Rights Reserved

Please download the Zip Archive of this issue to get all associated files

"Why, a four-year-old child could understand this report! Run out and find me a four-year-old child, I can't make head or tail out of it!" -- Groucho Marx -- [Listen] if you are on the net.

#### In this issue:

Blast from the past - Looking Back Three Years: NL74 and NL75

Beginning Game Programming - by Richard Ryles

Differential Equations - by Ingemar Bjerle

Browsing and Exploring a Folder - By Alyce Watson

Flash-O-Rama! - by Tom Nally

Beginning Programming Part IV - by Brad Moore

Four Methods for Drawing Arcs - compiled by Tom Nally

Newsletter help

Index

#### Not In this issue:

- Breaking News! Brand New Liberty BASIC Yahoo group created to summarize and track messages is all the other Liberty BASIC Yahoo groups! Says Carl Gundel, "Fantastic! Just what we need!"
- Breaking News! Alyce announces her new "killer app", DeFragMail, written in 100% native LB! DeFragMail will remove all spaces and punctuation from a mail message, then convert all occurences of "you" to "u", and all occurences of "are" to "r". It renders the message totally unreadable, but who cares? Alyce, I'm sure I speak for all LB users when I say this: u r 2 cool!
- Carl provides progress update on new Ray Tracing add-in for Liberty BASIC. Reports Carl, "I guess you can say I'm halfway there. I've already hired two programmers named 'Ray'!"
- Carl announces new commands for LB4!
  - CUPHOLDER - Opens the CD drive
  - APPEN - Opens your desk drawer when you are tired of typing so that you can get, well, a pen!
  - bellyBUTTON xcenter, ycenter, radius, lint - draws a bellybutton on your screen at xcenter, ycenter with the radius specified. (The lint parameter is optional.) Carl hints that in LB5, the user can specify whether the bellybutton is an "innie" or an "outie".
  - HEXDECHEX( "value" ) - converts a hexadecimal string to a decimal value, then back to the original hexadecimal string. Similar in operation to the command, WASTETIME.
  - BEER - Similar to BEEP, except that it plays the default system belch. [Listen] if you are on the net.
  - FUHGEDDABOUTIT - New compiler directive to handle compile-time errors by shutting down the LB editor, and booting the Sopranos on DVD.
- Breaking News! Alyce pronounces NL109 "the latest cure for insomnia...an incoherent stream of consciousness...as if it oozed from the brain of a pre-literate James Joyce..."

#### Deja Vu All Over Again

"`We have a lot of people who are new to Liberty BASIC in our group, and in general. I sometimes see messages from people who are newbies, and they are trying to accomplish complex tasks. When this is the case, people usually become very frustrated... To learn, first work with Liberty BASIC commands and functions. Leave the API stuff for much later.`" --- Alyce Watson, Newsletter #75, June 2000

`There is plenty to learn from native LB commands. There is so much you can DO with native LB commands! It will be much easier to add api calls to code once you understand how Windows programming works, from using LB for a while. Programming should be FUN! If you try to learn too much too fast, or if you try to learn the complicated stuff first, then it is not fun. I've seen new LBers who want to jump straight into API calls and complex programming methods. They always get frustrated and discouraged.` --- Alyce Watson, [http://libertybasic.conforums.com], May 13, 2003

#### Notes from the Editor

We're having fun now, kids!

Though I'm not sure that this newsletter would be valuable reading material for a four-year-old as Groucho might suggest, it does provide something for Liberty BASIC users of all skill levels!

Once again, I like to start the feature section of the issue by firing up the time machine to look back at the Liberty BASIC Newsletter a few years ago. In Blast from the past, we look at NL74 and NL75, which were published in June of 2000. At that time, only betas of LB2 had been released. None-the-less, the open source editor was undergoing revisions in order to identify the new capabilities of LB2. Read also about the fact that NL75 was the first issue to discuss the creation of help files for your Liberty BASIC applications. Oasis SE, a help authoring system discussed by Alyce in NL75, is still available on the web [here].

Following Blast, Richard Ryles produces a nice game programming tutorial for beginners. Richard starts the tutorial by creation of a game outline, and takes the student all the way through sprite display in this very detailed article. This article is rich in screen shots and command examples. I'm sure you will agree that Richard's teaching experience has served him well. Game programmers out there, it will serve you well, too!

Application Window

A special article follows Richard's game tutorial. In Differential Equations, Ingemar Bjerle provides a math lecture on the use of Liberty BASIC to solve differential equations using the Euler and the Runge Kutta methods.

I must admit: Ingemar's lecture is a little beyond my understanding at this point. As I explained to him, however, I thought it was important that we placed his creative work on the record. The computing community must know the serious tasks of which Liberty BASIC is capable. Plus, Ingemar's program just produces fascinating output, as you can see by the screenshot on the right. Have at it, math wizzes!

Alyce Watson, the master of the Windows API, follows with an article on Browsing and Exploring a Folder. Though the API calls are complicated, Alyce provides clear, step-by-step examples, as well as an entire sample program. Thanks, Alyce! Your contributions are consistently useful and well crafted!

Also in this newsletter, you may stumble across Flash-O-Rama!, my Flash Card program. It's main strength is that creating and browsing flash cards are done in the same mode. Flash-O-Rama also has its own compiled html help file, which I created with HelpBlocks, available at [http://www.helpblocks.com]. The Flash-O-Rama zip archive comes with two sample flash card stacks: one is a Liberty BASIC quiz, and the other is a set of trivia questions on the history of computing.

If you read his posts on the bulletin board, you'll agree that Brad Moore is a valuable asset to all LB programmers. But Brad is particularly helpful to beginners! In this issue, Brad continues his beginning programming series with Beginning Programming Part IV. Needless to say, there are lots of goodies in Brad's four-part article. If there is an element common to all parts, it might be the importance of learning the Liberty BASIC string functions: how do you parse strings; how do you convert from strings to values (and vice versa). Brad ends his article with a discussion of two-dimensional arrays, which provides a neat seguey into whatever Brad discusses next!

Before you run to the refrigerator, take a look at Four Methods for Drawing Arcs in Liberty BASIC. Watson, Drake, Nally and Amaya all provided contributions to this article. Friends, isn't that the mark of a rich development environment that it allows you many different ways to accomplish a task? I think so.

Ahhhhh, my work here is done.

But like a bad penny, I'll find my way back again when NL112 comes around. Until then, keep pounding those keys and producing great Liberty BASIC programs!

SUBMISSIONS

The Liberty BASIC Newsletter encourages all LB programmers to submit articles for publication. Everyone has something valuable to say, from beginners to veteran LBers. Consider sharing a code routine, with explanation. Perhaps you can review a favorite LB website, or program, or coding tool? Why not submit a list of questions that have been nagging at you? How about sharing your favorite algorithm?

The Publishing Team:
Alyce Watson: alycewatson@charter.net
Brad Moore: brad.moore@weyerhaeuser.com
Tom Nally: SteelWeaver52@aol.com
Carl Gundel: carlg@libertybasic.com
Bill Jennings: bbjen@bigfoot.com
This newsletter was produced with WikiWriter