Das Deutsche Casio-Taschenrechner Forum wurde zum 31.12.2013 geschlossen und kann weiterhin als Nachschlagewerk verwendet werden.
Wer mehr erfahren möchte: Ein sehr guter Beitrag von Elias

Textzeile die automatisch "mitscrollt"

Ideen sammeln, umsetzen, Fehler ausmerzen, Tipps holen und geben, Fragen stellen, Programmierprobleme lösen...

Textzeile die automatisch "mitscrollt"

Beitragvon qqojnm » Mi 12. Nov 2008, 23:50

Hi,

Ich versuche mich seit langem wieder der Casiobasic-Programmierung. Habe vor ein paar Jahren schonmal damit angefangen und auch recht komplexe Programme wie z.B. ein Malprogramm oder diverse Spiele programmiert.

Bin seit kurzem wieder auf den Programmier-tick gekommen und versuche mich jetzt wieder einzuarbeiten mit einem Zahlenraten-Spiel.
Die Roh-Version, also wo es wirklich nur um das Raten selbst ging war in fünf Minuten fertig, stellte also kein Problem dar.

Deswegen will ich jetzt die Funktionen nach und nach erweitern und das Programm auch ansehnlicher machen.

Das ganze läuft derzeit noch im Textmodus und wird da wahrscheinlich erstmal auch bleiben.
Wenn man über das Menu zum eigentlichen Spiel navigiert erscheint in der ersten Zeile sowas wie "--- Zahlenraten 2.0 ---" mittels dem Locate-Befehl.

Das, was der Spieler nach und nach angezeigt bekommt (also sowas wie "Zahl?" oder "Die gesuchte Zahl ist größer") gebe ich mittels den Anführungsstrichen aus, also "Beispiel".

Mein Ziel ist es nun, diese Ausgaben eine Ebene tiefer als das "Zahlenraten 2.0" in der ersten Zeile zu bekommen, zumindest das es für den Anwender so aussieht.
Die erste Zeile bleibt also immer gleich und wird nicht nach oben verschoben wie die restlichen Ausgaben mit "".

Der Block beginnt mit folgendem Code:
[CODE]" ";
Locate 1,1,"--- ZAHLENRATEN 2.0 ---";
"GENERIERE ZUFALLS-":"ZAHL VON 1":"BIS 100...";
--anweisungen--
"->FERTIG";
"VERSUCHE ZURUECK-":"SETZEN...";
--anweisungen--
"->FERTIG";
Locate 1,1,"---ZAHLENRATEN 2.0---";
Lbl 2;
"Zahl";
Locate 1,1,"---ZAHLENRATEN 2.0---";[/code]
; stellt das Zeichen am Ende einer Zeile dar.

Der Text am Anfang kommt immer wenn man das Spiel startet und da erst ab dem zweiten ->FERTIG rollen die Textzeilen nach oben, ab da gebe ich wie man sehen kann nach jeder Zeile den Locate Befehl aus.

Das hat ein paar Nachteile:
Für den Moment, wo der Text in den "" ausgegeben wird, ist alles schon eine Zeile hochgerutscht und die erste Zeile somit weg, wenn der neue Text nur kurz ist, dann nimmt man es eher nur als kurzes Blinken wahr.
Das ist ansich noch OK.

Aber sobald der Anwender die Zahl eingeben soll, gibt es ein größeres Problem. Normal macht man sowas ja mit dem Fragezeichen, allerdings ist dann für die Zeit, für die das Fragezeichen dort steht die erste Zeile weg..

Man könnte das allerdings mit eine Getkey-Schleife machen. Ich habe mir dazu nicht nähere Gedanken gemacht, aber es müsste möglich sein. Das einzige Problem hierbei ist denke ich nur die Komplexibilität, ob es nicht auch einfacher geht.

Das wäre auch meine abschließende Frage: Gibt es möglichkeiten soetwas einfacher zu gestalten?
Also ohne dieses ständige einfügen des Locate-Befehls.

Wem jetzt all mein Gefasel nichts sagt, also wer dasteht und sich fragt "Was will der jetzt erreichen?"
> Beim Editieren von den Programmen ist die oberste Zeile immer "======<programmname>======", egal wie man scrollt. Sowas will ich in meinem Programm auch erreichen, also im Run-Modus..

Was mir gerade einfiel.. geht das mit Farben? Da gibts ja sozusagen Ebenen, Grün ist unten, Blau in der Mitte und Orange sozusagen die oberste Ebene. Zumindest in der grafischen Darstellung.. wie das bei Textausgaben ist, weiß ich nicht.

Noch ein paar Worte zum Schluss:
Mir geht es nicht darum, Zahlenraten zu programmieren. Das Spiel dient nur als Austob-Plattform auf der ich solche Dinge wie eben dieses hier austesten oder erproben kann..
Also so Kommentare wie "lass es doch einfach weg, es ist nicht oder nur schwer realisierbar" nützen mir nichts (;

Trotzdem schonmal Danke im Vorraus :>

Grüße,
qqojnm
qqojnm
 

Re: Textzeile die automatisch "mitscrollt"

Beitragvon gast » Sa 15. Nov 2008, 13:29

Gib doch den Text einfach mit Locate aus (du kannst hier eine Indexvariable I verwenden um herauszufinden in welcher Zeile gerade Text ausgegeben wird und dann einfach mit I<7=>I+1->I erhöhen) und verschiebe danach mit " " alles eine Zeile nach oben. Jetzt wieder "--- ZAHLENRATEN 2.0 ---" in der ersten Zeile ausgeben und fertig.

Somit sollte die erste Zeile bei langen Texten nicht einige Zeit leer bleiben und bei der ?-Geschichte machst du es einfach so:

[code]
"A"
" "
" "
" "
"B"
?->Z
Locate 1,3,"A"
?->Z
[/code]
gast
 

Re: Textzeile die automatisch "mitscrollt"

Beitragvon gast » Sa 15. Nov 2008, 13:34

Zitat:Das wäre auch meine abschließende Frage: Gibt es möglichkeiten soetwas einfacher zu gestalten?
Also ohne dieses ständige einfügen des Locate-Befehls.


Schleife ?
gast
 


Zurück zu Graphikrechner (CFX 9850 G/GB/GC; FX 9860 G/ GSD; FX 9750G; FX 7400G) ohne CAS

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 8 Gäste