{655321}-Hades
2010-12-06, 15:09:20
Hallo,
ich habe da gerade ein Problem. Ich programmiere eine Simulation einer Zombieinfektion. Ziel war jetzt erstmal, eine Consolenausgabe zu programmieren, um die Simulationsmechanik zu implementieren und die Simulation später mit komplexerer Grafikausgabe zu versehen.
Der Code der Methode, welche die Consolenausgabe erzeugen soll, sieht nun folgendermaßen aus (wichtiger Teil in rot):
public static void drawSimulation() {
Environment.resetplan();
for (int i = 0; i < 20; i++) {
zombies[i].printLifeform();
}
for (int i = 0; i < 20; i++) {
humans[i].printLifeform();
}
Frame.title();
Environment.print();
Frame.statistics();
if (System.console() == null) {
System.out.println("WHERE'S MY FUCKING CONSOLE?");
} else {
System.console().flush();
}
}
...und erzeugt diese Ausgabe:
Z O M B I E L A N D VERSION 1.1
########H###########
##########Z#########
##########XZ########
ZH#######Z##########
####Z###H####Z######
##########Z#########
###########H########
H#X#####H#######Z###
########Z####H######
####H##Z############
####################
########Z###Z#######
#################Z##
#####Z##########H###
####################
#####HH#Z##Z########
###########X#Z######
#HZ###H#############
####H#######H#######
####################
Number of Zombies: 20 Number of Humans: 20
WHERE'S MY FUCKING CONSOLE?
Eigenartig, denn System.console() sollte als Objekt die Console zurückgeben. Tut sie aber offensichtlich doch nicht, oder zumindest in einer Art und Weise, dass sie null ist. Auf jeden Fall bekomme ich eine Null Pointer Exception, wenn ich flush() verwende und nicht die Abfrage vor den Aufruf klemme.
Ich habe wenig Lust, ewig lange Zeichenketten runterzuscrollen um zu überprüfen, das alles so läuft, wie es soll. Daher wüsste ich gerne, wie ich die Console flushen kann oder wie ich sie geeignet initialisieren kann, damit System.console() nicht mehr null zurück gibt.
Kann mir gerade jemand auf die Sprünge helfen?
ich habe da gerade ein Problem. Ich programmiere eine Simulation einer Zombieinfektion. Ziel war jetzt erstmal, eine Consolenausgabe zu programmieren, um die Simulationsmechanik zu implementieren und die Simulation später mit komplexerer Grafikausgabe zu versehen.
Der Code der Methode, welche die Consolenausgabe erzeugen soll, sieht nun folgendermaßen aus (wichtiger Teil in rot):
public static void drawSimulation() {
Environment.resetplan();
for (int i = 0; i < 20; i++) {
zombies[i].printLifeform();
}
for (int i = 0; i < 20; i++) {
humans[i].printLifeform();
}
Frame.title();
Environment.print();
Frame.statistics();
if (System.console() == null) {
System.out.println("WHERE'S MY FUCKING CONSOLE?");
} else {
System.console().flush();
}
}
...und erzeugt diese Ausgabe:
Z O M B I E L A N D VERSION 1.1
########H###########
##########Z#########
##########XZ########
ZH#######Z##########
####Z###H####Z######
##########Z#########
###########H########
H#X#####H#######Z###
########Z####H######
####H##Z############
####################
########Z###Z#######
#################Z##
#####Z##########H###
####################
#####HH#Z##Z########
###########X#Z######
#HZ###H#############
####H#######H#######
####################
Number of Zombies: 20 Number of Humans: 20
WHERE'S MY FUCKING CONSOLE?
Eigenartig, denn System.console() sollte als Objekt die Console zurückgeben. Tut sie aber offensichtlich doch nicht, oder zumindest in einer Art und Weise, dass sie null ist. Auf jeden Fall bekomme ich eine Null Pointer Exception, wenn ich flush() verwende und nicht die Abfrage vor den Aufruf klemme.
Ich habe wenig Lust, ewig lange Zeichenketten runterzuscrollen um zu überprüfen, das alles so läuft, wie es soll. Daher wüsste ich gerne, wie ich die Console flushen kann oder wie ich sie geeignet initialisieren kann, damit System.console() nicht mehr null zurück gibt.
Kann mir gerade jemand auf die Sprünge helfen?