Wtf, dann penn ich schon xD Naja, mal schauen
Vergiss die Formel gleich wieder, die stimmt nur bis zu einem gewissen Zeitpunkt. Hatte den Testbereich grad etwas erhöht und hab gesehen, dass es dann ab nem bestimmten Punkt nicht mehr hinhaut ... Aber egal, macht nix Dann hier der Generator, natürlich in Java
Java
- package test;
- @SuppressWarnings("javadoc")
- public class SickMatrixTest {
- private static class Generator {
- private int value;
- public Object nextValue() {
- return value++;
- }
- }
- public static void main(String[] args) {
- int maxCols = 10;
- int maxRows = 5;
- Object[][] fields = new Object[maxCols][maxRows];
- Generator generator = new Generator();
- int toGenerate = maxCols * maxRows;
- int generated = 0;
- for(int x = 0, yStart = 0; generated < toGenerate; x++) {
- if(x >= maxCols) {
- x = maxCols - 1;
- yStart++;
- }
- for(int yPos = yStart, xPos = x; yPos < maxRows && xPos >= 0; yPos++, xPos--, generated++) {
- fields[xPos][yPos] = generator.nextValue();
- }
- }
- // Und ausgeben den Spaß ^^
- int colWidth = String.valueOf(fields[maxCols - 1][maxRows - 1]).length();
- for(int y = maxRows - 1; y >= 0; y--) {
- for(int x = 0; x < maxCols; x++) {
- System.out.print(String.format("|%" + colWidth + "s|", fields[x][y]));
- }
- System.out.println();
- }
- }
- }
Ausgabe bei 10x5:
Zum Generieren der Werte hab ich in dem Fall mal einen Generator hinzugefügt, der alles liefern kann und man somit nicht auf die bloßen Zahlen beschränkt ist.