Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: QB ja countdown

hexa [03.11.2002 19:07:07]

#

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

Antti Laaksonen [03.11.2002 19:17:47]

#

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

snakari [04.11.2002 19:07:07]

#

tai ehkä

alku = TIMER
DO
nyt = TIMER - alku
LOCATE 1, 1: PRINT int(nyt)
LOOP UNTIL nyt = 30

Dj Wolf [05.11.2002 10:38:06]

#

näin: ?

FOR i=30 TO 1 STEP -1
PRINT i
SLEEP 1
NEXT

snakari [07.11.2002 17:55:10]

#

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

Gwaur [10.11.2002 22:48:35]

#

snakari, se SLEEP on tehty käytettäväksi. Turhaa se on nurkassa pölyyntymässä jos se on keksitty :P

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta