package com.company;
import java.util.Random;
// enthält alle in dem Rätsel möglichen Woerter
class Woerter {
Random random = new Random();
int l = 0;
int m = 0;
int m1 = 0, m2 = 0, m3 = 0, m4 = 0, m5 = 0, m6 = 0, m7 = 0, m8 = 0;
String ergebnisHorizontal;
String ergebnisVertikal1; // gibt einen zufällig gewählten vertikalen String wieder
String ergebnisVertikal2;
String ergebnisVertikal3;
String ergebnisVertikal4;
String ergebnisVertikal5;
String ergebnisVertikal6;
String ergebnisVertikal7;
String ergebnisVertikal8;
// Gibt zufällig den anzuzeigen Buchstaben aus
public String Buchstabe(int spalte, int reihe){
String ergebnisVertikal = ErgebnisVertikalGeprueft(spalte, reihe); // holt den Wert von ergebnisVertikal aus getErgebnisVertikal und prüft ihn
// spalte und reihe werden für die Initialisierung von ergebnisVertikal verwendet
String ergebnisHorizontal = ErgebnisHorizontal(spalte);
char[] arrayHorizontal = ergebnisHorizontal.toCharArray(); // ein Array aus den Buchstaben des zufällig gewählten Strings aus
char[] arrayVertikal = ergebnisVertikal.toCharArray(); // ein Array aus den Buchstaben des zufällig gewählten Strings aus
int i = random.nextInt(3);
char[] arrayAllgemein = new char[3];
arrayAllgemein[0] = arrayHorizontal[l];
arrayAllgemein[1] = arrayVertikal[m];
arrayAllgemein[2] = BeliebigerBuchstabe();
String buchstabe = "";
boolean mUndSpalte = SpalteHatVertikalenBuchstaben(spalte); // prüft, ob es für die gleiche Spaltennummer schon einen festgelegten String gibt
// Gibt alle Zeichen eines horizontalen Wortes aus
if (arrayAllgemein[i] == arrayHorizontal[l] || l > 0) {
buchstabe = String.valueOf(arrayHorizontal[l]);
l++;
}
// Gibt alle Zeichen eines vertikalen Wortes aus
if (arrayAllgemein[i] == arrayVertikal[m] || mUndSpalte) {
switch (spalte) {
case 1:
m = m1;
m1++;
break;
case 2:
m = m2;
m2++;
break;
case 3:
m = m3;
m3++;
break;
case 4:
m = m4;
m1++;
break;
case 5:
m = m5;
m5++;
break;
case 6:
m = m6;
m6++;
break;
case 7:
m = m7;
m7++;
break;
case 8:
m = m8;
m8++;
break;
}
buchstabe = String.valueOf(arrayVertikal[m]);
}
return buchstabe;
}
// ein zufällig gewählter String wird ausgegeben
public String Woerter() { // enthält alle horizontal geschriebenen Wörter
String[] array = new String[11];
array[0] = " ";
array[1] = "JAVA";
array[2] = "PC";
array[3] = "TABLET";
array[4] = "HANDY";
array[5] = "TELEFON";
array[6] = "KONSOLE";
array[7] = "SPIEL";
array[8] = "DRUCKER";
array[9] = "KOPIERER";
array[10] = "SCANNER";
int i = random.nextInt(11);
String string = array[i];
return string; // einer der Strings wird zufällig ausgewählt und ausgegeben
}
String ErgebnisHorizontal(int spalte){
if (l == 0) {
ergebnisHorizontal = Woerter();
}
int platzHorizontal = 8 - spalte + 1; // verbleibender Platz bei 8 Spalten inklusive aktueller Spalte
int benoetigterPlatzHorizontal = ergebnisHorizontal.length();
if (benoetigterPlatzHorizontal > platzHorizontal || l == ergebnisHorizontal.length() - 1){
l = 0;
do {
ergebnisHorizontal = Woerter();
}while (benoetigterPlatzHorizontal > platzHorizontal);
}
return ergebnisHorizontal;
}
String getErgebnisVertikal(int spalte){
String ergebnisVertikal = "";
switch (spalte){
case 1:
if (m1 == 0 || m1 == ergebnisVertikal1.length() - 1) { // wenn in der Spalte noch kein vertikaler String angefangen oder gerade einer abgeschlossen wurde
m1 = 0; // wenn m1 == ergebnisVertikal1.length() - 1, wird m1 zurückgesetzt
ergebnisVertikal1 = Woerter(); // gibt einen zufällig gewählten vertikalen String wieder
}
ergebnisVertikal = ergebnisVertikal1;
break;
case 2:
if (m2 == 0 || m2 == ergebnisVertikal2.length() - 1){
m2 = 0;
ergebnisVertikal2 = Woerter();
}
ergebnisVertikal = ergebnisVertikal2;
break;
case 3:
if (m3 == 0 || m3 == ergebnisVertikal3.length() - 1) {
m3 = 0;
ergebnisVertikal3 = Woerter();
}
ergebnisVertikal = ergebnisVertikal3;
break;
case 4:
if (m4 == 0 || m4 == ergebnisVertikal4.length() - 1) {
m4 = 0;
ergebnisVertikal4 = Woerter();
}
ergebnisVertikal = ergebnisVertikal4;
break;
case 5:
if (m5 == 0 || m5 == ergebnisVertikal5.length() - 1) {
m5 = 0;
ergebnisVertikal5 = Woerter();
}
ergebnisVertikal = ergebnisVertikal5;
break;
case 6:
if (m6 == 0 || m6 == ergebnisVertikal6.length() - 1) {
m6 = 0;
ergebnisVertikal6 = Woerter();
}
ergebnisVertikal = ergebnisVertikal6;
break;
case 7:
if (m7 == 0 || m7 == ergebnisVertikal7.length() - 1) {
m7 = 0;
ergebnisVertikal7 = Woerter();
}
ergebnisVertikal = ergebnisVertikal7;
break;
case 8:
if (m8 == 0 || m8 == ergebnisVertikal8.length() - 1) {
m8 = 0;
ergebnisVertikal8 = Woerter();
}
ergebnisVertikal = ergebnisVertikal8;
break;
}
return ergebnisVertikal;
}
String ErgebnisVertikalGeprueft(int spalte, int reihe){
String ergebnisVertikalGeprueft = getErgebnisVertikal(spalte);
boolean gleich = GleichVertikal(spalte); //stellt sicher, dass jeder String einen anderen Wert enthält
int benoetigterPlatzVertikal = ergebnisVertikalGeprueft.length();
int PlatzVertikal = 8 - reihe + 1;
if (gleich || benoetigterPlatzVertikal > PlatzVertikal){
do {
ergebnisVertikalGeprueft = getErgebnisVertikal(spalte);
benoetigterPlatzVertikal = ergebnisVertikalGeprueft.length();
gleich = GleichVertikal(spalte);
}while (gleich || benoetigterPlatzVertikal > PlatzVertikal);
}
return ergebnisVertikalGeprueft;
}
char BeliebigerBuchstabe(){
char[] arrayBeliebigerBuchstabe = new char[10];
arrayBeliebigerBuchstabe[0] = 'A';
arrayBeliebigerBuchstabe[1] = 'B';
arrayBeliebigerBuchstabe[2] = 'X';
arrayBeliebigerBuchstabe[3] = 'Y';
arrayBeliebigerBuchstabe[4] = 'L';
arrayBeliebigerBuchstabe[5] = 'I';
arrayBeliebigerBuchstabe[6] = 'N';
arrayBeliebigerBuchstabe[7] = 'O';
arrayBeliebigerBuchstabe[8] = 'P';
arrayBeliebigerBuchstabe[9] = 'U';
int i = random.nextInt(10);
char beliebigerBuchstabe = arrayBeliebigerBuchstabe[i];
return beliebigerBuchstabe;
}
Boolean GleichVertikal(int spalte){
// sind true, wenn keiner der Strings mit einem anderen überein stimmt
boolean ungleich1 = (ergebnisVertikal1 != ergebnisVertikal2) && (ergebnisVertikal1 != ergebnisVertikal3) && (ergebnisVertikal1 != ergebnisVertikal4) && (ergebnisVertikal1 != ergebnisVertikal5) && (ergebnisVertikal1 != ergebnisVertikal6) && (ergebnisVertikal1 != ergebnisVertikal7) && (ergebnisVertikal1 != ergebnisVertikal8);
boolean ungleich2 = (ergebnisVertikal2 != ergebnisVertikal1) && (ergebnisVertikal2 != ergebnisVertikal3) && (ergebnisVertikal2 != ergebnisVertikal4) && (ergebnisVertikal2 != ergebnisVertikal5) && (ergebnisVertikal2 != ergebnisVertikal6) && (ergebnisVertikal2 != ergebnisVertikal7) && (ergebnisVertikal2 != ergebnisVertikal8);
boolean ungleich3 = (ergebnisVertikal3 != ergebnisVertikal1) && (ergebnisVertikal3 != ergebnisVertikal2) && (ergebnisVertikal3 != ergebnisVertikal4) && (ergebnisVertikal3 != ergebnisVertikal5) && (ergebnisVertikal3 != ergebnisVertikal6) && (ergebnisVertikal3 != ergebnisVertikal7) && (ergebnisVertikal3 != ergebnisVertikal8);
boolean ungleich4 = (ergebnisVertikal4 != ergebnisVertikal1) && (ergebnisVertikal4 != ergebnisVertikal2) && (ergebnisVertikal4 != ergebnisVertikal3) && (ergebnisVertikal4 != ergebnisVertikal5) && (ergebnisVertikal4 != ergebnisVertikal6) && (ergebnisVertikal4 != ergebnisVertikal7) && (ergebnisVertikal4 != ergebnisVertikal8);
boolean ungleich5 = (ergebnisVertikal5 != ergebnisVertikal1) && (ergebnisVertikal5 != ergebnisVertikal2) && (ergebnisVertikal5 != ergebnisVertikal3) && (ergebnisVertikal5 != ergebnisVertikal4) && (ergebnisVertikal5 != ergebnisVertikal6) && (ergebnisVertikal5 != ergebnisVertikal7) && (ergebnisVertikal5 != ergebnisVertikal8);
boolean ungleich6 = (ergebnisVertikal6 != ergebnisVertikal1) && (ergebnisVertikal6 != ergebnisVertikal2) && (ergebnisVertikal6 != ergebnisVertikal3) && (ergebnisVertikal6 != ergebnisVertikal4) && (ergebnisVertikal6 != ergebnisVertikal5) && (ergebnisVertikal6 != ergebnisVertikal7) && (ergebnisVertikal6 != ergebnisVertikal8);
boolean ungleich7 = (ergebnisVertikal7 != ergebnisVertikal1) && (ergebnisVertikal7 != ergebnisVertikal2) && (ergebnisVertikal7 != ergebnisVertikal3) && (ergebnisVertikal7 != ergebnisVertikal4) && (ergebnisVertikal7 != ergebnisVertikal5) && (ergebnisVertikal7 != ergebnisVertikal6) && (ergebnisVertikal7 != ergebnisVertikal8);
boolean ungleich8 = (ergebnisVertikal8 != ergebnisVertikal1) && (ergebnisVertikal8 != ergebnisVertikal2) && (ergebnisVertikal8 != ergebnisVertikal3) && (ergebnisVertikal8 != ergebnisVertikal4) && (ergebnisVertikal8 != ergebnisVertikal5) && (ergebnisVertikal8 != ergebnisVertikal6) && (ergebnisVertikal8 != ergebnisVertikal7);
boolean ungleich = true; // Standardwert
switch (spalte){
case 1: ungleich = ungleich1;
break;
case 2: ungleich = ungleich2;
break;
case 3: ungleich = ungleich3;
break;
case 4: ungleich = ungleich4;
break;
case 5: ungleich = ungleich5;
break;
case 6: ungleich = ungleich6;
break;
case 7: ungleich = ungleich7;
break;
case 8: ungleich = ungleich8;
break;
}
boolean gleich = !ungleich;
return gleich;
}
Boolean SpalteHatVertikalenBuchstaben(int spalte){
boolean m1UndSpalte1 = m1 > 0 && spalte == 1;
boolean m2UndSpalte2 = m2 > 0 && spalte == 2;
boolean m3UndSpalte3 = m3 > 0 && spalte == 3;
boolean m4UndSpalte4 = m4 > 0 && spalte == 4;
boolean m5UndSpalte5 = m5 > 0 && spalte == 5;
boolean m6UndSpalte6 = m6 > 0 && spalte == 6;
boolean m7UndSpalte7 = m7 > 0 && spalte == 7;
boolean m8UndSpalte8 = m8 > 0 && spalte == 8;
boolean mUndSpalte = m1UndSpalte1 || m2UndSpalte2 || m3UndSpalte3 || m4UndSpalte4 || m5UndSpalte5 || m6UndSpalte6 || m7UndSpalte7 || m8UndSpalte8;
return mUndSpalte;
}
}
das sind meine drei klassen