Hallo, Ihr Coder!

Da dies ja ein Groupmag der Codergroup Cyberdream ist, will ich auch mal
was ber das Programmieren schreiben. Und zwar in der MS-DOS (ab Version
5) beigelegten Sprache QBasic (wer kennt sie nicht :) ).

Ich mchte ein Programm vorstellen, da ich neulich programmiert habe.
Es gibt Texte im Bildschirmmodus 13 farbig aus. Nun wollte ich nicht
jedes Zeichen eines Textes einzelnd anders farbig ausgeben, es kam also
nur pixelweise in Frage. Am besten gefllt es mir, wenn die einzelnen
Spalten jeweils andere Farben haben. Damit der Text dann aber nicht
zusammengewrfelt aussieht, muten die Farben so gewhlt werden, da sie
auch zueinander paten. Am leichtesten erfhrt man das mit diesem
kleinen Programm:

SCREEN 13
FOR farbe = 0 TO 255
COLOR farbe
PRINT farbe
NEXT

Nach dem Start werden einem dann die Farbnummern in ihren Bildschirm-
farben angezeigt. Nun mu der Farbwert der ersten Spalte gewhlt werden,
der jeweils nach 8 Spalten wieder aktiviert wird, da im Modus 13 jeder
Buchstabe eine Breite von 8 Pixeln hat. Dieser Wert wird in der
Variablen Farbe2% gespeichert. Die Farbnummer des Originals ist in der
Variablen Farbe% gespeichert.

Zunchst einmal wird der Originaltext ausgegeben. Er ist in der
Variablen Text$ gespeichert. Danach werden die Koordinaten des ersten
Pixels, der untersucht werden soll, gewhlt, ebenso wie die Koordinaten
des letzten Pixels. Die Y-Koordinate des ersten und des letzten Pixels
in einer Pixelspalte werden dann in eine FOR...NEXT-Schleife einge-
bunden, da ja jeder Pixel einer Spalte kopiert werden soll, danach
werden die X-Anfangs- und EndKoordinaten einer Pixelzeile in eine
FOR...NEXT-Schleife eingebunden, weil ja auch jeder Pixel einer Zeile
kopiert werden soll.

Nun werden die einzelnen Pixel nach 100 Pixeln weiter unten in einer
anderen Farbe kopiert. Ich denke, den Rest versteht Ihr auch ohne meine
Kommentare.

Hier also das Programm:


SCREEN 13			    'Bildschirmmodus 13 (VGA/256 Farben)
INPUT "Farbattribut: ", Farbe%	    'Farbe des Originals whlen (1-255)
Farbe2% = 31			    'Anfangsfarbe der Kopie
CLS
COLOR Farbe%			    'gewhlte Farbe einschalten
Text$ = "Willkommen auf M*A*R*S!!!"
LOCATE , 20 - LEN(Text$) / 2	    'Fr zentrierte Textausgabe
PRINT Text$			    'Text schreiben   
FOR x% = 0 TO 319		    'x%=Spaltenvariable von 0 bis 319
Farbe2% = Farbe2% + 1		    'Farbe der Spalte um 1 erhhen
IF Farbe2% = 39 THEN Farbe2% = 31   'Falls Farbe dann zu hoch, dann
				    '   wieder herunterschalten
 FOR y% = 0 TO 15		    'y%-Koordinate der Zeile
  punkt% = POINT(x%, y%)	    'Pixel-Farbe ermitteln   
  IF punkt% = Farbe% THEN	    'Falls Pixelfarbe=gewhlter Farbe,
   PSET (x%, y% + 100), Farbe2%     '   dann Pixel weiter unten in neuer
				    '   Farbe setzen
  END IF
 NEXT y%
NEXT x%
SLEEP
CLS


Ihr braucht das Programm nicht abschreiben, es liegt M*A*R*S auch im
*.BAS-Format bei. Bei Fragen, Verbesserungsvorschlgen und so weiter,
und so weiter, knnt Ihr mir ja im nchsten M*A*R*S berichten :) !


Viel Spa noch,

        Muffin/Cyberdream!