B-Breakout (C16 Plus4) by Haegar of Synergy
A downloadable game
B-Breakout by Haegar of Synergy 2025
Commodore Basic 3.5 - Commodore C16/C116/plus4
14. BASIC 10Liner Contest, Category "PUR-80"
The game was developed with CBM prg Studio V4.0.1
Das Spiel / The Game
------------------------------
B-Breakout ist ein klassisches Breakout Spiel. Das B vorweg steht für BASIC.
Nach der Eingabe von RUN muss man kurz warten da das Farbram gefüllt wird und dann geht es auch schon los. Der Ball startet an eine zufälligen Y Position.
Der Schläger wird mit dem Joystick in Port 1 hoch und runter bewegt.
Insgesamt hat man 5 Leben. Sollte der Ball vom Schläger nicht geroffen werden verliert man ein Leben. Nach 50 Punktem oder einem vielfachem von 50, wird die Wand neu aufgebaut. Da es in der Version schwierig ist wirklich alle Steine exakt zu treffen wurde diese Variante gewählt.
Viel Spass mit der wohl kürzesten Breakout Variante der Welt.
English
=======
B Breakout is a classic breakout game. The B in front stands for BASIC.
After entering RUN you have to wait a moment while the color ram is filled and then it starts. The ball starts at a random Y position. The paddle is moved up and down with the joystick in port 1.
You have 5 lives in total. If the bat doesn't hit the ball you lose a life.
After 50 points or a multiple of 50, the wall is rebuilt. Since it is difficult to hit all the stones exactly in this version, this variant was chosen.
Have fun with what is probably the shortest breakout variant in the world.
Variables
--------------
a = counter
b = positiv or negativ x direction
c = positiv or negativ y direction
d = paddle position
e = counter to build a new wall
f = old y position ball
g = old x position ball
j = Joystick
l = Lives
p = Points
x = x position ball
y = y position ball
a$ = Tasten Abfrage
The Code
-----------------------
0 l=5:d=9:coL0,1:coL4,1:vol8:?"{clear} wait":y=int(rnd(1)*20)+5:p=0:e=0
Hier werden Variabelen gesetzt, Rahmen- und Hinterfarbe auf Schwarz, Bildschirm gelöscht und die zufällige y Startpostion des Balls generiert.
Here variables are set, frame and background color are set to black, screen is cleared and the random y starting position of the ball is generated.
1 x=9:e=e+1:fOa=2048to3071:pOa,85:nE:fora=3to22:char,34,a,"{reverse on}{red}L{orange}L{yellow}L{green}L{blue}L{reverse off}":nE
Die x Pos. des Balls zum Start, Farbram wird gefüllt und die Mauer wird aufgebaut.
The x position of the ball to start, color frame is filled and the wall is built.
2 b=1:c=1:fOa=2to38:char,a,1,"{blue}{162}{down}{left}{light-blue}{184}":char,a,23,"{blue}{162}{down}{left}{light-blue}{184}":sO1,25*a,2:nE
x und y Richtung des Ball auf positiv setzen, obere und untere Begrenzug wird gezeichnet. Sound abspielen.
Set the x and y directions of the ball to positive, upper and lower boundaries are drawn. Play Sound.
3 pO3072+g+f*40,32:g=x:f=y:k=pE(3072+x+y*40):ifk<>32tHb=-b:sO1,34,2
Alte Ball Position wird gelöscht und neue Position wird gespeichert für später, Prüfung ob etwas im Weg ist wenn ja x Richtung umdrehen und Sound abspielen.
Old ball position is deleted and new position is saved for later, check if there is something in the way, if so reverse direction and play sound.
4 ifk=204tHp=p+1
Ist ein Mauerblock im Weg dann Punkte um 1 erhöhen.
If there is a wall block in the way, increase points by 1.
5 pO3072+x+y*40,81:x=x+b:y=y+c:ifx<1orx>37tHb=-b:eLify<3ory>21tHc=-c
Ball an neuer Position Zeichnen, x und y Position um die Richtungsangaben (+1 oder -1) addieren, Prüfen ob Ränder links/rechts und oben/unten Erreicht wurden dann Richtung umdrehen.
Draw the ball at a new position, add the x and y positions by the direction indications (+1 or -1), check whether the left/right and top/bottom edges have been reached, then reverse the direction.
6 ifx<1tHl=l-1:ifl=0tHpO239,0:gO9:elsej=joy(1):ifj=1tHd=d-1:eLifj=5tHd=d+1
Wenn linker Rand erreicht wurde, dann zusätzlich ein Leben abziehen. Wenn Keine Leben mehr vorhanden, dann Tastaturpuffer löschen und zur Zeile 9 springen. Ansonsten weiter zur Joystickabfrage. Richtung wird bestimmt und die neue Postion des Schlägers bestimmt.
If the left edge is reached, then an additional life is deducted. If there are no lives left, then delete the keyboard buffer and go to line 9. Otherwise, continue to the joystick query. The direction is determined and the new position of the bat is determined.
7 ifd=4tHd=5:eLifd=24tHd=23:eLify<3tHy=3
Prüfen ob der Schläger den oberen oder unteren Rand erreicht hat.
Check if the racket has reached the top or bottom edge.
8 char,1,d," {orange}{up}{left}{161}{up}{left}{161}{up}{left} ":char,2,0,"":?"p=";p;" l=";l:ifp=50*etHgO1:eLgO3
Schläger zeichnen, aktuelle Punkte und Leben ausgeben. Wenn 50 oder ein vielfaches davon erreicht wurde Mauer neu aufbauen. Ansonsten ganz normal weiter.
Draw the racket, spend your current points and lives. When you reach 50 or a multiple of that, rebuild the wall. Otherwise, carry on as normal.
9 ?"{clear}end of game{down}{down}{green}your points are:";p;"{down}{down}{yellow}press key":pO239,0:gEkEa$:gO0
Spiel zu Ende, Anzeige der Punktzahl. Wiederholen mit beliebiger Taste.
Game over, score displayed. Repeat with any key.
Download
Install instructions
Start program
--------------
Wie Lade ich das Spiel
Tape: type LOAD"b breakout" and press Return
Disk: type Dload"b breakout"and press Return
Emulator: Select File b breakout.prg
anschließend RUN eintippen
English
=======
how to load B Breakout
Tape: type LOAD"b breakout" and press Return
Disk: type Dload"b breakout"and press Return
Emulator: Select File b breakout.prg
and type RUN and press Return
Leave a comment
Log in with itch.io to leave a comment.