Zum Inhalt springen

Tabelle ohne Wertredundanz


Empfohlene Beiträge

Geschrieben

Hi FI's

z.Z. versuche ich ein Fußballmanager zu programmieren und habe schon beim Spielplan ein Problem.

Ich schaffe es nicht eine komplette 18x18 Tabelle zu programmieren, in der sich in keiner Spalte oder Zeile ein Wert wiederholt. Meistens hört er nach 5 Zufallszahlen in einer Zeile auf und macht nichts mehr.

Ich hoffe ihr könnt mir da helfen

import java.lang.*;

import java.util.*;


public class Spielplan

{

	public static void main(String[] args)

	{

		new Spielplan();

	}


	public Spielplan()

	{

		Random zg = new Random();

		int[][] spielplan = new int[18][18];

		boolean moeglich;


		for (int spz = 0; spz <= 17; spz++)

		{

			System.out.println("");

			for(int sps = 0; sps <= 17; sps++)

			{			

				if (sps == 0) 

				{

					spielplan[spz][0] = spz;

				}

				else

				{

					int gegner = zg.nextInt(17);

					do

					{

						moeglich = true;

						if (moeglich)

						{

							for (int spsv = 1; spsv < sps; spsv++)

							{

								if (spielplan[spz][spsv] == gegner) moeglich = false;

							}

							for (int spzv = 0; spzv < spz; spzv++)

							{

								if (spielplan[spzv][sps] == gegner) moeglich = false;

							}

							spielplan[spz][sps] = gegner;

						}

					}while(!moeglich);

				}

				System.out.print(spielplan[spz][sps]+" ");

			}

		}

	}

}

Geschrieben

ich brauche in der ersten spalte die werte 0 - 17. in dieser reihenfolge.

anschließend sollen sollen pro zeile(spz) zufällige werte von 0 - 17 stehen. das gleiche auch bei der spalte(sps).

im prinzip soll jede spalte und jede zeile die gleiche quersumme ergeben.

das brauch ich um einen zufälligen spielplan für die spielbegegnungen zu machen.

Geschrieben

Ich gebe mal den Tipp auf "Permutation".

Du willst die Zahlen [0..17] erzeugen, d.h. Du erzeugst immer ein Array mit 18 Elementen, in dem keine Duplikate vorkommen und weist dieses dann passend zu. Du musst nur unterscheiden, ob eben z.B. in zwei benachbarten Spalten die gleichen Werte stehen dürfen.

Generell solltest Du die Permutation in einer eigenen Methode erzeugen und dann nur Deinem Array zuweisen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...