Skip to content

Instantly share code, notes, and snippets.

💭
Programming is for AIs. Let's go shopping.

tomaes

💭
Programming is for AIs. Let's go shopping.
  • Germany
Block or report user

Report or block tomaes

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@tomaes
tomaes / raster-fari
Created Mar 22, 2014
16 bytes for a fairly nice looking (and flicker free) static raster effect (c64)
View raster-fari
* = $7c ; zeropage boot-up (for VICE)
sei ; no interupts, no flickering
sty $d011 ; background frame is now everywhere
cpy $d012 ; wait for next raster line
bne *-3 ;
sty $d020 ; set fullscreen color
iny ; wait 2 lines (looks best)
iny ;
bvc *-10 ; loop quickly
@tomaes
tomaes / noshowdieface.rb
Last active May 31, 2019
Spot the missing die face as quickly as possible. Micro game in Ruby.
View noshowdieface.rb
# No-Show Die Face, a micro game in Ruby
r = 0
e = false
s = Time.now.to_f
begin
# die faces 1 to 6
n = { 1 => "\u2680",
@tomaes
tomaes / blocktumble.txt
Last active May 30, 2019
a few notes on block tumble!
View blocktumble.txt
"Block Tumble!" is a humble Commodore 64 puzzle game from 1991 in 2KBytes; it features 56(!) levels.
Here are some random notes I took while poking around in memory...
observations:
- the level encoding is fixed: 18 Bytes x 56 = 1008 Bytes
- the level data starts at 0BF9 (in memory), or at 03FA (file offset)
- a better, flexible encoding of the level data should take around ~870 Bytes
(assuming a not-too-crowded field in most levels and on average at least 8 wall stones)
(also: discussing level encoding should be a separate post, as there are MANY options :))
@tomaes
tomaes / heartcash2.bas
Last active May 25, 2019
IchigoJam mini game; collect coins and hearts in equal amounts and leave when you have enough of both.
View heartcash2.bas
5 'heartcash II
10 CLS
12 Y=0: M=20: H=20: P=229
14 C=245: D=C-P: O=320: L=O/32
16 LC 0,L-1: ? CHR$(226);" exit::::::::::::::::::::::::"
18 LC 0,L+2: ? CHR$(227);" exit::::::::::::::::::::::::"
20 IF RND(8) POKE#91E+O+32*RND(2),P+RND(2)*D
30 COPY #900+O,#901+O,31: COPY #920+O,#921+O,31
50 Y=Y-BTN(UP)+BTN(DOWN)
51 IF M M=M-1
@tomaes
tomaes / minesonar_enhanced.bas
Created May 23, 2019
Minesonar, enhanced. IchigoJam edition. With a fancy title header.
View minesonar_enhanced.bas
10 ' minesonar enhanced, IchigoJam Edition
20 CLS: CLT
30 LET R, 0
32 LET X, RND(8)+1
34 LET Y, RND(8)+1
35 :
38 ? ".";CHR$(251);: ? " Mine Sonar,IchigoJam edition"
39 ? CHR$(154);: FOR I=1 TO 28: ? CHR$(176);: NEXT: ? "*"; CHR$(244)
40 ?: ? "There is a (possibly moving)"
42 ? "hidden mine in an 8x8 field!"
@tomaes
tomaes / wm-ichigo.bas
Last active May 23, 2019
What's more? IchigoJam version.
View wm-ichigo.bas
1 ' What's more? in ICHIGO JAM BASIC
10 S = 6: Z = 1: R = 0
12 Q = RND(4)
20 IF Q = 0 B=225
22 IF Q = 1 B=228
23 IF Q = 2 B=236
24 IF Q = 3 B=250
30 CLT
40 :
50 CLS
@tomaes
tomaes / whatsmore.rb
Last active May 22, 2019
Emoji-enhanced Ruby version of whatsmore.bas
View whatsmore.rb
# What's more?
# a quick guesstimation game
# (Emoji-enhanced Ruby version)
require 'time'
cont = true
r = 0
t = Time.now.to_f
@tomaes
tomaes / run.bas
Created May 22, 2019
Avoid bricks flying your way. Mini game in IchigoJam BASIC.
View run.bas
10 'ラン | IchigoJam BASIC
12 CLS
13 CLT
14 Y=12
20 LC 4,Y
22 ?CHR$(251)
26 LC 28,RND(23)
28 ?CHR$(6);CHR$(6);CHR$(6)
30 SCROLL 3
33 Y=Y-BTN(UP)+BTN(DOWN)
@tomaes
tomaes / hrhr
Created Mar 19, 2014
An unlikely, but perfectly valid Commodore Basic program. :) (this works, because any non-literal (or even emptiness) after "go to" = 0 and "go to" is an alternative version of "goto", that no one ever used.)
View hrhr
0 GO TO INFINITY
View fluffy.bas
10 REM フワフワ GW-BASIC port /w sound
11 CLS: RANDOMIZE TIMER
12 XM=80: YM=24: X=XM/2: Y=1: OC=239: L=30
14 B=INT(RND*(XM-L*2))+L: SOUND 200,.5
15 UP=0: L=30-S/10: IF L<1 THEN L=1
16 LOCATE YM,B: PRINT CHR$(OC)
17 A$=INKEY$: X=X+(A$="a")-(A$="s")
18 IF SCREEN(Y+1,X)=OC THEN Y=Y+1: SOUND 800,1
19 IF SCREEN(Y,X)=OC THEN GOSUB 40 ELSE Y=Y+1
20 IF X<1 OR X>XM OR Y<1 OR Y>YM THEN 30
You can’t perform that action at this time.