Input/Output Console löschen und Eingaben in Echtzeit

huiz

Neues Mitglied
Hallo,
wir sollen einen stark vereinfachten Pacman-Klon programmieren, dessen GUI in der Console mittels Ascii-Zeichen realisiert ist. Unserem Dozenten würde es genügen, für die Steuerungs-Eingaben die Klasse Scanner zu benutzen, d.h. dass das Spielfeld nach jeder Eingabe neu gezeichnet werden muss (Ich hoffe ihr versteht was ich meine). So weit kein Problem. Ich habe mich aber gefragt, ob man das auch so programmieren kann, dass das Spiel in Echtzeit läuft, so dass eben nicht jedes Mal das Spielfeld neu gezeichnet werden muss. Dazu müsste man doch entweder die Console löschen, oder den bereits in die Console geschriebenen Inhalt verändern können. Wie ginge das in Java? Außerdem kann die Eingabe dann logischerweise auch nicht mehr mittels der Klasse Scanner realisiert werden, sondern muss irgendwie in Echtzeit erfolgen. Was wäre hier sinnvoll zu verwenden?

MFG, huiz
 
Java bietet hierzu keine vorgefertigten Möglichkeiten. Vielleicht geht es mit einer Anbindung an eine externe Bibliothek (nCurses?), aber das ist plattformabhängig und für deine Zwecke vermutlich übertrieben. Das Löschen der Konsole ließe sich über entsprechende Ausgaben vielleicht noch hinbekommen (es gibt spezielle Kommandos dafür, die man als String ausgibt), aber die Eingabe in Echtzeit wäre auf jeden Fall nicht ohne externen Code zu schaffen.
 
Charva

Zwar noch nicht probiert, aber ist meiner Meinung nach einen Blick wert.

Eingabe in "Echtzeit", also das Programm reagiert wenn eine Taste gedrückt wird, geht wohl über einen normalen KeyListener.
 
sorry .. aber KeyListener und console / terminal ?

ganz erlich : DAS will ich sehen ...

ich denke was hier gemeint ist das die eingabe erkannt wird ohne das diese die console beeinflusst

in C und Perl geht sowas *schon oft gesehen ... ist auch das selbe was z.B. ein SSH-client macht *z.B. Putty** ...

aber in Java ?

man müsste alle steuerbefehle kennen und auch echt ne menge loops laufen lassen ... und ob das ohne externen code geht ? mit sicherheit ... aber definitiv NICHT plattformunabhängig ... da jede console / terminal eigene steuerzeichen hat ...
 

Zurück
Oben