^4DIE FRAGE/ANTWORTEN-RUBRIK ^4Wer Fragen hat, kein Problem: Schickt sie einfach an die Hugi-Redaktion, und ^4wir ver”ffentlichen sie in dieser Rubrik! Ihr k”nnt auch auf Fragen, die im ^4Hugi gestellt wurden, antworten - so etwa wie im PC-Heimwerker. Los geht's! ^2ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Rubrik-Wegweiser Fragen: 04-02-01 Wie sage ich's meinem Proggi? LeidPen 04-02-02 Wer verkauft mir PowerBasic? Muffin 04-02-03 WAV/MIDI-Player fr QBasic gesucht The Execuetor Rubrik-Wegweiser Antworten: 04-03-01 Spieleprogrammierung The Real Adok 04-03-02 Sortierroutinen Bcherwurm ^2ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ^3 HUGi-LESER FRAGEN ^2ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ^1 LeidPen Wie sage ich's meinem Proggi? ----------------------------- Wer hat eine L”sung fr folgendes Problem: Bekanntlich (oder auch nicht!) kann man beim Aufruf eines Programms dieses mit dem Umleitungszeichen < dazu bewegen, seine Eingaben nicht von der Tastatur, sondern aus einer Datei zu lesen, z.B. um Voreinstellungen aus der Datei abzu- rufen oder aus dem Programm eine Demo zu machen. Die Sache hat leider folgendes H„kchen: "Einmal Datei - immer Datei!", d.h. es ist nicht zul„ssig, die Eingabedatei an einer beliebigen Stelle enden zu las- sen, um die weiteren Eingaben von der Tastatur anzufordern. Werden noch Einga- ben ben”tigt, welche nicht in der Datei stehen, so ist der Absturz sicher. Wie kann ich w„hrend des Programmlaufs an einer bestimmten Stelle die Eingabe von Datei auf Taste umschalten? Also sprach LeidPen. ^2ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ^1 Muffin Hallo, Jetzt habe ich mal eine ganz einfache Frage: Woher kann ich noch PowerBasic 2.10 bekommen? Ich habe mal das Einsteigerseminar PB mit PB 2.10 bestellt, aber es ist leider vergriffen! <8-( ! Hat vielleicht einer von Euch diese geile Programmiersprache und kann sie mir verkaufen? Oder gibt es eine gute SW-Version, die einer weitergibt? Die Hauptsache ist nur, daá man compilen kann! Ich habe aber auch geh”rt, daá QuickBasic einen besseren Compiler inne hat! Hat einer eine Voll- oder SW-Version? Wenn einer QuickBasic oder PB gnstig verkauft oder eine SW/FW/PD-Version weitergibt, kann er sich bei mir melden. Hier meine Addi: Muffin Haiko Schultz Wilhelm-Mellies-Str.10 32758 Detmold Bis bald, Eure Torte, Muffin. ^0>> The Real Adok: Mir ist kein guter SW/FW/PD-Basic-Compiler bekannt. Schau' ^0 mal in die KUT-List oder in den CF, vielleicht verkauft dort jemand PB. ^2ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ^1 The Execuetor Ich suche ein Programm, mit dem man WAV- und MIDI-Dateien abspielen kann, um sie in ein Basic-Programm einzubinden. Danke! ^2ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ^3 HUGi-LESER ANTWORTEN ^2ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ^1 The Real Adok (Zu Karma Sutra's Fragen zur Spieleprogrammierung aus Hugi #3): Hallo Karma Sutra! 1. Grafik-Modus: Das kommt natrlich ganz darauf an, was Dir am liebsten ist. Ich gehe mal die einzelnen Bildschirmmodi durch: Screen 13 wird von vielen Adventure-Klassikern benutzt, z.B. Monkey Island. Du hast recht, die Aufl”sung ist ziemlich grob! Dafr hast Du 256 Farben, kannst die Bilder also sehr sch”n bunt gestalten. Ebenso ModeX: Auch hier hast Du 256 Farben und eine relativ geringe Auf- l”sung. Der Vorteil von ModeX ist, daá Du entweder zwei (bei 320x400) oder vier (bei 320x200) Bildschirmseiten zur Verfgung hast. Damit l„át sich eine flieáende Animation erm”glichen. Dafr ist der ModeX nicht gerade ein- fach handzuhaben. Last but not least good old Screen 12. Der Vorteil hier besteht darin, daá Du eine hohe Aufl”sung hast. Somit k”nnen viele Details im Bild unter- gebracht werden, und die Schrift sieht nicht so h„álich aus. Die 16 Farben sind bloá ein biáchen wenig, doch wenn es Dir nicht so auf bunte Bilder an- kommt, bist du mit Screen 12 gut beraten. Super-sachlich ausgedrckt!? Naja, letztendlich kommt es darauf an, was fr dich am wichtigsten ist: Farbanzahl, Bildschirmseiten oder Aufl”sung. 2. Bilder-Format: Hm, wenn du die Bilder mit dem GWS zu EXE-Dateien umwan- delst, ist es egal, ob Du PCX oder BMP verwendest. Dann, wenn Du eine eigene Bildbetrachtungsroutine fr BMP, PCX und Co. programmieren willst, wrde ich PCX vorziehen. Es verbraucht n„mlich viel weniger Speicherplatz als BMP. Das RAW-Format finde ich sehr gut, weil man es direkt mit Befehlen wie BLOAD in den Bildschirmspeicher laden kann, ohne extra einen Viewer schreiben zu mssen! 3. Bilder auf Papier zeichnen und dann einscannen: Funktioniert nach meinen bisherigen Erfahrungen problemlos! Am besten ist es, das Bild schwarz-weiá zu zeichnen und am Compi 'nachzucolorieren'. 4. Hm... das ist theoretisch leicht gesagt: den Hintergrund mit GET und PUT absaven usw. Ich werde mal schauen, ob ich sowas coden kann. 5. Naja, in QBasic sind GET und PUT die einzigen M”glichkeiten, Sprites zu bewegen, wenn man mal davon absieht, daá man auch neue Routinen selbst entwickeln kann. Ein Animationsprogramm, das Abspielroutinen fr QBasic enth„lt, habe ich von ein paar eher einfacheren Proggys noch nicht entdeckt. Adok. ^2ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ^1 Bcherwurm ^0>> The Real Adok: Hallo Freunde! Kennt jemand eine m”glichst schnelle Routine, ^0 mit der man z.B. Dateinamen alphabetisch sortieren kann? Hi The Real Adok, QBasic/QuickBasic kann das mit meiner Funktion StringSort%. Es wird der QuickSort-Algorithmus benutzt. Du kannst eventuell als allererste Anweisung ganz am Anfang Deines Programms ^0CLEAR ,,Konstante einfgen, um fr die rekursive Sortierung mehr Stapelspeicher fr Rcksprung- adressen und lokale Variablen zu reservieren. "Konstante" ist die Gr”áe des Stapels (z.B. 2000 oder 4000). Bei PowerBasic klappt die Stapelverg”áerung mit folgendem Compilerbefehl: ^0$STACK Konstante Die "DECLARE"-Statements sollen angeblich unter PowerBasic auch nicht so richtig funktionieren. Der Rest ist hoffentlich kompatibel. Ich habe aber keine Ahnung, weil ich kein PowerBasic habe. Wenn du sicher bist, daá der Stapelspeicher immer reicht, kannst du zur Beschleungigung den IF-Block mit FRE(-2) und sortok% weglassen. ^0DECLARE SUB Sortieren (von%, bis%, Array$()) ^0DECLARE FUNCTION StringSort% (von%, bis%, Array$()) ^0SUB Sortieren (von%, bis%, Array$()) ^0REM Diese Prozedur darf nur StringSort% aufrufen! ^0SHARED sortok% ^0IF (FRE(-2) < 500) OR (NOT sortok%) THEN 'Stapel zu klein? ^0 sortok% = 0 'Dann Fehler... ^0 EXIT SUB '...und Ausstieg ^0END IF ^0v% = von%: b% = bis%: vergleich$ = Array$((von% + bis%) \ 2) ^0DO ^0 WHILE Array$(v%) < vergleich$: v% = v% + 1: WEND ^0 WHILE vergleich$ < Array$(b%): b% = b% - 1: WEND ^0 IF v% <= b% THEN ^0 SWAP Array$(v%), Array$(b%) ^0 v% = v% + 1 ^0 b% = b% - 1 ^0 END IF ^0LOOP UNTIL v% > b% ^0IF von% < b% THEN CALL Sortieren((von%), (b%), Array$()) ^0IF v% < bis% THEN CALL Sortieren((v%), (bis%), Array$()) ^0END SUB ^0FUNCTION StringSort% (von%, bis%, Array$()) ^0REM sortiert die Elemente Array$(von%) bis Array$(bis%) ^0REM Funktionsergebnis 0 => zu wenig Stapelspeicher ^0SHARED sortok% ^0sortok% = -1 'noch kein Fehler ^0IF (bis% - von%) < 1 THEN EXIT FUNCTION 'sonst Index-Unterlauf! ^0CALL Sortieren((von%), (bis%), Array$()) 'rekursive Sortierung ^0StringSort% = sortok% ^0END FUNCTION ^2ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ