Witam! Tworze swój pierwszy program okienkowy i chciałbym aby zostały wyrysowane wyniki mojej symulacji np. w postaci czarnych kwadratów. Mam stworzoną symulację i nie wiem jak jej wynik przekazać do Graphics g. Próbowałem getterami ale coś mi nie wychodzi.
import java.awt.Color;
import java.awt.Graphics;
import java.util.Random;
public class Symulacja1 {
public Symulacja1(int x, int y, int z, int q) {
SzataPoczatek x1 = new SzataPoczatek();
// TODO Auto-generated method stub
Random generator = new Random();
int osobnik[][] = new int[10 * x][6];
int powTab[][] = new int[y][y];
// cehcy osobników
for (int i = 0; i < x; i++) { // tab 0 to osobnik tak/nie
osobnik[i][0] = 1;
osobnik[i][1] = generator.nextInt(10); // wsp pocz X
osobnik[i][2] = generator.nextInt(10);// wsp pocz Y
osobnik[i][3] = generator.nextInt(20);
; // zapas żywności
osobnik[i][4] = generator.nextInt(2); // płeć
osobnik[i][5] = generator.nextInt(5); // walory rozrodcze
}
for (int i = x; i < x; i++) {
osobnik[i][0] = 0;
osobnik[i][1] = 0; // wsp pocz X
osobnik[i][2] = 0;// wsp pocz Y
osobnik[i][3] = 0; // zapas żywności
osobnik[i][4] = 0; // płeć
osobnik[i][5] = 0; // walory rozrodcze
}
System.out.println("OSOBNIKI");
for (int i = 0; i < osobnik.length; i++) {
for (int j = 0; j < 5; j++)
System.out.printf("%3d", osobnik[i][j]);
System.out.println();
}
System.out.println();
// liczba symulacji
for (int k = 0; k < 10; k++) {
for (int i = 0; i < y; i++) {
for (int j = 0; j < y; j++)
powTab[i][j] = generator.nextInt(2);
}
for (int i = 0; i < powTab.length; i++) {
for (int j = 0; j < powTab.length; j++)
System.out.printf("%3d", powTab[i][j]);
System.out.println();
}
System.out.println();
/*
* for (int i = 0; i < 10; i++) {
* LosTab[generator.nextInt(10)][generator.nextInt(10)] = 1; }
*/
for (int i = 0; i < x; i++) {
if (osobnik[i][3] == 0) {
osobnik[i][0] = 0;
}
}
for (int i = 0; i < x; i++) {
if (osobnik[i][0] == 1) {
osobnik[i][1] = generator.nextInt(y); // wsp X
osobnik[i][2] = generator.nextInt(y);// wsp Y
}
}
for (int i = 0; i < x; i++) {
if (powTab[osobnik[i][1]][osobnik[i][2]] == 1) {
osobnik[i][3] = osobnik[i][3]++;
powTab[osobnik[i][1]][osobnik[i][2]] = 0;
}
}
for (int i = 0; i < x; i++) {
for (int j = 0; j < x; j++) {
if (osobnik[i][1] == osobnik[j][1]) {
if (osobnik[i][2] == osobnik[j][2]) {
if (osobnik[i][4] != osobnik[j][4]){
if (osobnik[i][5] == osobnik[j][5]){
x=x+1;
osobnik[x][0] = 1;
osobnik[x][1] = generator.nextInt(10); // wsp pocz X
osobnik[x][2] = generator.nextInt(10);// wsp pocz Y
osobnik[x][3] = generator.nextInt(20);
; // zapas żywności
osobnik[x][4] = generator.nextInt(2); // płeć
osobnik[x][5] = generator.nextInt(5); // walory rozrodcze
}
}
}
}
}
}
for (int i = 0; i < x; i++) {
osobnik[i][3] = osobnik[i][3] - 1; // zapas żywności
}
// rysowanie tych, które przeżyły
for (int l = 0; l < x; l++) {
**if (osobnik[l][0] == 1) {
/* g.setColor(Color.BLACK);
g.fillRect((50 + osobnik[l][1] * 50),
(50 + osobnik[l][2] * 50), 50, 50);*/
**
}
for (int i = 0; i < z; i++) {
powTab[generator.nextInt(y)][generator.nextInt(y)] = 1;
}
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// Handle exception
}
}
/*
* for (int i = 0; i < LosTab.length; i++) { for (int j = 0; j <
* LosTab.length; j++) System.out.printf("%3d", LosTab[i][j]);
* System.out.println(); }
*/
/*
* for (int i = 0; i < powTab.length; i++) { for (int j = 0; j <
* powTab.length; j++) { if (powTab[i][j] == 1) { g.setColor(Color.RED);
* g.fillRect((50 + i * 50), (50 + j * 50), 50, 50);
*
* } } }
*/
int o=0;
System.out.println("OSOBNIKI PO SYMULACJI");
for (int i = 0; i < x; i++) {
if (osobnik[i][0]==1){
for (int j = 0; j < 5; j++)
System.out.printf("%3d", osobnik[i][j]);
System.out.println();
o++;
}
}
System.out.println("osobniki po symulacji" + o);
}
}
Pierwotnie wyglądało to tak, ze miałem wszystko w Graphics g tylko problem był z ustawieniem w symulacji wartości podanych przez użytkownika. Z góry dziękuję za pomoc!