public static void main (String[] argv)
{
MANNSCHAFTEN_MAX = Integer.parseInt(argv[1]);
boolean ende = false;
turnierNummer = argv[0];
System.out.println("\n<<< " + argv[0] + ". internationales Dreh-Fußball-Turnier >>>");
System.out.println("================================================");
do
{
// Menue-Ausgabe:
System.out.println("\nHauptmenue:");
System.out.println("===========");
System.out.println("\n1) Neue Mannschaften eingeben");
// System.out.println("2) Mannschaften löschen");
System.out.println("3) Tabelle anzeigen");
System.out.println("4) Auslosung");
System.out.println("5) Lucky-Looser-Auslosung");
System.out.println("6) Play-Off-Auslosung (KO-System)");
System.out.println("7) Spiel-Ergebnisse eingeben");
System.out.println("8) Tabelle ausdrucken");
System.out.println("\n0) Programm beenden");
try
{
// Benutzereingaben lesen:
System.out.print("\nAuswahl: ");
Scanner eingabe = new Scanner(System.in);
int auswahl = eingabe.nextInt();
// Benutzereingaben verarbeiten:
switch (auswahl)
{
case 1:
/* if (anzMannschaften == MANNSCHAFTEN_MAX)
{
System.out.println("\nDie Mannschaften wurden schon eingeben \n");
break;
} */
System.out.println("\nNeue Mannschaften eingeben:");
System.out.println("===========================");
while (anzMannschaften < MANNSCHAFTEN_MAX && anzMannschaften >= 0)
{ anzMannschaften = neueMannschaft(anzMannschaften); }
break;
/*
case 2:
anzMannschaften = loeschen(anzMannschaften, mannschaftsWahl(anzMannschaften));
break;
*/
case 3:
tabelleAnzeigen(anzMannschaften);
break;
case 4:
System.out.println("\nAuslosung der Mannschaften:");
System.out.println("===========================");
if (auslosungsVA == 0)
{ auslosung(anzMannschaften); }
else
{ System.out.println("Es wurde schon ausgelost "); }
break;
case 5:
System.out.println("\nLucky-Looser-Auslosung:");
System.out.println("=======================");
if (auslosungsLL1 == 1 && auslosungsLL2 == 1)
{ auslosungLL(anzMannschaften); }
else
{ System.out.println("Es wurde noch nicht ausgelost oder Lucky-Looser wurden schon ausgelost "); }
break;
case 6:
System.out.println("\nPlay-Off-Auslosung (KO-System):");
System.out.println("===============================");
// if (auslosungsLL2 == 1)
// { playOff(); }
// else
// { System.out.println("\nSoweit sind wir noch nicht \n"); }
break;
case 7:
if (nMa == 1)
{ spielergenisseEingeben(anzMannschaften); }
else
{ System.out.println("\nEs wurden noch keine Mannschaften eingegeben \n"); }
break;
case 8:
if (nMa == 1)
{ Drucken.printTabelle2(anzMannschaften); }
else
{ System.out.println("\nEs wurden noch keine Mannschaften eingegeben "); }
break;
case 0:
System.out.println();
System.out.println("Wirklich Beenden ?\t999\tfür Beenden eingeben ");
System.out.println();
Scanner beenden = new Scanner(System.in);
int be = beenden.nextInt();
if (be == 999)
{
System.out.println("\nProgramm beendet......\n");
ende = true;
break;
}
break;
default:
System.out.println("\nMenue-Punkt nicht vorhanden ");
break;
}
} catch (Exception e) // bei falscher Eingabe
{ System.out.println(); System.out.println("Nur Zahlen eingeben "); }
} while (!ende);
}
// Methode eingeben():
public boolean eingeben()
{
try
{
Console console = System.console();
if (console == null)
{
System.err.println("Mannschaftsnamen eingeben ");
return false;
}
mannschaft = console.readLine("Neue Mannschaft eingeben: ");
// index = anzMannschaften;
return true;
} catch (Exception e)
{ return false; }
}
// Methode neueMannschaft():
static int neueMannschaft(int mNr)
{
nMa = 1;
auslosungsVA = 0;
mannschaften[mNr] = new DrehFB();
while (!mannschaften[mNr].eingeben())
// ist das Gleiche wie: while (mannschaften[mNr].eingeben() == false)
{
System.out.println("Fehlerhafte Eingabe ");
}
return (mNr + 1);
}
// Methode tabelleAnzeigen():
static void tabelleAnzeigen(int mNr)
{
Arrays.sort(mannschaften, new Comparator<DrehFB>()
{
public int compare(DrehFB o1, DrehFB o2)
{
if(o1.torDiff > o2.torDiff)
{ return -1; }
else if(o1.torDiff < o2.torDiff)
{ return 1; }
else
{ return 0; }
}
} );
Arrays.sort(mannschaften, new Comparator<DrehFB>()
{
public int compare(DrehFB o1, DrehFB o2)
{
if(o1.spiele < o2.spiele)
{ return -1; }
else if(o1.spiele > o2.spiele)
{ return 1; }
else
{ return 0; }
}
} );
Arrays.sort(mannschaften, new Comparator<DrehFB>()
{
public int compare(DrehFB o1, DrehFB o2)
{
if(o1.punkte > o2.punkte)
{ return -1; }
else if(o1.punkte < o2.punkte)
{ return 1; }
else
{ return 0; }
}
} );
System.out.println("\nMannschafts-Tabelle:");
System.out.println("====================\n");
System.out.println("\tMS\t\tSP\tFSP\tGT\tBT\tTD\tPT\n");
int z = 0;
for (int i = 0; i < mNr; i++)
{
if (mannschaften[i].aus == 1 && z == 0)
{ System.out.println("------------------------------------------------------------------"); z++; }
System.out.print((i+1) + ")\t");
System.out.println(mannschaften[i].tabelle());
}
}
// Methode tabelle():
public String tabelle()
{
String text;
if (mannschaft.length() > 7)
{ text = mannschaft + "\t" + spiele + "\t" + freispiele + "\t" + gTore + "\t" + bTore + "\t" + torDiff + "\t" + punkte; }
else
{ text = mannschaft + "\t\t" + spiele + "\t" + freispiele + "\t" + gTore + "\t" + bTore + "\t" + torDiff + "\t" + punkte; }
return text;
}
// Methode mannschaftsWahl() (fuer Methode loeschen):
static int mannschaftsWahl(int mNr)
{
boolean ende = false;
short auswahl = 0;
do
{
tabelleAnzeigen(mNr);
try
{
System.out.println("\n Auswahl:");
Scanner eingabe = new Scanner(System.in);
auswahl = eingabe.nextShort();
if (auswahl > 0 && auswahl <= mNr)
ende = true;
// else if (auswahl == 999)
// { ende = true; break; }
else
System.out.println("Ungueltige Auswahl ");
} catch (Exception e)
{ System.out.println("Zahl eingeben "); }
} while (!ende);
return (auswahl - 1);
}
// Methode loeschen():
static int loeschen(int mss, int index)
{
for (int i = index; i < (mss - 1); i++)
{ mannschaften[i] = mannschaften[i + 1]; }
mannschaften[mss - 1] = null;
return (mss - 1);
}
// Methode auslosung(Auslosung der Mannschaften mit Zufallszahlen):
static void auslosung(int mNr)
{
auslosungsVA = 1;
auslosungsLL1 = 1;
// Zufallszahlen generieren:
int zfz;
int[] zufallszahl = new int[mNr];
Random random = new Random();
for (int i = 0; i < mNr; i++)
{
zfz = random.nextInt(mNr); // oder: zfz = random.nextInt(mNr + 1);
zufallszahl[i] = zfz;
// Doppelte ausschließen:
for (int j = 0; j < i; j++)
{
if (zufallszahl[j] == zfz) // || zufallszahl[j] == 0)
{
i--;
break;
}
}
}
// Gerade Auslosung:
if ((mNr % 2) == 0)
{
for (int i = 0; i < mNr; i++)
{
System.out.print(mannschaften[zufallszahl[i]].mannschaft);
System.out.print("\t\tgegen\t");
System.out.print(mannschaften[zufallszahl[i + 1]].mannschaft);
System.out.println();
i++;
}
}
// Ungerade Auslosung:
else
{
int schlussZahl = 0;
for(int i = 0; i < (mNr - 1); i++)
{
System.out.print(mannschaften[zufallszahl[i]].mannschaft);
System.out.print("\t\tgegen\t");
System.out.print(mannschaften[zufallszahl[i + 1]].mannschaft);
System.out.println();
schlussZahl = zufallszahl[i + 2];
i++;
}
System.out.println();
System.out.print(mannschaften[schlussZahl].mannschaft + "\thaben ein Freispiel ");
System.out.println();
mannschaften[schlussZahl].spiele = mannschaften[schlussZahl].spiele + 1;
mannschaften[schlussZahl].freispiele = mannschaften[schlussZahl].freispiele + 1;
mannschaften[schlussZahl].punkte = mannschaften[schlussZahl].punkte + 3;
// mannschaften[schlussZahl].torDiff = (mannschaften[schlussZahl].gTore - mannschaften[schlussZahl].bTore);
}
}
// Methode auslosungLL(Auslosung der Lucky-Looser mit Zufallszahlen):
static void auslosungLL(int mNr)
{
auslosungsLL1 = 0;
auslosungsLL2 = 0;
// Gerade Auslosung:
String[] temporary = new String[mNr / 2];
int k = 0;
for(int i = 0; i < mNr; i++)
{
if(mannschaften[i].punkte == 0)
{ temporary[k] = mannschaften[i].mannschaft; k++; }
}
int zfz;
int[] zufallszahl = new int[mNr];
Random random = new Random();
for (int i = 0; i < temporary.length; i++)
{
zfz = random.nextInt(temporary.length); // oder: zfz = random.nextInt(mNr + 1);
zufallszahl[i] = zfz;
// Doppelte ausschließen:
for (int j = 0; j < i; j++)
{
if (zufallszahl[j] == zfz) // || zufallszahl[j] == 0)
{
i--;
break;
}
}
}
if ((temporary.length % 2) == 0)
{
for (int i = 0; i < temporary.length; i++)
{
System.out.print(temporary[zufallszahl[i]]);
if (i % 2 == 0)
{ System.out.print("\t\tgegen\t"); }
if (i % 2 != 0)
{ System.out.println(); }
}
}
// ungerade Auslosung:
else
{
int i;
for (i = 0; i < temporary.length; i++)
{
if (i != (temporary.length - 1))
{ System.out.print(temporary[zufallszahl[i]]); }
if (i % 2 == 0 && i != (temporary.length - 1))
{ System.out.print("\t\tgegen\t"); }
if (i % 2 != 0)
{ System.out.println(); }
}
System.out.println();
System.out.print(temporary[zufallszahl[i - 1]] + "\thaben ein Freispiel ");
System.out.println();
for (int p = 0; p < mNr; p++)
{
if(mannschaften[p].mannschaft == temporary[zufallszahl[i - 1]])
{
mannschaften[p].spiele = mannschaften[p].spiele + 1;
mannschaften[p].freispiele = mannschaften[p].freispiele + 1;
mannschaften[p].punkte = mannschaften[p].punkte + 3;
// mannschaften[schlussZahl].torDiff = (mannschaften[schlussZahl].gTore - mannschaften[schlussZahl].bTore);
}
}
}
auslosungsLL2 = 1;
}
// Methode spielergenisseEingeben():
static void spielergenisseEingeben(int mNr)
{
try
{
System.out.println();
System.out.print("1. Mannschaft eingeben: ");
Scanner eingabe1 = new Scanner(System.in);
String ausw1 = eingabe1.next();
System.out.print("2. Mannschaft eingeben: ");
Scanner eingabe2 = new Scanner(System.in);
String ausw2 = eingabe2.next();
boolean check_ausw1 = false;
boolean check_ausw2 = false;
for (int y = 0; y < mNr; y++)
{
if (ausw1.compareTo(mannschaften[y].mannschaft) == 0)
{ check_ausw1 = true; break; }
}
for (int y = 0; y < mNr; y++)
{
if (ausw2.compareTo(mannschaften[y].mannschaft) == 0)
{ check_ausw2 = true; break; }
}
if (check_ausw1 == false || check_ausw2 == false)
{
System.out.println();
System.out.println("Mannschaft1 oder Mannschaft2 nicht vorhanden ");
}
else
{
Scanner eingabe11 = new Scanner(System.in);
Scanner eingabe12 = new Scanner(System.in);
if (ausw1.length() > 7)
{ System.out.print(ausw1 + "\tTore: "); }
else
{ System.out.print(ausw1 + "\t\tTore: "); }
int ausw11 = eingabe11.nextInt();
if (ausw2.length() > 7)
{ System.out.print(ausw2 + "\tTore: "); }
else
{ System.out.print(ausw2 + "\t\tTore: "); }
int ausw12 = eingabe12.nextInt();
int i, j;
for (i = 0; i < mNr; i++)
{
if (ausw1.compareTo(mannschaften[i].mannschaft) == 0)
{
mannschaften[i].gTore = (mannschaften[i].gTore + ausw11);
mannschaften[i].bTore = (mannschaften[i].bTore + ausw12);
mannschaften[i].torDiff = (mannschaften[i].gTore - mannschaften[i].bTore);
mannschaften[i].spiele = (mannschaften[i].spiele + 1);
break;
}
}
for (j = 0; j < mNr; j++)
{
if (ausw2.compareTo(mannschaften[j].mannschaft) == 0)
{
mannschaften[j].gTore = (mannschaften[j].gTore + ausw12);
mannschaften[j].bTore = (mannschaften[j].bTore + ausw11);
mannschaften[j].torDiff = (mannschaften[j].gTore - mannschaften[j].bTore);
mannschaften[j].spiele = (mannschaften[j].spiele + 1);
break;
}
}
if (ausw11 > ausw12)
{
mannschaften[i].punkte = (mannschaften[i].punkte + 3);
}
else if (ausw12 > ausw11)
{
mannschaften[j].punkte = (mannschaften[j].punkte + 3);
}
else
{
mannschaften[i].punkte = (mannschaften[i].punkte + 1);
mannschaften[j].punkte = (mannschaften[j].punkte + 1);
}
if (mannschaften[i].spiele == 2 && mannschaften[i].punkte == 0)
{ mannschaften[i].aus = 1; }
if (mannschaften[j].spiele == 2 && mannschaften[j].punkte == 0)
{ mannschaften[j].aus = 1; }
}
} catch (Exception e)
{ e.printStackTrace(); };
auslosungsLL2 = 1;
}