Wortsuchspiel programmieren

altair

Mitglied
Hallo liebe User,

ich bin neu im forum und ebenfalls ein neuling in java.
von der uni aus haben wir als erstes mit Drracket (funktionale programmiersprache programmiert).
Deswegen fällt es mir sehr schwer, in java (objektorientiert) zu denken.. :(

nun lernen wir in der uni java und dazu gab es als erste hausübungen natürlich ein wortsuchspiel (mein prof ist da etwas übermotiviert)

Zur aufgabe:

wir sollen eine art "wortsuchspiel" implementieren

Dazu werden zwei arrays, einmal typ char [] [] und typ string [] angelegt
beim ersteren müsst ihr das euch so ungefähr vorstellen:

LIONWB
SHEEPI
CATSUR
DOGTZD

letzteres enthält die worte, die wir vermuten im wortgitter vorzufinden

meine ersten aufgaben ist nun:

public StringBuilder ndWordsHFw() soll das Wortgitter nach horizontal (waagrecht) in normaler
Leserichtung geschriebenen Worten durchsuchen. So wurde in dem obenstehenden Beispiel
etwa das Wort LION in Zeile 0, Spalte 0 gefunden.
Diese und die folgenden Methoden geben jeweils einen StringBuilder zuruck. Dieser soll fur
jedes gefundene Wort in dieser Methode exakt eine wie folgt aufgebaute Ausgabe haben.
Dabei endet jede Zeile mit einem Zeilenvorschub ("nn"), wobei fur (exakt) ein Leerzeichen
steht:
Found 'LION' at row 0, column 0 orientation horizontal forwards
Bei den anderen Methoden sind die beiden letzten Worter jeweils passend zu ersetzen, wie
dort beschrieben.

meine Idee war nun, dass ich versuche, mit zwei for-schleifen einmal die einzelnen char-elemente mit dem ersten string (indem ich den string in einzlene buchstabe zerlege) vergleiche und schaue, ob diese identisch ist

problem: da es horizontal ist, kann ich mir denken dass ich anscheinend bei der for-schleife zuerst char [0] anfangen muss, nun weiß ich aber nicht was er dann machen soll wenn er auf die zweite zeile übergehen soll

problem 2: was tun wenn das erste wort nicht dem ersten horizontalen char entspricht?
rekursion gibt es in java ja nicht wirklch, bzw wird nicht oft benutzt

problem 3: wie kann ich es dann machen, dass die restlichen worte im string auch noch verglichen werden


ICH BIN ÜBER JEDE HILFE MEHR ALS NUR DANKBAR!!!

Java:
/**
 * 
 * @author 
 * @version
 */
public class FindHiddenWords {
  
  public FindHiddenWords(char[][] searchThis, String[] hiddenWords) {
    //TODO bitte implementieren
  }
  
  public String findAllWords() {
    //TODO bitte implementieren
    return null; // bitte ersetzen; nur Platzhalter um Compile-Fehler zu vermeiden
  }
  
  public StringBuilder findWordsHFw() {
    //TODO bitte implementieren
    return null; // bitte ersetzen; nur Platzhalter um Compile-Fehler zu vermeiden
  }
  
  public StringBuilder findWordsHBw() {
    //TODO bitte implementieren
    return null; // bitte ersetzen; nur Platzhalter um Compile-Fehler zu vermeiden
  }

  public StringBuilder findWordsVBw() {
    //TODO bitte implementieren
    return null; // bitte ersetzen; nur Platzhalter um Compile-Fehler zu vermeiden
  }

  public StringBuilder findWordsVFw() {
    //TODO bitte implementieren
    return null; // bitte ersetzen; nur Platzhalter um Compile-Fehler zu vermeiden
  }

  /**
   * 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());
  }
}
 

eMmiE

Bekanntes Mitglied
Meine Idee:
Alle Characters einer Zeile, SPalte, was auch immer du suchst in einen String zusammenschreiben und dann:

Code:
import java.util.regex.*;


public class wordsearch {    
  public static void main(String[] args) {
    String in = "aaaHalloaefasef";
    Pattern p = Pattern.compile(".*Hallo.*");
    Matcher m = p.matcher("Hallo");
    boolean b = m.matches();
    System.out.println(b); //-> true
  }     
}

Der guckt dann erstmal ob das Wort vorkommt, danach kannst du einfach alle Character durchgehen

Gruß eMmiE
 

altair

Mitglied
Erstmal vielen Dank für deine Antwort!

Die idee finde ich ziemlich gut!

Aber leider verstehe ich nicht ganz alle befehle die du da aufgeschrieben hast
Könntest du bspw. mir bitte zeigen wie ich das wort "affe" im string "asdasdnjaffedasdas" finden kann?

und wie kriege ich denn die länge des arrays, undzwar auf horizontaler ebene
 
Zuletzt bearbeitet:

eMmiE

Bekanntes Mitglied
Code:
public boolean enthalten(String in) {
String zuSuchendesWort = "affe";
Pattern p = Pattern.compile(".*"+zuSuchendesWort+".*");
Mather m = p.matcher(in);
boolean b = m.matches();
System.out.println(b);
}

Bsp.: "agöjkasgöjlnasgöjlasgöbjaffeöäanögljnaseögfkljbaseefj" -> true

Code:
public int wo(String in, String suchWort) {
for (int i = 0;i < in.length;i++) {
  if ((in.charAt(i)+"").equals(suchWort.substring(0,1))) {
    boolean found = true;
    for (int j = 1;j < suchWort.length;j++) {
      if (!(in.charAt(i+j)+"").equals(suchWort.substring(j,j+1))) {
        found = false;
      }
    }

  if (found) {
    return i;
  }
}

P.S.: Keine Garantie
}
 

altair

Mitglied
So, dank deiner Hilfe bin ich schonmal so weit:

Java:
/**
 * 
 * @author
 * @version
 */
public class FindHiddenWords {

	char[][] searchThis;
	String[] hiddenWords;

	public FindHiddenWords(char[][] searchThis, String[] hiddenWords) {
		this.searchThis = searchThis;
		this.hiddenWords = hiddenWords;
	}

	public String findAllWords() {
		for (int i = 0; i <= searchThis[0].length - 1; i++) {
			String s = String.valueOf(searchThis[i]);

			for (int x = 0; x <= hiddenWords[0].length(); x++) {

				if (s.contains(hiddenWords[x])) {
					System.out.println("TOLL");
				}

			}

		}

		// TODO bitte implementieren
		return null; // bitte ersetzen; nur Platzhalter um Compile-Fehler zu
						// vermeiden
	}

	public StringBuilder findWordsHFw() {
		// TODO bitte implementieren
		return null; // bitte ersetzen; nur Platzhalter um Compile-Fehler zu
						// vermeiden
	}

	public StringBuilder findWordsHBw() {
		// TODO bitte implementieren
		return null; // bitte ersetzen; nur Platzhalter um Compile-Fehler zu
						// vermeiden
	}

	public StringBuilder findWordsVBw() {
		// TODO bitte implementieren
		return null; // bitte ersetzen; nur Platzhalter um Compile-Fehler zu
						// vermeiden
	}

	public StringBuilder findWordsVFw() {
		// TODO bitte implementieren
		return null; // bitte ersetzen; nur Platzhalter um Compile-Fehler zu
						// vermeiden
	}

	/**
	 * 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());
	}
}

ich muss nur noch versuchen, dass er jeweils die exakte zeile, und nicht Toll ausgibt
 
Zuletzt bearbeitet:


Schreibe deine Antwort... und nutze den </> Button, wenn du Code posten möchtest...
Ähnliche Java Themen
  Titel Forum Antworten Datum
A GUI bequemer programmieren? Java Basics - Anfänger-Themen 6
N Hey Leute und zwar versuche ich gerade ein 2D Spiel zu Programmieren aber die Figur will sich nicht nach links oder rechts bewegen :( Java Basics - Anfänger-Themen 12
B OOP was heißt objektorientiertes Programmieren (fragt ein absoluter Anfänger) Java Basics - Anfänger-Themen 17
laxla123 Rechteck programmieren Java Basics - Anfänger-Themen 4
A Erste Schritte Dynamische Stempel im PDF Exchange programmieren Java Basics - Anfänger-Themen 0
D Programmieren nach UML Java Basics - Anfänger-Themen 2
Y Taschenrechner programmieren Java Basics - Anfänger-Themen 3
B Überweisung programmieren Java Basics - Anfänger-Themen 7
bluetrix Programmieren eines Bots für Zahlen-Brettspiel Java Basics - Anfänger-Themen 9
D Ampel Programmieren die jede 10 sekunden ihre farbe wechselt Java Basics - Anfänger-Themen 6
J ArrayList add methode selbst programmieren Java Basics - Anfänger-Themen 10
00111010101 Objektorientiertes Programmieren mit Vererbung (Zahlen in Array verschwinden) Java Basics - Anfänger-Themen 3
thor_norsk Fernseher programmieren mit Java Java Basics - Anfänger-Themen 4
M Jenga Regeln Java Programmieren Java Basics - Anfänger-Themen 1
M Ressourcensparend programmieren Java Basics - Anfänger-Themen 3
brypa Wie Programmieren lernen? Java Basics - Anfänger-Themen 15
G Spielerwechsel programmieren Java Basics - Anfänger-Themen 1
J Solitär (Brettspiel) programmieren Java Basics - Anfänger-Themen 3
H Objektorientiertes Programmieren Java Basics - Anfänger-Themen 4
K 12- Stunden Konverter Programmieren Java Basics - Anfänger-Themen 1
WAB9703-04 Programm zum automatischen Ausfüllen von Formularen programmieren Java Basics - Anfänger-Themen 3
L Zahlenspiel programmieren Java Basics - Anfänger-Themen 1
TimoN11 Automat programmieren Java Basics - Anfänger-Themen 4
G Erste Schritte Array Mittelwert Methode Programmieren Java Basics - Anfänger-Themen 5
ehmo würfelspiel programmieren anfänger Java Basics - Anfänger-Themen 1
N Ufospiel programmieren Java Basics - Anfänger-Themen 13
KogoroMori21 Vorbereitung auf die Programmieren Klausur vom ersten Semester Java Basics - Anfänger-Themen 4
Drinkerbell Erste Schritte Zu blöd zum Programmieren? Java Basics - Anfänger-Themen 9
G Stack programmieren Java Basics - Anfänger-Themen 6
I Brauche Hilfe bei Objektorientiertem programmieren Java Basics - Anfänger-Themen 23
T Auf einem Schachbrett bewegen programmieren Java Basics - Anfänger-Themen 2
G Bruchrechner programmieren Java Basics - Anfänger-Themen 6
G Ufo Spiel programmieren Java Basics - Anfänger-Themen 13
D Schachbrett (8x8) programmieren Java Basics - Anfänger-Themen 3
J Spiel programmieren Java Basics - Anfänger-Themen 16
J Hilfe beim Programmieren Java Basics - Anfänger-Themen 5
S Kreisberechnung3 Buch: Programmieren lernen mit Java von Hans-Peter Habelitz Java Basics - Anfänger-Themen 39
M Quiz in Java programmieren mit Array Java Basics - Anfänger-Themen 8
S Spiel-Programmieren. Wenn ein Objekt den anderen berührt. Java Basics - Anfänger-Themen 6
K Java programmieren Java Basics - Anfänger-Themen 6
V_Fynn03 Kontrolle des Quelltextes (Bank programmieren)(GUI) Java Basics - Anfänger-Themen 6
D Was tun gegen zu komplzierten Denken beim Programmieren Java Basics - Anfänger-Themen 27
V_Fynn03 Bruchrechner programmieren (2 Klassen) Java Basics - Anfänger-Themen 9
N Ticketautomat programmieren Java Basics - Anfänger-Themen 63
M Rechner programmieren Java Basics - Anfänger-Themen 3
V_Fynn03 Java Bruchrechner programmieren Java Basics - Anfänger-Themen 13
J Java Suchfunktion Programmieren Java Basics - Anfänger-Themen 1
L Erste Schritte Bin ich "zu dumm" oder nicht geeignet zum Programmieren? Java Basics - Anfänger-Themen 3
U Ist jemad gut in programmieren (JAVA) und kann mir helfen? Java Basics - Anfänger-Themen 1
H Uhr programmieren Java Basics - Anfänger-Themen 10
T Schalter programmieren Java Basics - Anfänger-Themen 17
S Ampel Programmieren Java Basics - Anfänger-Themen 5
P Erste Schritte Probleme mit dem Programmieren Java Basics - Anfänger-Themen 12
D Richtig für Programmieren an der UNI lernen Java Basics - Anfänger-Themen 8
B Folgende Abfrage dynamisch programmieren? Java Basics - Anfänger-Themen 8
D Beim Programmieren auf die Logisch einfache Lösung kommen. Java Basics - Anfänger-Themen 17
B UML Klassen Diagramm zu Java Code Programmieren und ausführen Java Basics - Anfänger-Themen 21
steven789hjk543 Kann man mit Java und Eclipse einen Virus programmieren? Java Basics - Anfänger-Themen 13
S Spiel programmieren mit Java Java Basics - Anfänger-Themen 11
A Kalender programmieren, ich finde meinen Fehler nicht. Java Basics - Anfänger-Themen 9
S Erste Schritte Hilfe beim lernen von Programmieren Java Basics - Anfänger-Themen 2
V Zeichenkette programmieren Java Basics - Anfänger-Themen 20
O Fenster programmieren Java Basics - Anfänger-Themen 2
R Uebersichtlicher bzw. besser Programmieren Java Basics - Anfänger-Themen 13
N Dynamisches Programmieren/Fibonacci Java Basics - Anfänger-Themen 1
B Spielfiguren für ein Beute-Jägerspiel programmieren Java Basics - Anfänger-Themen 12
A Programmieren lernen Java Basics - Anfänger-Themen 28
F ArrayListe manuell programmieren? Java Basics - Anfänger-Themen 24
X Erste Schritte Einstieg ins Programmieren Java Java Basics - Anfänger-Themen 2
O Erste Schritte ln(1+x) Reihe Programmieren Java Basics - Anfänger-Themen 6
Ellachen55 Weihnachtsbaum in Eclipse programmieren Java Basics - Anfänger-Themen 6
L Klassen Geldrückgabe - Aufgabe Programmieren Java Basics - Anfänger-Themen 23
H Stern Dreieck (Buch: Grundkurs Programmieren) Java Basics - Anfänger-Themen 2
V Variablen Vorkommen programmieren Java Basics - Anfänger-Themen 18
S Dreieckssignal programmieren Java Basics - Anfänger-Themen 5
K Fehler beim Programmieren von TicTacToe Java Basics - Anfänger-Themen 12
M Spiel programmieren Java Basics - Anfänger-Themen 16
A Fenster programmieren Java Basics - Anfänger-Themen 1
V OOP Kassensystem objektorientiert programmieren Java Basics - Anfänger-Themen 15
A Erste Schritte DoodleJump programmieren: Kollisionsabfrage Java Basics - Anfänger-Themen 4
CT9288 Kleine Simulation programmieren, denkanstöße erbeten Java Basics - Anfänger-Themen 19
H Welche IDE zum Buch "Programmieren mit Java" von Reinhard Schiedermeier des Verlags Pearson Studium Java Basics - Anfänger-Themen 19
D Könnt ihr mir helfen beim Programmieren eines Ping Pong Spieles? Java Basics - Anfänger-Themen 9
M Rekursive Methode Programmieren Java Basics - Anfänger-Themen 3
I Spielbrett programmieren: Datenstruktur Java Basics - Anfänger-Themen 3
G Rekursives Programmieren --> harmonische Reihe Java Basics - Anfänger-Themen 3
A Endlich anfangen mit Programmieren ! Java Basics - Anfänger-Themen 8
L Karawane programmieren Java Basics - Anfänger-Themen 0
kokojamboo92 Spiel programmieren Java Basics - Anfänger-Themen 1
E Mastermind programmieren, wie den falschen Platz aber richtige Farbe schecken? Java Basics - Anfänger-Themen 23
steven789hjk543 Erste Schritte java programmieren/ Schritt für Schritt Java Basics - Anfänger-Themen 14
I Spiel programmieren. Java Basics - Anfänger-Themen 16
H [Studium] Mäxchenspiel programmieren Java Basics - Anfänger-Themen 10
C BlueJ Zahlenschloss programmieren Java Basics - Anfänger-Themen 5
steven789hjk543 mit dem Smartphone java programmieren Java Basics - Anfänger-Themen 44
F Okjektorientiert programmieren Java Basics - Anfänger-Themen 2
S OOP Ticketsystem programmieren Java Basics - Anfänger-Themen 6
P Selber Programmieren lernen oder Uni? Java Basics - Anfänger-Themen 12
P Kasse programmieren Java Basics - Anfänger-Themen 12
D Timer programmieren Java Basics - Anfänger-Themen 13

Ähnliche Java Themen

Neue Themen


Oben