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. RETURN
Yritä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 LOOP
tai 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.