--- Crimbo ---

Written by Sander Alsema for the 10-liner competition 2023.

Language: Commodore 64 Basic v2

Category: PUR-80

--- Description & Instructions ---

'Twas the night before Christmas... You probably know the rest by heart.

There is however a minor difference. Because the current global population

has exceeded eight billion individuals, there is no longer enough time for

personal house calls. Instead Santa lands on your roof top, crams your

presents down your chimney and is off to the next house. A delivery system

not unlike Amazon's.

In this game you experience what it is like to work in this fashion. You

are Old Saint Nick and some off-screen elf is throwing presents down

towards you while saying for whom they are intended, using initials for

privacy reasons of course. Jab each present with the right amount of force

to make it go down the correct chimney.

Out of excitement over every successful delivery you become somewhat

elevated, making it harder to deliver the next present. If you make a

mistake, the game is over. But when you have successfully delivered 16

presents, you win!

Controls:

Press 1-4 to jab, where the number indicates the amount of force with

which this is done.

--- Code Explanation ---

Line 0: Read the following text strings from elsewhere in the code:

- Santa's hand and candy cane

- Victory text

- Present being pushed

- Game Over text

- Santa himself

In a loop, construct Santa's arm and vertical orientation string.

Set background to black.

Set Santa's initial height.

Line 1: Clear the screen and display the rows of chimneys.

Set the present's initial horizontal co-ordinate.

Set a variable with the screen position to the right of the

extended candy cane.

Line 2: Randomly create an ASCII value from 'A' to 'D'.

Display for whom the current present is intended and Santa.

Set Santa's initial arm length.

Set the present's initial vertical co-ordinate.

Line 3: Display Santa's arm and candy cane and the falling present.

Line 4: If Santa's arm is extended and there is a present at the end, then

display, in a loop, the present being pushed to the position with

the specified horizontal co-ordinate.

Retract Santa's arm.

Determine the numeric value of the key pressed.

If this value is between 1 and 4, then extend Santa's arm and

specify the horizontal co-ordinate.

Line 6: Set the vertical co-ordinate of the falling present 1 position

lower.

As long as the present hasn't reached the bottom, jump to line 3.

This line also contains data for text strings.

Line 7: If the present's horizontal co-ordinate matches the one of the

correct chimney, then set Santa's vertical co-ordinate 1 position

higher.

As long as Santa hasn't reached the top, jump to line 1.

This line also contains data for text strings.

Line 8: Clear the screen and display how many presents were successfully

delivered and the game over text.

If Santa had reached the top, then also display the victory text.

Line 9: Wait for a key to be pressed.

Restart the game.

This line also contains data for a text string.

---

 Status Released Rating Rated 5.0 out of 5 stars(2 total ratings) Author BASIC 10Liner Genre Action Tags 8-Bit, basic, basic10liner, Commodore 64

Crimbo.d64 170 kB
Commentary for Crimbo.txt 4 kB

## Install instructions

I prefer VICE, but you can use any emulator that works with *.d64 files.

If you haven't installed it yet, it can be downloaded from their website.

Here's how to use it:

Click : File -> Attach disk image -> Drive 8

Select: Crimbo.d64

Click : Attach

Now, just as you would with a normal Commodore 64, you can type:

LIST                  (to view the directory or game listing)

RUN                   (to run the game)

Be aware that you are now using a virtual Commodore 64 keyboard.

Therefore the keys will differ slightly from your physical keyboard.

Use <SHIFT> '2' to display quotation marks.