ColorFusion (Commodore 64) by Metzelwurst
A downloadable game
ColorFusion (C64) by Sönke Schultz (Metzelwurst)
Retro-Game for the BASIC 10Liner Contest 2024
Author: Sönke Schultz (Metzelwurst)
Platform: C64
Language: Commodore BASIC V2
Category: PUR-120
(read the "ReadMe-ColorFusion.pdf" for more Information)
### Control / Steuerung ###############
[1] MOVE BLOCK TO THE LEFT (nach links schieben)
[2] ROTATE BLOCK/COLORS (Farben rotieren)
[3] MOVE BLOCK TO THE RIGHT (nach rechts schieben)
### Description #######################
There are 3 balls of different colors on top of each other in a block.
Move them and try to stack balls of the same color on top of each other, then the balls of the same color will melt together.
The color fusion will begin!
However, only the colors merge from top to bottom, that's all I managed in 10 lines of code.
--german--
In einem Block liegen 3 verschiedenfarbige Kugeln übereinander.
Verschiebe sie und versuche, Kugeln der gleichen Farbe übereinander zu stapeln, dann werden die Kugeln mit der gleichen Farbe miteinander verschmelzen und verschwinden.
Die verrückte Farbverschmelzung wird beginnen :-)
Jedoch verschmelzen nur die Farben von oben nach unten, mehr habe ich in 10 Zeilen Code nicht geschafft.
### LINES OVERVIEW ####################
1 INITIALIZE GAME, INIT VARIABLS, DRAW BORDER
2 START NEW BLOCK OR NEXT LEVEL
3 INIT NEW BLOCK WITH NEW COLORS, CHECK IF THE GAME IS OVER
4 DRAW BLOCK (PUT COLORS AND BALLS), WAIT A BIT
5 CHECK, IF THE BLOCK TOUCH OTHER BALLS BELOW
6 COLOR FUSION? MELTING BLOCK/COLORS DOWN
7 INCREASE SCORE, DELETING LAST BALL OF FUSION
8 CLEAR BLOCK, READ KEYBOARD, KEY 1 LEFT AND 3 RIGHT
9 KEY 2, ROTATE COLORS
10 WRITE INFO, LEVEL AND SCORE, MOVE BLOCK DOWN OR LEVEL UP
### BASIC code (small) see also file "ColorFusion-Image-Code.png" ###
1 ?"{CLR}":L=0:O=1:W=0:POKE53281,0:FORC=1TO15:D=1184+C*40:POKED,102:POKED+10,102:NEXTC:FORC=1TO10:POKE1184+C+15*40,102:NEXTC 2 A=1229:T=0:N=40:M=80:IF(O=1)THEN B=54272: L=L+1: O=0: U=0: F=2+L:IF(F>15)THEN F=15 3 H=INT(RND(1)*F)+2: I=INT(RND(1)*F)+2: J=INT(RND(1)*F)+2: V=0: P=PEEK(A+40): IF(P<>32)THEN ?"GAME OVER{GREY 3}":WAIT198,1:RUN 4 POKEB+A,H:POKEB+A-40,I:POKEB+A-80,J:POKEA,81:POKEA-N,81:POKEA-M,81:X=16:Q=PEEK(A):IF(L<15)THEN FORC=1TO150-L*10:NEXTC 5 S=PEEK(B+A):S=S-INT(S/X)*X:A=A+40:P=PEEK(A):R=PEEK(B+A):R=R-INT(R/X)*X:G=0:Y=PEEK(B+A-80):IF(P=QANDR=S)THENG=1:T=1:V=1 6 Y=Y-INT(Y/X)*X:Z=PEEK(B+A-120):Z=Z-INT(Z/X)*X:IF(V=1ANDY=S)THENV=2:N=0:M=40:H=I:I=J:J=0:IF(Z=S)THENV=3:M=0:G=2:H=I:I=0 7 U=U+V: W=W+V: IF(P<>32ANDG=0)THEN ON-(T=0) GOTO2: POKEB+A-40,I: POKEB+A-80,J: POKEA-80-M,32: POKEA-40-M,32: GOTO2 8 POKE A-120,32: POKE A-80,32: POKE A-40,32: E=0: GETA$: IF((A$="1"ORA$="3")AND G=0)THEN E=-1: IF(A$="3")THEN E=1 9 P=PEEK(A+E): IF(P=32OR(A$="2"))THEN A=A+E: IF((A$="2")ANDG=0)THEN K=H: H=I: I=J: J=K 10 POKE781,0:POKE782,0:SYS65520:?"{GREY 3}PRESS 1=L 2=ROTATE 3=R":?"{YELLOW}LEVEL"L:?"{YELLOW}SCORE"W*10:O=1:ON-(U>30*LANDG=0)GOTO2:O=0:GOTO4
### VARIABLES #########################
A POSITION OF BLOCK
B REMEMBER ADRESS FOR POS
C COUNTING VARIABLE
D FOR DRAWING BORDER
E FOR MOVING LEFT -1 OR RIGHT 1
F NUMBER OF DIFFERENT COLORS
G =1 MELTING DOWN
H COLOR BLOCK C (FIRST TOP)
I COLOR BLOCK B (SECOND MIDDL)
J COLOR BLOCK A (THIRD BOTTOM)
K FOR ROTATE/SWITCH COLORS
L LEVEL
M FOR BLOCK C, WHEN BLOCK IS SMALER
N FOR BLOCK B, WHEN BLOCK IS SMALER
O =1 LEVEL UP
P COMPARE CHAR (IS CIRCLE?)
Q COMPARE CHAR (IS CIRCLE?)
R COMPARE COLORS (SAME COLOR?)
S COMPARE COLORS (SAME COLOR?)
T =1 START MELTING, COLOR FUSION
U LEVEL SCORE
V ROUND SCORE
W TOTAL SCORE
X REMEMBER A NUMBER
Y GET MIDDLE COLOR OF BLOCK
Z GET FIRST COLOR OF BLOCK, TOP
### BASIC code (long version) #########
See PDF or file "colorfusion-description.bas"
### about the developer ###############
Hello, I am Sönke from Flensburg (Germany), born near Hamburg (1978). My mother bought a Comodore64 at the end of the 80s. I made my first code experiences when I was 10 years old.
And sometimes, if time (and kids) permit, i connect the c64 on TV :-)
This is my second game, first test was last year 2023 "snake-star"
### Kurz über mich (den Entwickler) ###
Hallo, ich bin Sönke aus Flensburg (Deutschland), geboren in der Nähe von Hamburg (1978). Meine Mutter hat sich Ende der 80er Jahre einen Comodore64 gekauft. Meine ersten Code Erfahrungen habe ich mit 10 Jahren gemacht.
Und manchmal, wenn die Zeit (und Kinder) das zulassen, wird der C64 am Fernseher angeschlossen. Der lüppt nämlich noch wie eine 1 :-)
Dieses ist mein zweites 10-liner-Game. Letztes Jahr habe ich ein Snake-Spiel entwickelt. Sucht nach Snake-Star im Jahr 2023.
Status | Released |
Rating | Rated 5.0 out of 5 stars (1 total ratings) |
Author | BASIC 10Liner |
Genre | Puzzle |
Tags | 10liner, basic, Commodore 64 |
Download
Install instructions
### Start game #######################
Start the vice emulator (or other), select "file" -> "smart attach disk/tape"
Choose file "colorfusion.d64"
LOAD "COLORFUSION",8,1
RUN
Comments
Log in with itch.io to leave a comment.
This one is a lot of fun, and an interesting idea! Nicely done!
Thank you very much, I also had fun making it :-)