Skip to content

Instantly share code, notes, and snippets.

View tomaes's full-sized avatar
💭
Programming is for AIs. Let's go shopping.

tomaes

💭
Programming is for AIs. Let's go shopping.
View GitHub Profile
@tomaes
tomaes / c64romandkernal.bas
Last active April 22, 2019 12:51
A tiny program (with some fancy output) to detect a (classic) C64 OS/KERNAL and its version (well, v3 only, but hey...). Works on all(?) 8bit CBM machines.
0 c=-(peek(58504)=54): poke1024,.: k=-((peek(55296)and15)=14)
1 print"c64:"chr$(16*c+99),"kernal v3:"chr$(16*k+99)
@tomaes
tomaes / minesonar.bas
Created April 26, 2019 07:53
Another micro game (\o/): uncover a mine as quickly as possible. Enter coordinates, get the distance back. (c64/vic20 et al.)
0 x=int(rnd(1)*9):y=int(rnd(1)*9):print"where is the mine? enter x,y coords"
1 r=r+1:inputa,b:d=sqr(((x-a)*(x-a))+((y-b)*(y-b))):print"dist:"d:ifd>.1then1
5 print "done in"r"rounds!":ifr<4thenprint"wow!"
@tomaes
tomaes / minesonar.lua
Last active May 9, 2019 13:14
the same minesonar.bas micro game in LUA
-- minesonar.bas in Lua (aka first Lua test, v2)
r, x, y = 0, math.random(8), math.random(8)
print "There is a mine hidden in an 8x8 field"
repeat
r = r + 1
@tomaes
tomaes / sumofparts.bas
Created May 2, 2019 09:42
Miniature Edutainment Game in GW-BASIC. A minor tribute to the first programming language I came in contact with. Back when Pangea was still a thing. ;)
110 REM the sum of parts. GW-Basic edition
120 A$ = ""
125 RANDOMIZE TIMER
130 FOR I=0 TO 19
140 N% = INT(RND(1)*10)
150 S% = S% + N%
160 A$ = A$ + CHR$(48+N%) + "+"
170 NEXT
180 A$ = LEFT$(A$,LEN(A$)-1) + "="
190 CLS: LOCATE 12,1: PRINT A$
@tomaes
tomaes / whatsmore.bas
Last active May 9, 2019 13:14
Started as a qb.js experiment, but it so happens that qb.js is a very limited implementation of QBasic. Had to go back to the real thing.
' What's more? (v1.1)
' a quick guesstimation game in QBASIC
' (slightly extended version, won't run in qb.js)
DIM c%(2): cont% = 1: r% = 0: bchar% = 97 '97 = a,b / 48 = 0,1
CLS
RANDOMIZE TIMER
t = TIMER
@tomaes
tomaes / whatsmore.rb
Last active May 22, 2019 07:21
Emoji-enhanced Ruby version of whatsmore.bas
# What's more?
# a quick guesstimation game
# (Emoji-enhanced Ruby version)
require 'time'
cont = true
r = 0
t = Time.now.to_f
@tomaes
tomaes / colorconfusion.bas
Last active May 21, 2019 12:59
The Commodore Plus/4 supports 121 colors. Let's use 3 of them for a micro game. Quickly press the first letter of the color shown (not the color word displayed)
10 vol 5
12 s=999: r=0
20 a$(0)="black": a(0)=1
22 a$(1)="grey ": a(1)=2
24 a$(2)="red ": a(2)=3
30 r=r+1
32 c=int(rnd(1)*3)
33 d=int(rnd(1)*3)
35 color1,a(d),5: printa$(c);
38 n=0: e=0
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
@tomaes
tomaes / digitreaction.bas
Created May 20, 2019 15:47
Another tiny game; this time in IchigoJam BASIC. Press the right key, don't press the wrong key. Hurry to make it to 1k points.
1 'digit reaction
10 CLV
20 R=0
22 X=RND(28)
23 C=RND(9)+48
30 LC X,23: ?CHR$(C)
33 R=R+1: S=S-R
40 K=INKEY(): IF K=0 GOTO 30
50 IF K<>C S=S-200: LC X,23: ?"NOPE!": GOTO 30
60 S=S+150: ?"SCORE:";S
@tomaes
tomaes / wm-ichigo.bas
Last active May 23, 2019 09:42
What's more? IchigoJam version.
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