Hallo liebe user,
VORAB, ICH BIN ÜBER JEDE HILFE SEHR DANKBAR!!!!
ich poste erstmal die aufgabe, dann meinen ansatz und zum schluss meine programme die ich vorher implementiert habe:
• public findAllWords() ruft die Methoden findWordsHFw(), findWordsHBw(), findWordsVFw() und
schlielich findWordsVBw() auf und gibt am Ende das Ergebnis aus. Diese Methode wird im
Template bereits bereitgestellt. Bitte beachten Sie die Hinweise zur Ausgabe!
Das Format der Ausgabe soll schematisch wie folgt sein, wobei alle mit \..." beginnenden
Zeilen durch die Ausgabe der entsprechenden Methode zu ersetzen sind:
KURZ:ich muss hier ein wortsuchspiel implementieren, welches zuerst ein zweidimensionales array konsumiert und die vermeitlich gefunden worte
mein ansatz:
Und nun der ganze code:
VORAB, ICH BIN ÜBER JEDE HILFE SEHR DANKBAR!!!!
ich poste erstmal die aufgabe, dann meinen ansatz und zum schluss meine programme die ich vorher implementiert habe:
• public findAllWords() ruft die Methoden findWordsHFw(), findWordsHBw(), findWordsVFw() und
schlielich findWordsVBw() auf und gibt am Ende das Ergebnis aus. Diese Methode wird im
Template bereits bereitgestellt. Bitte beachten Sie die Hinweise zur Ausgabe!
Das Format der Ausgabe soll schematisch wie folgt sein, wobei alle mit \..." beginnenden
Zeilen durch die Ausgabe der entsprechenden Methode zu ersetzen sind:
Java:
...findWordsHFw()
...findWordsHBw()
...findWordsVFw()
...findWordsVBw()
SUMMARY
Words found:
...Liste aller gefundenen Woerter in Reihenfolge des String[]
Words not found:
...Liste aller nicht gefundenen Woerter in Reihenfolge des String[]
KURZ:ich muss hier ein wortsuchspiel implementieren, welches zuerst ein zweidimensionales array konsumiert und die vermeitlich gefunden worte
mein ansatz:
Java:
public String findAllWords() {
StringBuilder result = new StringBuilder();
result.append(findWordsHFw().toString()+ "\n" + findWordsHBw().toString()+ "\n" +
findWordsVBw().toString() + "\n" + findWordsVFw().toString());
return null; // bitte ersetzen; nur Platzhalter um Compile-Fehler zu
// vermeiden
}
Und nun der ganze code:
Java:
/**
* @author Nossair Ouladali
* @version
*/
public class FindHiddenWords {
char[][] searchThis;
String[] hiddenWords;
public FindHiddenWords(char[][] searchThis, String[] hiddenWords) {
this.searchThis = searchThis;
this.hiddenWords = hiddenWords;
}
public String findAllWords() {
// bitte implementieren
return null; // bitte ersetzen; nur Platzhalter um Compile-Fehler zu
// vermeiden
}
public StringBuilder findWordsHFw() {
StringBuilder result = new StringBuilder();
for (int i = 0; i < searchThis.length; i++) {
String s = "";
for (int j = 0; j < searchThis[i].length; j++) {
s += searchThis[i][j];
}
for (int k = 0; k < hiddenWords.length; k++) {
if (s.contains(hiddenWords[k])) {
result.append("FOUND " + "'" + hiddenWords[k] + "'"
+ "at row " + i + ", column "
+ s.indexOf(hiddenWords[k])
+ " orientation horizontal forwards \n");
}
}
}
return result;
}
public StringBuilder findWordsHBw() {
StringBuilder result = new StringBuilder();
for (int i = 0; i < searchThis.length; i++) {
String s = "";
for (int j = 0; j < searchThis[i].length; j++) {
s += searchThis[i][j];
}
for (int k = 0; k <= hiddenWords.length - 1; k++) {
if ((new StringBuilder(s).reverse().toString())
.contains(hiddenWords[k])) {
result.append("FOUND "
+ "'"
+ hiddenWords[k]
+ "'"
+ "at row "
+ i
+ ", column "
+ ((hiddenWords[0].length()) - s
.indexOf(hiddenWords[k]))
+ " orientation horizontal backwards \n");
}
}
}
return result;
}
public StringBuilder findWordsVBw() {
StringBuilder result = new StringBuilder();
for (int i = 0; i < searchThis[0].length; i++) {
String s = "";
for (int j = 0; j < searchThis.length; j++) {
s += searchThis[j][i];
}
for (int k = 0; k < hiddenWords.length; k++) {
if (s.contains(hiddenWords[k])) {
result.append("FOUND " + "'" + hiddenWords[k] + "'"
+ "at row " + i + ", column "
+ s.indexOf(hiddenWords[k])
+ " orientation vertical forwards \n");
}
}
}
return result;
}
public StringBuilder findWordsVFw() {
StringBuilder result = new StringBuilder();
for (int i = 0; i < searchThis[0].length; i++) {
String s = "";
for (int j = 0; j < searchThis.length; j++) {
s += searchThis[j][i];
}
for (int k = 0; k < hiddenWords.length; k++) {
if (new StringBuilder(s).reverse().toString()
.contains(hiddenWords[k])) {
result.append("FOUND "
+ "'"
+ hiddenWords[k]
+ "'"
+ "at row "
+ i
+ ", column "
+ ((hiddenWords[0].length()) - s.indexOf(hiddenWords[k]))
+ " orientation vertical backwards \n");
}
}
}
return result;
}
/**
* the main routine that starts the game
*
* @param args
* command-line arguments, ignored here
*/
public static void main(String[] args) {
// a simple example grid
char[][] matrix = new char[][] { { 'L', 'I', 'O', 'N', 'W', 'B' },
{ 'S', 'H', 'E', 'E', 'P', 'I' },
{ 'C', 'A', 'T', 'S', 'U', 'R' },
{ 'D', 'O', 'G', 'T', 'Z', 'D' } };
// a list of (mostly actual) words "hidden" in the grid
String[] searchFor = new String[] { "BIRD", "CATS", "DOG", "LION",
"NEST", "SHEEP", "NOIL", "RUST", "OAHI", "ZUP", "TEO" };
// create an instance of the game
FindHiddenWords fhw = new FindHiddenWords(matrix, searchFor);
// print the result of "solving the puzzle"
System.out.println(fhw.findAllWords());
}
}