Hallo,
Ich habe eine Source, die ich nicht ganz verstehe.
Folgendes soll geschehen (Schulaufgabe) In einem Dorf leben X Menschen. Aufgeteilt in dumme, weise und kluge.
Die dummen sollen die Zahl 0 erhalten, die Weisen die 2 und die Klugen die 1.
Wenn sich nun die 0 und die 1 treffen wird die 0 zur 1.
Wenn sich die 1 und die 2 treffen, wird die 1 zur 2
Und auch umgekehrt.
Nun verstehe ich nicht, wo in der Source in dem Array dorf die Zuordnung auf 0,1,2 passiert. Vielleicht kann mir das mal einer erläutern.
Danke
Die Basisbibliotheken habe ich mal angehängt.
Sebastian
Ich habe eine Source, die ich nicht ganz verstehe.
Folgendes soll geschehen (Schulaufgabe) In einem Dorf leben X Menschen. Aufgeteilt in dumme, weise und kluge.
Die dummen sollen die Zahl 0 erhalten, die Weisen die 2 und die Klugen die 1.
Wenn sich nun die 0 und die 1 treffen wird die 0 zur 1.
Wenn sich die 1 und die 2 treffen, wird die 1 zur 2
Und auch umgekehrt.
Nun verstehe ich nicht, wo in der Source in dem Array dorf die Zuordnung auf 0,1,2 passiert. Vielleicht kann mir das mal einer erläutern.
Danke
Java:
package dumme;
import basis.*;
public class Dumme {
private Fenster fenster;
private Stift dummStift, klugStift, weiseStift;
private BeschriftungsFeld titel;
private Knopf kneu, kende;
private ZahlenFeld eingabe;
private int max, dummZahl, klugZahl, weiseZahl, a, b;
private int[] dorf;
private int[][] zahl;
public Dumme() {
fenster = new Fenster("Die Dummen sterben nicht aus", 400, 200);
dummStift = new Stift();
dummStift.setzeFarbe(Farbe.ROT);
klugStift = new Stift();
klugStift.setzeFarbe(Farbe.SCHWARZ);
weiseStift = new Stift();
weiseStift.setzeFarbe(Farbe.BLAU);
titel = new BeschriftungsFeld("Die Dummen sterben nicht aus", 115, 20,
300, 30);
kende = new Knopf("Ende", 50, 160, 60, 30);
kneu = new Knopf("Neu", 290, 160, 60, 30);
eingabe = new ZahlenFeld(160, 160, 90, 30);
eingabe.setzeSchriftGroesse(20);
max = 100;
this.anfangsWerte();
} // Ende Konstruktor
private void anfangsWerte() {
fenster.löscheAlles();
klugStift.bewegeBis(50, 50);
klugStift.zeichneRechteck(300, 100);
dummStift.bewegeBis(50, 150);
klugStift.bewegeBis(50, 150);
weiseStift.bewegeBis(50, 150);
dorf = new int[max];
zahl = new int[2][10000];
for (int i = 0; i < max; i++) {
dorf[i] = 0;
}
dorf[Hilfe.zufall(0, max - 1)] = 1;
dummZahl = weiseZahl = 0;
klugZahl = 1;
}
private void ausgabe() {
if (dummStift.hPosition() < 350) {
dummStift.bewegeBis(dummStift.hPosition() + 1,
150 - (dummZahl * 100 / max));
dummStift.zeichneKreis(1);
klugStift.bewegeBis(klugStift.hPosition() + 1,
150 - (klugZahl * 100 / max));
klugStift.zeichneKreis(1);
weiseStift.bewegeBis(weiseStift.hPosition() + 1,
150 - (weiseZahl * 100 / max));
weiseStift.zeichneKreis(1);
}
} // Ende ausgabe
private void neuStart() {
max = eingabe.ganzZahl();
this.anfangsWerte();
}
private void treffen() {
int Zufall1, Zufall2, erster, zweiter;
Zufall1 = Hilfe.zufall(0, max - 1);
Zufall2 = Hilfe.zufall(0, max - 1);
while (Zufall1 == Zufall2) {
Zufall1 = Hilfe.zufall(0, max - 1);
}
erster = dorf[Zufall1];
zweiter = dorf[Zufall2];
if (erster == 0 && zweiter == 1) {
erster = 1;
} else if (erster == 1 && zweiter == 0) {
zweiter = 1;
} else if (erster == 2 && zweiter == 1) {
zweiter = 2;
} else if (erster == 1 && zweiter == 2) {
erster = 2;
} else if (erster == 1 && zweiter == 1) {
erster = 2;
zweiter = 2;
}
dorf[Zufall1] = erster;
dorf[Zufall2] = zweiter;
} // Ende treffen
private void zähle() {
dummZahl = klugZahl = weiseZahl = 0;
for (int i = 0; i < max; i++) {
if (dorf[i] == 0) {
dummZahl = dummZahl + 1;
} else if (dorf[i] == 1) {
klugZahl = klugZahl + 1;
} else if (dorf[i] == 2) {
weiseZahl = weiseZahl + 1;
//System.out.println(dummZahl);
}
}
} // Ende zähle
public void gibFrei() {
fenster.gibFrei();
dummStift.gibFrei();
klugStift.gibFrei();
weiseStift.gibFrei();
titel.gibFrei();
kneu.gibFrei();
kende.gibFrei();
eingabe.gibFrei();
} // Ende Destruktor
public void fuehreAus() {
int zähler;
zähler = 0;
while (!kende.wurdeGedrueckt()) {
Hilfe.kurzePause();
this.treffen();
if (zähler > 50) {
this.zähle();
this.ausgabe();
zähler = 0;
}
zähler++;
if (kneu.wurdeGedrueckt()) {
neuStart();
}
}
this.gibFrei();
} // Ende fuehreAus
public static void main(String[] args) {
Dumme dumme;
dumme = new Dumme();
dumme.fuehreAus();
}
}
Die Basisbibliotheken habe ich mal angehängt.
Sebastian
Anhänge
Zuletzt bearbeitet von einem Moderator: