Small Basic Programs in 25 lines


Note: All the programs listed below can be downloaded directly into Small Basic.  Just import the programs using their published Id.

What started as a fun challenge in our Small Basic Forums, quickly turned into a repository of very interesting programs, all conforming to a 25-line limit.  It is amazing to see enthusiastic participants come up with very creative patterns to embed complex logic in as few lines as possible.

The challenge started with the classic game of Rock/Paper/Scissors, written in 24 lines by Coding Cat and published as CTB433.  This was meant to be just an example for the challenge, but within days, Jason Jacques posted a 9 line version of the same program, published as CTB433-1.  And the race was on.

Recently Rushworks posted a trick to initialize Small Basic arrays in a single line.  Hours later, Davey-Wavey came up with a feature-par version of the original Rock/Paper/Scissors in 3 lines flat!  This version is published as CTB433-2.

25line_1

And using a few tricks and assumptions about the size of the text window, Jason came back and posted the same program in just 2 lines!  It is published as CTB433-5.

As this race was going on, litdev published the Swarm of Bees as MSH031 in 25 lines.25line_2

Simultaneously, Dudeson published a similar program, RRS083 which simulates an atom with the mouse center as the nucleus.  And Grzegorz Tworek, published his Lissajou’s Curve simulator program as GQP876, in 11 lines. 

25line_3

Dudeson went back and improved his atom code to publish RPW587, which runs much faster.

25line_4

Other programs that you’ll find on this forum:

Sudoku Solver

(25 lines)
by Jason Jacques: CGW786

25line_5

Sub Hunt

(25 lines)
by Coding Cat: KDN168
also by Davey-Wavey: KDN168-0

25line_6

Space Invaders

(20 lines)
by Davey-Wavey: XDK444

25line_7

Comments (17)

  1. Davey~Wavey says:

    SBace-Invaders is now improved, and shrunk to 18 lines: SPR072

  2. tony says:

    I think this site is great. I’m just learning.

  3. futrePro says:

    Rock paper, scissors shortened to 19 lines and better yet. use code

    CTB433-16

  4. futrePro says:

    Dictionary in 8 lines! use code BTP350

  5. futrePro says:

    Dictionary in 7 lines and better yet! use code BTP350-1

  6. futrePro says:

    Dictionary in 6 lines! Use code FKP983

  7. futrePro says:

    Rock paper, scissors shortened to 12 lines!. use code CTB433-29

  8. George Clendenin says:

    I'm looking for a sample program that creates multiple text input boxes in which you input numerical data. The data is read from each input box so calculations may be performed on the input.

  9. Retard says:

    where the hell are the full programs

  10. matt says:

    how do i move an object that has already been printed from memory onto the screen? ie an animal has been printed on a blank screen and now i want to move it from one side of the screen to another using x and y coordinates. what is the command?

  11. Amir says:

    TextWindow.WriteLine(Dictionary.GetDefinition(TextWindow.Read()))

    one line of code to get dictionary definition…

  12. Don't Know says:

    Where do i go to download something

  13. bob says:

    put the code!!!!!!

  14. Sad says:

    Where do I go to download something?

    Ans. Put the Code.

    Q Put the Code where? How?

  15. Don't need to know my name says:

    FNB377 2 lines for dictionary

  16. same person says:

    FPM739 Vowel and Consanant counter

    Browser needs game extension:

    GameWindow.Height = Desktop.Height

    GameWindow.Width = Desktop.Width

    GameWindow.BackgroundColor = "Black"

    GameWindow.Show()

     Web = "google.com"

    Browser = GameControls.AddWebBrowser(0, 0, GameWindow.Width, GameWindow.Height – 40, Web)

    WebBar = GameControls.AddTextBox("http://", GameWindow.Width – 1214,GameWindow.Height -35, 700, 30)

    Enter = GameControls.AddButton("Go" GameWindow.Width – 514, GameWindow.Height-35, 100, 30)

    Zoom_Control_Bar = GameControls.AddSlider(100,GameWindow.Width – 120,GameWindow.Height – 30,100,20)

    Sub Browsing

        website = GameControls.GetText(WebBar)

        GameControls.SetValue(Browser,website) 'use gamecontrols.setvalue function to set the url

        GameWindow.Title = website

        For i = 1 To 10000   'Not accurate but a webpage should load in 10 seconds

          val = i * 100 / 10000

          GameControls.SetText(Enter,"Loading "+math.Round(val))

        EndFor

        GameControls.SetText(Enter,"Go")

      EndSub

  17. Joshua W says:

    A forever-looping Rock Paper Scissors CTB433-47