+1443 776-2705 panelessays@gmail.com
  

Question Description

I’m working on a Java project and need support to help me study.

Use this code for part 2 of the assignment(I already did part 1).

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Scanner;
import java.io.InputStreamReader;
import java.io.IOException;

public class WordSearch {
public static void main(String[] args) {

testReadDictionary();
testReadWordSearch();

}
/**
* Opens and reads a dictionary file returning a list of words.
* Example:
* dog
* cat
* turtle
* elephant
*
* If there is an error reading the file, such as the file cannot be found,
* then the following message is shown:
* Error: Unable to read file <dictionaryFilename>
* with <dictionaryFilename> replaced with the parameter value.
*
* @param dictionaryFilename The dictionary file to read.
* @return An ArrayList of words.
*/
public static ArrayList<String> readDictionary(String dictionaryFilename) {
//FILL IN BODY
ArrayList<String> animals = new ArrayList<>();

FileInputStream filestream;
try {
filestream = new FileInputStream(dictionaryFilename);
BufferedReader br = new BufferedReader(new InputStreamReader(filestream));

String str = br.readLine();

while (str != null) {

animals.add(str);

str = br.readLine();
}

br.close();

} catch (FileNotFoundException e) {
System.out.println(” Unable to read file ” + dictionaryFilename);

} catch (IOException e) {

e.printStackTrace();
}

return animals;

}

/**
* Opens and reads a wordSearchFileName file returning a block of characters.
* Example:
* jwufyhsinf
* agzucneqpo
* majeurnfyt
*
* If there is an error reading the file, such as the file cannot be found,
* then the following message is shown:
* Error: Unable to read file <wordSearchFileName>
* with <wordSearchFileName> replaced with the parameter value.
*
* @param wordSearchFileName The dictionary file to read.
* @return A 2d-array of characters representing the block of letters.
*/
public static char[][] readWordSearch(String wordSearchFileName) {

ArrayList<String> words = new ArrayList<>();

FileInputStream filestream;
try {
filestream = new FileInputStream(wordSearchFileName);
BufferedReader br = new BufferedReader(new InputStreamReader(filestream));

String str = br.readLine();

while (str != null) {

words.add(str);

str = br.readLine();
}

br.close();

} catch (FileNotFoundException e) {
System.out.println(” Unable to read file ” + wordSearchFileName);

} catch (IOException e) {

e.printStackTrace();
}

char[][] charWords = new char[words.size()][];

for (int i = 0; i < words.size(); i++) {

charWords[i] = words.get(i).toCharArray();
}

return charWords;
}

public static void testReadDictionary() {
//ADD TEST CASES
ArrayList dictionaryWords;

System.out.println(“Positive Test Case for Dictionary Serach”);
String dictionaryFilePath = “C:dictionary.txt”;
dictionaryWords = readDictionary(dictionaryFilePath);
System.out.println(“Number of words found : “+dictionaryWords.size());
System.out.println(“They are : “+dictionaryWords.toString());

System.out.println(“nNegative Test Case for Dictionary Serach”);
dictionaryFilePath = “dictionaryDummy.txt”;
dictionaryWords = readDictionary(dictionaryFilePath);
}

public static void testReadWordSearch() {
//ADD TEST CASES
char[][] wordsList;

System.out.println(“nnPositive Test Case for Word Serach”);
String wordFilePath = “C:wordsearch.txt”;
wordsList = readWordSearch(wordFilePath);
System.out.println(“Number of words found : “+wordsList.length);

System.out.println(“nNegative Test Case for Word Serach”);
wordFilePath = “C:wordsearchDummy.txt”;
wordsList = readWordSearch(wordFilePath);
}

/**
* Looks horizontally for the word in the word search, starting at
* the given position. If the given position matches the first
* character of word, look for the rest of the word characters
* in the indexes to the right and left
*
* @param word The word to look for.
* @param wordSearch The grid of characters to search through
* @param i The row to start searching at
* @param j The column to start searching at
* @return true if the word was found, false if not.
*/
public static boolean searchHorizontal(String word, char[][] wordSearch, int i, int j) {
//TODO: Implement

return false;
}

/**
* Looks vertically for the word in the word search, starting at
* the given position. If the given position matches the first character of
* word, look for the rest of the word characters in the indexes above and below
*
* @param word The word to look for.
* @param wordSearch The grid of characters to search through
* @param i The row to start searching at
* @param j The column to start searching at
* @return true if the word was found, false if not.
*/
public static boolean searchVertical(String word, char[][] wordSearch, int i, int j) {
//TODO: Implement
return false;
}

/**
* Looks diagonally (up-left, up-right, down-left and down-right) for the word in the
* word search, starting at the given position. If the given position matches
* the first character of the word, look for the rest of the word
* characters in the four diagonal directions.
*
* @param word The word to look for.
* @param wordSearch The grid of characters to search through
* @param i The row to start searching at
* @param j The column to start searching at
* @return true if the word was found, false if not.
*/
public static boolean searchDiagonal(String word, char[][] wordSearch, int i, int j) {
//TODO: Implement
return false;
}

public static void testSearchHorizontal() {
//ADD TEST CASES
}

public static void testSearchVertical() {
//ADD TEST CASES
}

public static void testSearchDiagonal() {
//ADD TEST CASES
}
}

Use this code below for part 3(I already did part 1).

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Scanner;
import java.util.Arrays;
import java.util.Collections;

public class WordSearch {

public static void main(String[] args) {
Scanner userInput = new Scanner(System.in);
System.out.println(“Enter the wordSearch file name”);
String wordSearchFile = userInput.next();

//Use scanner to read in the word search file name

}

/**
* Given the name of a dictionary file, and the name of the word search file, this
* will solve the word search by finding all of the words listed in the dictionary file.
*
* Duplicates should not be returned.
*
* @param dictionaryName The dictionary file to read.
* @param wordsearchName The file containing the word search.
* @return An ArrayList of words found.
*/
public static ArrayList<String> searchForWords(String dictionaryFileName, String wordSearchFileName){

//IMPLEMENT

return null;
}

/** Given the name of a list, print the words in the list onto an output file
* named “wordsfound.txt”
*
* @param foundWords an ArrayList of words found
*/
public static void printWordsFound(ArrayList<String> foundWords){

//IMPLEMENT

}

public static void testSearchForWords(String wordSearchFileName, String answersFileName){

//IMPLEMENT

}

public static void testPrintWordsFound(String wordsFoundFileName){

//IMPLEMENT

}
}