B
Baseline
Gast
Hallo Zusammen
Das Programm läuft zwar, doch wenn ich es laufen lasse, sollte es für den 0-ten Tag 3 mal eine 1 anzeigen (population[x][y]=1). Dies wurde in der letzten Methode programmiert mit der for-schleife. Doch irgendwie klapp das nicht ganz. Eclipse zeigt dann als Ausgabe immer mehr als 3 mal eine 1. Wenn ich die for-schleife weg lasse, dann zeigt es richtigerweise aber nur 1mal eine 1 an.
Weiss wer was zu tun ist`?
Java:
import terminal.VT;
import terminal.VTerm;
public class Pandemie {
// globale Matrix für das Speichern der Population
static int[][] population = new int[21][51];
static VTerm console = VTerm.getInstance(25, 80, "Pandemie", VT.CS_TINY);
public static void main(String[] args) {
int i, j; // Laufvariablen für die Schleifen
// Die Werte im Array Personen werden auf 0 gesetzt
for (i = 0; i < 21; i++) {
for (j = 0; j < 51; j++) {
population[i][j] = 0;
}
}
// Ausgabe im Fenster von console (Typ VTerm)
print();
console.delay(500); //
// erste Person soll angesteckt werden
init();
for (int tage = 0; tage < 1; tage++) {
for (i = 1; i < 20; i++) {
for (j = 1; j < 50; j++) {
ansteckung(i, j);
}
}
console.clearScreen(); // Löschen des Inhalts von console
console.println("Tag " + tage);
// Ausgabe im Fenster von console (Typ VTerm)
print();
console.delay(500);
}
// schliessen der Konsole mit Enter
console.readyToExit(true);
}
/* Hinzufügen der neuen Methoden */
public static void print(){
int i, j;
for (i = 0; i < 21; i++) {
for (j = 0; j < 51; j++) {
if (population[i][j] > 0) {
console.print("" + population[i][j]);
} else {
console.print(' ');
}
}
console.println();
}
}
public static void ansteckung(int x, int y) {
if(population[x][y]==0 && (population[x][y-1]>0 || population[x][y+1]>0 || population[x-1][y]>0 || population[x+1][y]>0) ){
int zufall=(int)(Math.random () * 3);
// Berechnung der Ansteckung
if(zufall==0){
population[x][y] = 1;
}
}
}
public static void init(){
int x, y;
for(int a=0; a<3; a++){
x=(int)(Math.random () *21)+1;
y=(int)(Math.random () *51)+1;
population[x][y]=1;
}
}
}
Das Programm läuft zwar, doch wenn ich es laufen lasse, sollte es für den 0-ten Tag 3 mal eine 1 anzeigen (population[x][y]=1). Dies wurde in der letzten Methode programmiert mit der for-schleife. Doch irgendwie klapp das nicht ganz. Eclipse zeigt dann als Ausgabe immer mehr als 3 mal eine 1. Wenn ich die for-schleife weg lasse, dann zeigt es richtigerweise aber nur 1mal eine 1 an.
Weiss wer was zu tun ist`?