import java.util.*; public class WordSearch { private char[][] board; public WordSearch(int rows, int cols) { board = new char[rows][cols]; for (int i=0;i<rows;i++) for (int j=0;j<cols;j++) board[i][j]='-'; } public WordSearch() { this(20,20); } public String toString() { String s = ""; for (int i=0;i<board.length;i++) { for (int j=0;j<board[i].length;j++) { s=s+board[i][j]; } s=s+"\n"; } return s; } public boolean addWordH (int row,int col,String word) { if (row>board.length||col>board[0].length||(row+word.length())>board.length){ return false; } for (int i = 0; i<word.length(); i++){ if (!(("" + word.charAt(i)).equals ( "" + board[row][col+i])) && !(( ("" + board[row][col+i])).equals( "-"))){ return false; } } for (int j=0; j<word.length(); j++){ board[row][col + j]= word.charAt(j); } return true; } public boolean addWordV (int row, int col, String word){ if (row>board.length||col>board[0].length||(col+word.length())>board[0].length){ return false; } for (int i = 0; i<word.length(); i++){ if (!(("" + word.charAt(i)).equals ( "" + board[row+i][col])) && !(( ("" + board[row+i][col])).equals( "-"))){ return false; } } for (int j=0; j<word.length(); j++){ board[row+j][col]= word.charAt(j); } return true; } public boolean addWordHback (int row,int col,String word) { if (row>board.length||col>board[0].length||(row-word.length())<0){ return false; } for (int i = 0; i<word.length(); i++){ if (!(("" + word.charAt(i)).equals ("" + board[row][col-i])) && !(( ("" + board[row][col-i])).equals("-"))){ return false; } } for (int j=0; j<word.length(); j++){ board[row][col - j]= word.charAt(j); } return true; } public boolean addWordVup (int row, int col, String word){ if (row>board.length||col>board[0].length||(col-word.length())<0){ return false; } for (int i = 0; i<word.length(); i++){ if (!(("" + word.charAt(i)).equals ( "" + board[row-i][col])) && !(( ("" + board[row-i][col])).equals( "-"))){ return false; } } for (int j=0; j<word.length(); j++){ board[row-j][col]= word.charAt(j); } return true; } }