Objective IN JAVA AND SHOW OUTPUT AS SHOWN IN EXAMPLE: Write a program that take
ID: 3817330 • Letter: O
Question
Objective IN JAVA AND SHOW OUTPUT AS SHOWN IN EXAMPLE:
Write a program that takes a 5x5 array of characters and detects how many words, 2 to 5 letters in length, can be found. From each letter it is possible to reach every other neighboring letter, but each letter at a given location can only be used once. Check each combination of letters against this simple dictionary.
dictionary file:
https://cse.sc.edu/~shephejj/csce146/Homework/WordFindingGame_files/dict.txt
Example:
Example Dialog:
R A H J M
Y U W W K
R X N F M
Q G E E B
E O A P E
Starting 0 0
Found Word: RAY
Found Word: RAW
Found Word: RUN
Found Word: RUNWAY
Found Word: RUNG
Found Word: RUNGE
Found Word: RUNGE
Found Word: RUNE
Found Word: RUNE
Starting 0 1
Found Word: AR
Found Word: AH
Found Word: AWN
Starting 0 2
Found Word: HA
Found Word: HAY
Found Word: HAW
Found Word: HUN
Found Word: HUNG
Found Word: HUNGRY
Starting 0 3
Starting 0 4
Starting 1 0
Found Word: YAH
Found Word: YAW
Found Word: YAWN
Found Word: YUH
Starting 1 1
Found Word: URGE
Found Word: URGE
Found Word: UN
Starting 1 2
Found Word: WA
Found Word: WAR
Found Word: WARY
Found Word: WAH
Found Word: WAY
Found Word: WU
Starting 1 3
Starting 1 4
Starting 2 0
Found Word: RUN
Found Word: RUNWAY
Found Word: RUNG
Found Word: RUNGE
Found Word: RUNGE
Found Word: RUNE
Found Word: RUNE
Starting 2 1
Starting 2 2
Found Word: NU
Found Word: NW
Found Word: NW
Found Word: NE
Found Word: NEE
Found Word: NEAP
Found Word: NE
Found Word: NEE
Found Word: NEAP
Found Word: NEE
Starting 2 3
Found Word: FM
Found Word: FE
Found Word: FEE
Found Word: FE
Found Word: FEE
Found Word: FEB
Found Word: FEE
Starting 2 4
Found Word: ME
Found Word: MEN
Found Word: MENU
Starting 3 0
Starting 3 1
Found Word: GNU
Found Word: GE
Found Word: GENE
Found Word: GEE
Found Word: GE
Found Word: GO
Found Word: GOA
Found Word: GA
Found Word: GAO
Found Word: GAP
Found Word: GAPE
Found Word: GAPE
Found Word: GAPE
Starting 3 2
Found Word: EX
Found Word: EN
Found Word: ENG
Found Word: EGO
Found Word: EPA
Starting 3 3
Found Word: EN
Found Word: ENG
Found Word: EM
Found Word: EPA
Starting 3 4
Found Word: BMW
Found Word: BE
Found Word: BEN
Found Word: BEE
Found Word: BEEN
Found Word: BEEF
Found Word: BEEP
Found Word: BEE
Found Word: BEEP
Found Word: BP
Found Word: BE
Found Word: BEE
Found Word: BEEN
Found Word: BEEF
Found Word: BEEP
Starting 4 0
Found Word: EGO
Starting 4 1
Starting 4 2
Found Word: AGE
Found Word: AGEE
Found Word: AGE
Found Word: AGO
Found Word: APE
Found Word: APEX
Found Word: APE
Found Word: APE
Starting 4 3
Found Word: PEN
Found Word: PENURY
Found Word: PENURY
Found Word: PEG
Found Word: PEE
Found Word: PEA
Found Word: PEN
Found Word: PENURY
Found Word: PENURY
Found Word: PEE
Found Word: PEA
Found Word: PEE
Found Word: PA
Found Word: PAGE
Found Word: PAGE
Found Word: PEE
Starting 4 4
Found Word: EBEN
Found Word: EPA
Explanation / Answer
import java.io.File;
import java.io.IOException;
import java.util.HashSet;
import java.util.Scanner;
public class SampleProgram {
static HashSet<String> hs;
static boolean visited[][];
static char maze[][];
static void printWords(int i, int j, String gen){
// System.out.println("Gen "+gen);
if(gen.length()>6){
return;
}
visited[i][j] = true;
if(gen.length()>=2&&hs.contains(gen.toLowerCase())){
System.out.println("FOUND WORD : "+gen);
}
if(j-1>=1&&!visited[i][j-1]){
printWords(i,j-1,gen+maze[i][j-1]);
}
if(i-1>=1&&j-1>=1&&!visited[i-1][j-1]){
printWords(i-1,j-1,gen+maze[i-1][j-1]);
}
if(i-1>=1&&!visited[i-1][j]){
printWords(i-1,j,gen+maze[i-1][j]);
}
if(i-1>=1&&j+1<=5&&!visited[i-1][j+1]){
printWords(i-1,j+1,gen+maze[i-1][j+1]);
}
if(j+1<=5&&!visited[i][j+1]){
printWords(i,j+1,gen+maze[i][j+1]);
}
if(i+1<=5&&j+1<=5&&!visited[i+1][j+1]){
printWords(i+1,j+1,gen+maze[i+1][j+1]);
}
if(i+1<=5&&!visited[i+1][j]){
printWords(i+1,j,gen+maze[i+1][j]);
}
if(i+1<=5&&j-1>=1&&!visited[i+1][j-1]){
printWords(i+1,j-1,gen+maze[i+1][j-1]);
}
visited[i][j] = false;
}
public static void main(String[] args) throws IOException {
//Loading all the keywords to the set
hs = new HashSet();
Scanner obj = new Scanner(new File("D:/dict.txt"));
String str;
while (obj.hasNext()) {
hs.add(obj.next().toLowerCase());
}
obj = new Scanner(System.in);
maze = new char[6][6];
for(int i=1;i<=5;i++){
for(int j=1;j<=5;j++){
maze[i][j] = obj.next().charAt(0);
}
}
// visited = new boolean[6][6];
// printWords(1,2,maze[1][2]+"");
for(int i=1;i<=5;i++){
for(int j=1;j<=5;j++){
System.out.println("Starting "+i+" "+j);
visited = new boolean[6][6];
printWords(i,j,maze[i][j]+"");
}
}
}
}
OUTPUT :
R A H J M
Y U W W K
R X N F M
Q G E E B
E O A P E
Starting 1 1
FOUND WORD : RAW
FOUND WORD : RAY
FOUND WORD : RUN
FOUND WORD : RUNWAY
FOUND WORD : RUNE
FOUND WORD : RUNE
FOUND WORD : RUNG
FOUND WORD : RUNGE
FOUND WORD : RUNGE
Starting 1 2
FOUND WORD : AR
FOUND WORD : AH
FOUND WORD : AWN
Starting 1 3
FOUND WORD : HA
FOUND WORD : HAW
FOUND WORD : HAY
FOUND WORD : HUN
FOUND WORD : HUNG
FOUND WORD : HUNGRY
Starting 1 4
Starting 1 5
Starting 2 1
FOUND WORD : YAH
FOUND WORD : YAW
FOUND WORD : YAWN
FOUND WORD : YUH
Starting 2 2
FOUND WORD : UN
FOUND WORD : URGE
FOUND WORD : URGE
Starting 2 3
FOUND WORD : WU
FOUND WORD : WA
FOUND WORD : WAR
FOUND WORD : WARY
FOUND WORD : WAH
FOUND WORD : WAY
Starting 2 4
Starting 2 5
Starting 3 1
FOUND WORD : RUN
FOUND WORD : RUNWAY
FOUND WORD : RUNE
FOUND WORD : RUNE
FOUND WORD : RUNG
FOUND WORD : RUNGE
FOUND WORD : RUNGE
Starting 3 2
Starting 3 3
FOUND WORD : NU
FOUND WORD : NW
FOUND WORD : NW
FOUND WORD : NE
FOUND WORD : NEE
FOUND WORD : NEE
FOUND WORD : NEAP
FOUND WORD : NE
FOUND WORD : NEE
FOUND WORD : NEAP
Starting 3 4
FOUND WORD : FM
FOUND WORD : FE
FOUND WORD : FEE
FOUND WORD : FEB
FOUND WORD : FEE
FOUND WORD : FE
FOUND WORD : FEE
Starting 3 5
FOUND WORD : ME
FOUND WORD : MEN
FOUND WORD : MENU
Starting 4 1
Starting 4 2
FOUND WORD : GNU
FOUND WORD : GE
FOUND WORD : GENE
FOUND WORD : GEE
FOUND WORD : GA
FOUND WORD : GAO
FOUND WORD : GAP
FOUND WORD : GAPE
FOUND WORD : GAPE
FOUND WORD : GAPE
FOUND WORD : GO
FOUND WORD : GOA
FOUND WORD : GE
Starting 4 3
FOUND WORD : EGO
FOUND WORD : EX
FOUND WORD : EN
FOUND WORD : ENG
FOUND WORD : EPA
Starting 4 4
FOUND WORD : EN
FOUND WORD : ENG
FOUND WORD : EM
FOUND WORD : EPA
Starting 4 5
FOUND WORD : BE
FOUND WORD : BEE
FOUND WORD : BEEN
FOUND WORD : BEEF
FOUND WORD : BEEP
FOUND WORD : BEN
FOUND WORD : BEE
FOUND WORD : BEEP
FOUND WORD : BMW
FOUND WORD : BE
FOUND WORD : BEE
FOUND WORD : BEEN
FOUND WORD : BEEF
FOUND WORD : BEEP
FOUND WORD : BP
Starting 5 1
FOUND WORD : EGO
Starting 5 2
Starting 5 3
FOUND WORD : AGE
FOUND WORD : AGEE
FOUND WORD : AGO
FOUND WORD : AGE
FOUND WORD : APE
FOUND WORD : APEX
FOUND WORD : APE
FOUND WORD : APE
Starting 5 4
FOUND WORD : PA
FOUND WORD : PAGE
FOUND WORD : PAGE
FOUND WORD : PEG
FOUND WORD : PEN
FOUND WORD : PENURY
FOUND WORD : PENURY
FOUND WORD : PEE
FOUND WORD : PEA
FOUND WORD : PEE
FOUND WORD : PEN
FOUND WORD : PENURY
FOUND WORD : PENURY
FOUND WORD : PEE
FOUND WORD : PEA
FOUND WORD : PEE
Starting 5 5
FOUND WORD : EPA
FOUND WORD : EBEN
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.