ogólnie chcę wygenerować tablicę składającą się z 0 i 1. Przy czym 1-ek nie może być więcej niż założę na początku działania programu. Wykorzystałem standardowy obiekt Random, ale problem jest z nim taki, że przy dużej liczbie wierszy i kolumn 1-ki nie rozkładają się po całej tablicy tylko, z reguły, w pierwszych dwóch wierszach. jak sobie z tym poradzić?
kod programu:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Random;
public class GraLosowa
{
public static void main(String[] args) throws NumberFormatException, IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int liczbaWierszy, liczbaKolumn;
Random losowaLiczba = new Random();
int a;
int iloscPolWygrywajacych, k = 0;
System.out.print("Wprowadz wielkość planszy do gry: \r\nliczba wierszy: ");
liczbaWierszy = Integer.parseInt(br.readLine());
System.out.println(liczbaWierszy);
System.out.print("liczba kolumn: ");
liczbaKolumn = Integer.parseInt(br.readLine());
System.out.println(liczbaKolumn);
System.out.print("Wprowadź liczbę pól wygrywających: ");
iloscPolWygrywajacych = Integer.parseInt(br.readLine());
int[][] plansza = new int[liczbaWierszy][liczbaKolumn];
for(int i = 0; i < liczbaWierszy; i++)
{
for (int j = 0; j < liczbaKolumn; j++)
{
a = losowaLiczba.nextInt(2);
//System.out.println(a);
if (a < 0.5)
plansza[i][j] = 0;
else
{
k++;
if (k > iloscPolWygrywajacych)
plansza[i][j] = 0;
else plansza[i][j] = 1;
}
}
}
for(int i = 0; i < liczbaWierszy; i++)
{
for (int j = 0; j < liczbaKolumn; j++)
{
System.out.print(plansza[i][j] + " ");
}
System.out.println("");
}
}
}
przykładowy wynik na wyjściu:
0 0 0 0 1 1 1 1 1 0
1 1 0 0 0 0 0 1 0 1
1 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
oczekuje bardziej czegos takiego:
0 0 0 0 1 0 1 0 0 0
1 1 0 0 0 0 0 1 0 1
1 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
1 0 0 1 0 0 1 0 0 0
0 0 0 0 0 0 0 0 0 1
1 0 0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1
0 1 0 0 0 1 0 0 0 0
0 0 0 0 1 0 0 0 0 0
dodanie znacznika <code> dla wyjścia - fp