Moin moin,
Nachdem es nun wochenlang recht problemlos mit dem Programmieren geklappt hat und die Profs. und Projektleiter soweit zufrieden waren, stehe ich nun vor einem Probleme, zu dem mir nicht mal mehr ein Ansatz einfällt, auch wenn es sehr simpel klingt
Wir arbeiten derzeit an einem (kleinen, nicht spektakulärem) Programm, welches letzlich zwei Bedienmöglichkeiten bieten soll: Einmal eine Grafische, die auch soweit funktioniert und zusätzlich eine textuelle Variante (Terminal). Bedingung war: Das Programm basiert NUR auf Java, keine weitere Sprachen, keine Skripts.
An einer Stelle wird der User vor die Auswahl zwischen zwei oder mehreren Möglichkeiten gestellt. Auch die Auswahl funktioniert soweit. Nun wünscht sich unser Projektleiter jedoch eine Art "Timer" in dieser Auswahl.
Am ehesten könnte man es vergleichen mit einem Betriebssytem-Bootloader, wie man ihn vielleicht von Linux oder Windows kennt. Dieser stellt einen ja auch vor die Auswahl, welches Betriebssystem oder welche Kernel-Version mal wählt. Lässt man eine bestimmte Zeitspanne verstreichen, wählt es automatisch den markierten Eintrag.
In unserem Falle solle - so unser Projektleiter - nach Ablauf von 10s eine "default"-Variante ausgeführt werden.
Nehmen wir also folgende Situation an:
1) Man konnte an entsprechende Stelle im Programm (Terminalebene);
2) Programm fordert Nutzereingabe an; Möglich seien die Befehle ("bef0()", "bef1()", "bef2()");
3a) Nicht sinnige Eingabe führt wieder zu 2) (Iterativ, Schleifengebunden; NICHT rekursiv)
3b) Korrekte Eingabe führt entsprechenden Befehl aus;
3c) Keine Eingabe führt nach Ablauf der Zeitspanne zur automatischen Ausführung von bef0();
Sämtliche Eingagen erfolgen hierbei über das Terminal (Linux) oder die cmd.exe (Windows).
Ein Timer soll NICHT angezeigt werden; In der Textebene wird kein Hinweis auf die Restzeit gegeben.
Ist das, was unser Projektleiter (gleicher Jahrgang, wie wir - entsprechend gleicher/ähnlicher Ahnungsstand zum Thema Java) dort fordert in Java so möglich?
Wenn es möglich ist, wie kann ich das umsetzen?
Ich dachte zunächst an eine Zählerschleife.
-> scheiterte jedoch daran, dass diese Schleife auch die User-Eingabe jedes Mal neu gefordert hat und somit dem User keine Möglichkeit gegeben hat, eine Eingabe zu tätigen.
In der Folge dachte ich mehr in Richtung einer internen Warteschleife (for-Schleife mit leerem Body).
-> Eingabe wird gefordert;
-> Schleife läuft entsprechende oft durch
-> Eingabe wird eingelesen;
Probleme hierbei: Der User müsste IMMER die 10s warten, wenn danach das einlesen IRGENDWIE erzwungen werden würde. Weiterhin stünde das Bestätigen via Enter nicht mehr zur Debatte (denke ich mal?)
Ich persönlich bin GEGEN diese Lösung, da ich schon bei meinen Bootloader die Krise bekomme, wenn ich mal wieder der Meinung war, den Rechner einzuschalten und mal schnell einen Kaffee zu besorgen, nur um danach festzustellen, dass ich im falschen Betriebssystem gelandet bin. Dennoch kann ich mich ja schlecht unbegründet über die Entscheidung des Projektleiters hinwegssetzen. Folglich werde ich es auch überleben, sollte das so nicht möglich sein.
Lieben Gruß
Moch
Nachdem es nun wochenlang recht problemlos mit dem Programmieren geklappt hat und die Profs. und Projektleiter soweit zufrieden waren, stehe ich nun vor einem Probleme, zu dem mir nicht mal mehr ein Ansatz einfällt, auch wenn es sehr simpel klingt
Wir arbeiten derzeit an einem (kleinen, nicht spektakulärem) Programm, welches letzlich zwei Bedienmöglichkeiten bieten soll: Einmal eine Grafische, die auch soweit funktioniert und zusätzlich eine textuelle Variante (Terminal). Bedingung war: Das Programm basiert NUR auf Java, keine weitere Sprachen, keine Skripts.
An einer Stelle wird der User vor die Auswahl zwischen zwei oder mehreren Möglichkeiten gestellt. Auch die Auswahl funktioniert soweit. Nun wünscht sich unser Projektleiter jedoch eine Art "Timer" in dieser Auswahl.
Am ehesten könnte man es vergleichen mit einem Betriebssytem-Bootloader, wie man ihn vielleicht von Linux oder Windows kennt. Dieser stellt einen ja auch vor die Auswahl, welches Betriebssystem oder welche Kernel-Version mal wählt. Lässt man eine bestimmte Zeitspanne verstreichen, wählt es automatisch den markierten Eintrag.
In unserem Falle solle - so unser Projektleiter - nach Ablauf von 10s eine "default"-Variante ausgeführt werden.
Nehmen wir also folgende Situation an:
1) Man konnte an entsprechende Stelle im Programm (Terminalebene);
2) Programm fordert Nutzereingabe an; Möglich seien die Befehle ("bef0()", "bef1()", "bef2()");
3a) Nicht sinnige Eingabe führt wieder zu 2) (Iterativ, Schleifengebunden; NICHT rekursiv)
3b) Korrekte Eingabe führt entsprechenden Befehl aus;
3c) Keine Eingabe führt nach Ablauf der Zeitspanne zur automatischen Ausführung von bef0();
Sämtliche Eingagen erfolgen hierbei über das Terminal (Linux) oder die cmd.exe (Windows).
Ein Timer soll NICHT angezeigt werden; In der Textebene wird kein Hinweis auf die Restzeit gegeben.
Ist das, was unser Projektleiter (gleicher Jahrgang, wie wir - entsprechend gleicher/ähnlicher Ahnungsstand zum Thema Java) dort fordert in Java so möglich?
Wenn es möglich ist, wie kann ich das umsetzen?
Ich dachte zunächst an eine Zählerschleife.
-> scheiterte jedoch daran, dass diese Schleife auch die User-Eingabe jedes Mal neu gefordert hat und somit dem User keine Möglichkeit gegeben hat, eine Eingabe zu tätigen.
In der Folge dachte ich mehr in Richtung einer internen Warteschleife (for-Schleife mit leerem Body).
-> Eingabe wird gefordert;
-> Schleife läuft entsprechende oft durch
-> Eingabe wird eingelesen;
Probleme hierbei: Der User müsste IMMER die 10s warten, wenn danach das einlesen IRGENDWIE erzwungen werden würde. Weiterhin stünde das Bestätigen via Enter nicht mehr zur Debatte (denke ich mal?)
Ich persönlich bin GEGEN diese Lösung, da ich schon bei meinen Bootloader die Krise bekomme, wenn ich mal wieder der Meinung war, den Rechner einzuschalten und mal schnell einen Kaffee zu besorgen, nur um danach festzustellen, dass ich im falschen Betriebssystem gelandet bin. Dennoch kann ich mich ja schlecht unbegründet über die Entscheidung des Projektleiters hinwegssetzen. Folglich werde ich es auch überleben, sollte das so nicht möglich sein.
Lieben Gruß
Moch