Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
"5-line" engine
#16
(02-08-2024, 05:13 PM)SMcNeill Wrote:
(02-08-2024, 01:27 PM)GareBear Wrote: SMcNeill, Maybe I can help you understand GWBasic interpreter. It has to have a number for each line of instruction. To make the code fit in the least amount of memory colons were allowed to let more code per memory. To the interpreter this is one line with the chr$(13) at the end. Having Chr$(13) after each code took up more memory. The best way to see this take James D Jarvis's code and break it into a line for each instruction (no colons) and save it. Go to your file listing and see the original that James D. Jarvis did and the one that you took the colons out of and see the difference in size of the files. The IDE is not restrained with small memory. Like 64k for example. Colons are as you know are for backward compatibility. I hope you understand what I said. If not I may have muddied up the waters with my attempt. To use colons or not to use them is what the programmer want in the code they composed and it works for all to see.  - GareBear.

Here's my point in one line:

Code: (Select All)
Screen _NewImage(80, 45, 0): _FullScreen: _ControlChr Off: _PrintString (1, 1), String$(3280, 219): dx = 40: dy = 20: Randomize Timer: s = Int(200 + Rnd * (100 * (1 + Rnd * 4))): For d = 1 To s: m$ = m$ + Chr$(49 + Int(Rnd * 4)): Next d: px = 40: py = 20: stand = 0: Do: dx = 40: dy = 20: Color 7: _PrintString (1, 1), String$(3280, 219): For c = 1 To Len(m$): _PrintString (dx, dy), ".": Select Case Mid$(m$, c, 1): Case "1": dy = dy - 1: Case "2": dx = dx + 1: Case "3": dy = dy + 1: Case "4": dx = dx - 1: End Select: Select Case dy: Case 40, 1: dy = 20: dx = 40: End Select: Select Case dx: Case 80, 1: dy = 20: dx = 40: End Select: Next c: Color 15: _PrintString (px, py), Chr$(2): Do: _Limit 40: kk$ = InKey$: Loop Until kk$ <> "": kk$ = UCase$(kk$): pxm = 0: pym = 0: Select Case kk$: Case "W": pym = -1: Case "S": pym = 1: Case "D": pxm = 1: Case "A": pxm = -1: End Select: Select Case Screen(pym + py, pxm + px, 0): Case 219: pxm = 0: pym = 0: End Select: px = px + pxm: py = py + pym: Loop Until kk$ = Chr$(27)

Now, how much sexier is my contributation to this effort, than the original 5-line program?  I managed to work and strain and shorten things down to where it can all be ran on just a single line...

This doesn't make smaller EXEs.   It doesn't translate to less assembly when compiling.  The c-output of the translated files isn't different.  The only change is it's more scrolling left to right in the IDE and no use of the vertical screen.  I've obfuscated the code so it's harder for a human to read, but did nothing to change the machine behavior -- but, by Golly, it's only a single line now!

Big Grin
Big Grin Big Grin Big Grin
Reply


Messages In This Thread
"5-line" engine - by James D Jarvis - 02-06-2024, 02:13 PM
RE: "5-line" engine - by SMcNeill - 02-06-2024, 02:40 PM
RE: "5-line" engine - by James D Jarvis - 02-06-2024, 05:43 PM
RE: "5-line" engine - by bplus - 02-06-2024, 06:27 PM
RE: "5-line" engine - by GareBear - 02-06-2024, 10:42 PM
RE: "5-line" engine - by JRace - 02-07-2024, 01:30 AM
RE: "5-line" engine - by MasterGy - 02-07-2024, 02:31 PM
RE: "5-line" engine - by TerryRitchie - 02-07-2024, 02:46 PM
RE: "5-line" engine - by JRace - 02-07-2024, 05:25 PM
RE: "5-line" engine - by MasterGy - 02-07-2024, 08:27 PM
RE: "5-line" engine - by GareBear - 02-08-2024, 12:00 AM
RE: "5-line" engine - by SMcNeill - 02-08-2024, 12:15 AM
RE: "5-line" engine - by JRace - 02-08-2024, 03:43 AM
RE: "5-line" engine - by GareBear - 02-08-2024, 01:27 PM
RE: "5-line" engine - by SMcNeill - 02-08-2024, 05:13 PM
RE: "5-line" engine - by MasterGy - 02-08-2024, 05:22 PM
RE: "5-line" engine - by SMcNeill - 02-08-2024, 06:03 PM
RE: "5-line" engine - by SMcNeill - 02-08-2024, 07:12 PM
RE: "5-line" engine - by MasterGy - 02-08-2024, 11:01 PM
RE: "5-line" engine - by GareBear - 02-09-2024, 02:35 PM
RE: "5-line" engine - by SMcNeill - 02-09-2024, 03:23 PM
RE: "5-line" engine - by madscijr - 02-10-2024, 12:25 AM
RE: "5-line" engine - by GareBear - 02-09-2024, 05:48 PM
RE: "5-line" engine - by bplus - 02-09-2024, 08:42 PM
RE: "5-line" engine - by MasterGy - 02-09-2024, 09:24 PM
RE: "5-line" engine - by MasterGy - 02-09-2024, 09:51 PM
RE: "5-line" engine - by SMcNeill - 02-09-2024, 10:36 PM
RE: "5-line" engine - by MasterGy - 02-09-2024, 11:55 PM
RE: "5-line" engine - by bplus - 02-10-2024, 12:04 AM
RE: "5-line" engine - by MasterGy - 02-11-2024, 01:28 AM
RE: "5-line" engine - by SMcNeill - 02-11-2024, 01:35 AM
RE: "5-line" engine - by MasterGy - 02-11-2024, 04:22 PM
RE: "5-line" engine - by johannhowitzer - 02-12-2024, 02:41 AM
RE: "5-line" engine - by James D Jarvis - 02-15-2024, 06:59 PM
RE: "5-line" engine - by Pete - 02-16-2024, 10:05 AM
RE: "5-line" engine - by Jack - 02-16-2024, 11:06 AM



Users browsing this thread: 8 Guest(s)