Vielä muutama vuosi sitten olivat juna-asemien taulut mekaanisia, ja niiden tekstit vaihdettiin pläräämällä kaikki kirjaimet läpi. Nyttemmin taulut ovat elektronisia, mutta vanhoja muistoja verestää Juna-asematauludemo, joka matkii parhaansa mukaan vanhoja tauluja.
Pääohjelma
OPTION BASE 1
'taulukko, jossa on taulun tekstit
DIM SHARED taulu(4, 28) AS STRING * 1
'taulun nollaus
FOR i = 1 TO 4
FOR j = 1 TO 28
taulu(i, j) = " "
NEXT
NEXT
CLS
PiirraTaulu
COLOR 0, 7
VaihdaTeksti "Juna-asematauludemo ", "", "", ""
SLEEP 3
VaihdaTeksti "P 09:20", "Hiekkaharju", "Sandskulla", ""
SLEEP 3
VaihdaTeksti "K 10:43", "Kerava ", "Kervo ", ""Aliohjelmat
SUB PiirrakehysJT (x1 AS INTEGER, y1 AS INTEGER, x2 AS INTEGER, y2 AS INTEGER)
'taulun kehyksen piirtäminen
DIM tyyli AS STRING
tyyli = "╔═╗║╚╝"
COLOR 8, 15
LOCATE y1, x1: PRINT MID$(tyyli, 1, 1);
FOR i = x1 + 1 TO x2 - 1
PRINT MID$(tyyli, 2, 1);
NEXT
PRINT MID$(tyyli, 3, 1);
FOR i = y1 + 1 TO y2 - 1
LOCATE i, x1: PRINT MID$(tyyli, 4, 1);
LOCATE i, x2: PRINT MID$(tyyli, 4, 1);
NEXT
LOCATE y2, x1: PRINT MID$(tyyli, 5, 1);
FOR i = x1 + 1 TO x2 - 1
PRINT MID$(tyyli, 2, 1);
NEXT
PRINT MID$(tyyli, 6, 1);
END SUB
SUB PiirraTaulu
'taulun ja maaston piirtäminen
PiirrakehysJT 2, 2, 33, 7
LOCATE 3, 3: PRINT SPACE$(30)
LOCATE 4, 3: PRINT SPACE$(30)
LOCATE 5, 3: PRINT SPACE$(30)
LOCATE 6, 3: PRINT SPACE$(30)
COLOR 0, 12
LOCATE 1, 15: PRINT SPACE$(6)
FOR i = 8 TO 20
LOCATE i, 15: PRINT SPACE$(6)
NEXT
COLOR 0, 9
FOR i = 21 TO 23
LOCATE i, 2: PRINT SPACE$(40)
NEXT
COLOR 0, 7
LOCATE 23, 50: PRINT " "
LOCATE 23, 70: PRINT " "
END SUB
SUB VaihdaTeksti (r1$, r2$, r3$, r4$)
'taulun tekstin vaihtaminen
'r1$=rivi1, r2$=rivi2, r3$=rivi3 ja r4$=rivi4
DIM r$(1 TO 4) 'uudet rivit yhteen taulukkoon
r$(1) = LEFT$(r1$, 28)
r$(2) = LEFT$(r2$, 28)
r$(3) = LEFT$(r3$, 28)
r$(4) = LEFT$(r4$, 28)
DO
ok = 0
FOR j = 1 TO 4
FOR i = 1 TO LEN(r$(j))
SELECT CASE ASC(taulu(j, i))
CASE ASC(MID$(r$(j), i, 1))
ok = ok + 1
CASE ASC(" ")
taulu(j, i) = CHR$(33)
CASE IS >= 33
SELECT CASE ASC(taulu(j, i))
'ääkkösien tarkistaminen
CASE 132
taulu(j, i) = CHR$(142)
CASE 142
taulu(j, i) = CHR$(148)
CASE 148
taulu(j, i) = CHR$(153)
CASE 153
taulu(j, i) = " "
CASE ELSE
taulu(j, i) = CHR$(ASC(taulu(j, i)) + 1)
END SELECT
END SELECT
LOCATE 2 + j, 3 + i: PRINT taulu(j, i)
NEXT
NEXT
WAIT &H3DA, 8 'hidaste
SOUND 100, .3 'ääni
SOUND 0, .1
LOOP WHILE ok < LEN(r1$) + LEN(r2$) + LEN(r3$) + LEN(r4$) 'valmis?
END SUBihanhauska
aika hieno, nostalginen ja hauska
Cool :)
ihan hieno
Aihe on jo aika vanha, joten et voi enää vastata siihen.