Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge

good old QBASIC

Steffen6 / 4 Antworten / Baumansicht Nickles

hallo,

ich hab ein problem mit QuickBasic. ich habe eine reihe von befehlen in einem packet. dieses packet soll der rechner mehrmals gleichzeitig abarbeiten. welchen befehl muß ich verwenden?

vielen dank im vorraus
mfg
steffen

bei Antwort benachrichtigen
REPI Steffen6 „good old QBASIC“
Optionen

z.B. eine Schleife !
ein paar mehr Infos wären hilfreich !

repi

Es empfiehlt sich immer, etwas Linux im Hause zu haben.
bei Antwort benachrichtigen
Steffen6 Nachtrag zu: „good old QBASIC“
Optionen

ok. also, hier mein quelltext:

screen 7
RANDOMIZE TIMER
spalte% = INT(RND * 40)
zeichen% = INT(RND * 93) + 33
zeit2% = INT(RND * 2)
zeile% = 1
zeit% = 1
SLEEP zeit2%
LOCATE zeile%, spalte%
COLOR 10
PRINT CHR$(zeichen%)
SLEEP zeit%
COLOR 2
LOCATE zeile%, spalte%
PRINT CHR$(zeichen%)
COLOR 10
zeile% = zeile% + 1
LOCATE zeile%, spalte%
PRINT CHR$(zeichen%)
schleife% = 0
1 IF schleife% = 21 THEN
SLEEP zeit%
COLOR 2
LOCATE zeile%, spalte%
PRINT CHR$(zeichen%)
COLOR 8
zeile% = zeile% - 1
LOCATE zeile%, spalte%
PRINT CHR$(zeichen%)
SLEEP zeit%
COLOR 8
zeile% = zeile% + 1
LOCATE zeile%, spalte%
PRINT CHR$(zeichen%)
COLOR 0
GOTO 2
END IF
schleife% = schleife% + 1
SLEEP zeit%
COLOR 2
LOCATE zeile%, spalte%
PRINT CHR$(zeichen%)
COLOR 8
zeile% = zeile% - 1
LOCATE zeile%, spalte%
PRINT CHR$(zeichen%)
COLOR 10
zeile% = zeile% + 2
LOCATE zeile%, spalte%
PRINT CHR$(zeichen%)
GOTO 1
2 END

und diese befehle sollen gestartet werden und wärend sie laufen soll der dieses paket wieder gestertet werden, so das es 2x läuft. falls dich ineressiert, was es bwirkt, es soll so ne art matrix sein, wo die buchstaben herunterfallen. die vorab version findest du unter www.SteffenPhilippi.de.vu unter download.

mfg
steffen

bei Antwort benachrichtigen
ChrisPaul Steffen6 „good old QBASIC“
Optionen

Ich würde sagen: Such Dir ne ordentliche Programmiersprache. Mit Basic kannst Du das vergessen. Wahrscheinlich wäre es irgendwie zu machen - aber nur unter wahnsinnig großem Aufwand. Das wird jeder innerhalb kürzester Zeit feststellen der sich mal QBasic angeschaut hat.

Gruß, Chris.

bei Antwort benachrichtigen
Andreas42 Steffen6 „good old QBASIC“
Optionen

Hi!

Nun, es wäre wohl am einfachsten, wenn man dein Programm mehrfach parallel ausführen könnte. Genau genommen wäre das dann Multitasking und genau dass ist der Haken.

QBASIC ist ein DOS-Tool und solche Extras wie Multitasking sind erst 10 Jahre später in Mode gekommen... ;-)
Das geht also leider mit QBASIC nicht.

Aber du kannst dein Programm natürlich so umschreiben, dass es statt (nur) einer Spalte immer gleich mehrere verwendet. Man muss also pro Zeile mehrer Spalten bearbeiten. Das ganze geht, wenn man dein Programm etwas umstellt, FOR-Schleifen und Array verwendet und auf GOTO verzichtet, eigentlich ganz einfach.

Ich hab' das mal umgesetzt:

SCREEN 7
zeit2% = INT(RND * 2)
zeile% = 1
zeit% = 1

REM Anzahl der parallel dargestellten Spalten
Zeichenanzahl = 5

REM Spalten und Zeichen bestimmen:
FOR i = 1 TO Zeichenanzahl

RANDOMIZE TIMER
spalte%(i) = INT(RND * 39) + 1
zeichen%(i) = INT(RND * 93) + 33

NEXT

REM Kopletter Durchlauf (20 Zeilen)
FOR zeile% = 1 TO 20

REM Innere Schleife für Spalten
FOR i = 1 TO Zeichenanzahl


LOCATE zeile%, spalte%(i)
COLOR 10
PRINT CHR$(zeichen%(i))

COLOR 2
LOCATE zeile%, spalte%(i)
PRINT CHR$(zeichen%(i))
COLOR 10
LOCATE zeile% + 1, spalte%(i)
PRINT CHR$(zeichen%(i))

schleife% = 0

REM Nur IF/ELSE/ENDIF keine GOTOs mehr ;-)
1 IF schleife% = 21 THEN

COLOR 2
LOCATE zeile%, spalte%(i)
PRINT CHR$(zeichen%(i))
COLOR 8
LOCATE zeile% - 1, spalte%
PRINT CHR$(zeichen%(i))
COLOR 8
LOCATE zeile%, spalte%(i)
PRINT CHR$(zeichen%(i))
COLOR 0

ELSE

COLOR 2
LOCATE zeile% + 1, spalte%(i)
PRINT CHR$(zeichen%(i))
COLOR 8
LOCATE zeile%, spalte%(i)
PRINT CHR$(zeichen%(i))
COLOR 10
LOCATE zeile% + 1, spalte%(i)
PRINT CHR$(zeichen%(i))
END IF

REM Nur hier wird gewartet
SLEEP zeit%

NEXT

NEXT

2 END

Für den Anfang dürfte das zum Experimentieren reichen. ;-)
Falls du Fragen hast dazu hast, dann melde dich.

Bis denn
Andreas

Hier steht was ueber mein altes Hard- und Softwaregedoens.
bei Antwort benachrichtigen