import java.util.*;
public class WordSearch {
private int rows, columns;
private char[][] board;
public WordSearch(int rows, int columns) {
board = new char[rows][columns];
for (int i=0;i<rows;i++) {
for (int j=0;j<columns;j++) {
board[i][j]='$';
}
}
this.rows = rows;
this.columns = columns;
}
public WordSearch() {
this(20,20);
}
public boolean addWordH(int row, int col, String word){
if(row<0||col>columns||col<0||row+word.length()>rows){
return false;
}
for(int i = 0; i<word.length();i++) {
if(board[row][col+i] != '$'&& board[row][col+i] != word.charAt(i)){
return false;
}
}
for(int i = 0; i<word.length();i++) {
board[row][col+i] = word.charAt(i);
}
return true;
}
public boolean addWordV(int row, int col, String word){
if (row<0 || col<0|| col>maxCol || row+word.length()>maxRow)
return false;
for (int i=0; i<word.length(); i++){
if (word.charAt(i) != board[row+i][col] && board[row+i][col] != '$')
return false;
}
for (int j=0; j<word.length(); j++){
board[row+j][col] = word.charAt(j);
}
return true;
}
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;
}
}