Tässä on oma viritelmä jonka pitäisi laskea sekunnit 30 nollaan tulostaen joka sekunnin näytölle vanhan päälle. Homma ei toimi ja nyt tarttisin apua. Koko homman voisi varmaan toteuttaa paljon viisaammin. Sana on vapaa..
CLS
TIMER ON
FOR A = 30 TO 1 STEP -1
ON TIMER(1) GOSUB Tulostus
NEXT A
DO WHILE INKEY$ = "": LOOP
END
Tulostus:
VanhaRow = CSRLIN 'Pistä muistiin rivi
VanhaCol = POS(0) 'merkki
LOCATE 1, 1: PRINT A
LOCATE VanhaRow, VanhaCol 'Palauta row ja column.
RETURNYritäpä vaikka tällaisella ohjelmalla. r-muuttujassa määritetään, moneenko ohjelma laskee lukuja ja ohjelman voi sammuttaa kesken painamalla Esc (CHR$(27)).
DIM a AS SINGLE, k AS INTEGER, r AS INTEGER
k = 0 'mistä aloitetaan
r = 30 'mihin asti lasketaan
a = TIMER
LOCATE 1, 1: PRINT k
DO
IF TIMER - a > 1 THEN
k = k + 1
a = TIMER
LOCATE 1, 1: PRINT k
IF k = r THEN EXIT DO
END IF
IF INKEY$ = CHR$(27) THEN EXIT DO
LOOPtai ehkä
alku = TIMER DO nyt = TIMER - alku LOCATE 1, 1: PRINT int(nyt) LOOP UNTIL nyt = 30
näin: ?
FOR i=30 TO 1 STEP -1 PRINT i SLEEP 1 NEXT
wolf, toi sleep ei oo maailman järkevin komento tohon, jokuhan voi pitää esim. controllia pohjassa ja aika vaan lisääntyy.. siis 30 asti :D
snakari, se SLEEP on tehty käytettäväksi. Turhaa se on nurkassa pölyyntymässä jos se on keksitty :P
Aihe on jo aika vanha, joten et voi enää vastata siihen.