7

I've got this code:

\begin{table}
\begin{tabular}{|l|l|l|l|l|l|l|l|}
\hline
A & R & R & A & N & G & E & V \\ \hline
C & A & N & C & E & L & M & O \\ \hline
H & B & Y & H & A & V & E & D \\ \hline
A & O & E & E & I & G & P & I \\ \hline
N & O & S & C & L & F & N & T \\ \hline
G & K & T & K & P & E & L & A \\ \hline
E & R & O & O & C & T & K & L \\ \hline
T & M & F & A & E & S & R & K \\ \hline
\end{tabular}
\end{table}

I want to draw the solutions of this puzzle. How can I do it? For instance, "arrange" and "cancel" are both solutions of this puzzle. Thanks

4
  • It is unclear, what are you expecting. Probably not how to write solutions that you kow. On the other hand, probably not to solve a puzzle by LaTeX? Nov 22, 2013 at 21:16
  • I only want ta draw a line around each solution, i.e. i want to draw the solved puzzle
    – Tobal
    Nov 22, 2013 at 21:18
  • What is a solution to this puzzle? What is the goal?
    – Sigur
    Nov 22, 2013 at 21:25
  • It's irrelevant, the goal is finding 8 english verbs. I only want to know how to mark the solutions, only that.
    – Tobal
    Nov 22, 2013 at 21:35

4 Answers 4

11

TikZ solution :)

Code

\documentclass[border=5pt]{standalone}

\usepackage{tikz}
\usetikzlibrary{matrix,backgrounds}

\begin{document}

\begin{tikzpicture}
  \matrix(m)[
    matrix of nodes,
    every node/.append style={minimum size=5ex},
  ]{
    A & R & R & A & N & G & E & V \\
    C & A & N & C & E & L & M & O \\
    H & B & Y & H & A & V & E & D \\
    A & O & E & E & I & G & P & I \\
    N & O & S & C & L & F & N & T \\
    G & K & T & K & P & E & L & A \\
    E & R & O & O & C & T & K & L \\
    T & M & F & A & E & S & R & K \\
  };
  \begin{scope}[on background layer]
    \draw[rounded corners,red,fill=red!20](m-1-1.north west)rectangle(m-1-7.south east);
  \end{scope}
\end{tikzpicture}
\end{document}

Output

enter image description here


Update

Based on OP's answer, I define the following macro:

\newcommand\highlight[3][blue!50]{
  \fill[#1](m-#2.north west)rectangle(m-#3.south east);
}

that can be used to highlight the solutions. It takes 3 arguments

  1. first optional argument sets the highlighting color (default is 50% blue mixed with 50% white)
  2. second argument gives the location of the begin cell at row i column j, in the form i-j
  3. third argument gives the location of the end cell (note that the end cell should always be either to the right or below the begin cell)

Code

\begin{tikzpicture}
  \matrix(m)[
    matrix of nodes,
    every node/.append style={draw,minimum size=5ex},
  ]{
    A & R & R & A & N & G & E & V \\
    C & A & N & C & E & L & M & O \\
    H & B & Y & H & A & V & E & D \\
    A & O & E & E & I & G & P & I \\
    N & O & S & C & L & F & N & T \\
    G & K & T & K & P & E & L & A \\
    E & R & O & O & C & T & K & L \\
    T & M & F & A & E & S & R & K \\
  };

  \begin{scope}[on background layer]
    \highlight[red!20]{1-1}{1-7}
    \highlight[purple!20]{2-1}{2-6}
    \highlight{6-1}{8-1}
    \highlight[yellow]{5-8}{8-8}
  \end{scope}
\end{tikzpicture}

Output

enter image description here

5
  • @Tobal: You're welcome. I updated the answer by including a macro that will help with the highlighting, now that I see the effect you're after.
    – Herr K.
    Nov 22, 2013 at 22:44
  • Thanks, What happens if one of the solution was a diagonal solution?
    – Tobal
    Nov 23, 2013 at 8:41
  • @Tobal: In that case, I'm afraid one would have to do the highlighting manually, at least based on my solution. A \foreach loop may simplify things a bit: for example, \foreach \i/\j in {3/4,4/5} {\highlight[green]{\i-\j}{\i-\j}} would highlight the word "HI".
    – Herr K.
    Nov 23, 2013 at 9:44
  • @Tobal: One more example. \foreach \i/\j in {6/3,7/4,8/5} {\highlight{\i-\j}{\i-\j}} would highlight the word "TOE". As you can see, the pair of numbers i/j in {6/3,7/4,8/5} refer to cells given by row-i and column-j, which are to be highlighted.
    – Herr K.
    Nov 23, 2013 at 9:59
  • Ok, good, I thought if i change rectangle for diagonal it works, but not. Thanks again ;-)
    – Tobal
    Nov 23, 2013 at 11:14
5

You can better use \cellcolor instead of \colorbox

\documentclass{article}
\usepackage[table]{xcolor}
\usepackage{graphicx}
\definecolor{mycolor}{rgb}{0,0,10}
\newcommand{\mycell}[1]{\cellcolor{mycolor!30}{#1}}
\begin{document}
\textbf{\underline{VOCABULARY}} collocations
\textbf{1A Find six more verbs in the word square.}
\begin{table}[!h]
    \centering
    \begin{tabular}{|l|l|l|l|l|l|l|l|}
    \hline
    \mycell{A} & \mycell{R} & \mycell{R} & \mycell{A} & \mycell{N} & \mycell{G} & \mycell{E} & V \\ \hline
    \mycell{C} & \mycell{A} & \mycell{N} & \mycell{C} & \mycell{E} & \mycell{L} & M & O \\ \hline
    H & \mycell{B} & Y & \mycell{H} & \mycell{A} & \mycell{V} & \mycell{E} & D \\ \hline
    A & \mycell{O} & E & \mycell{E} & I & G & P & I \\ \hline
    N & \mycell{O} & S & \mycell{C} & L & F & N & \mycell{T} \\ \hline
    \mycell{G} & \mycell{K} & T & \mycell{K} & P & E & L & \mycell{A} \\ \hline
    \mycell{E} & R & O & O & C & T & K & \mycell{L} \\ \hline
    \mycell{T} & M & F & A & E & S & R & \mycell{K} \\ \hline
    \end{tabular}
\end{table}
\end{document}

enter image description here

Changing \definecolor{mycolor}{rgb}{0,0,10} to \definecolor{mycolor}{rgb}{256,256,256} gives only the puzzle without answer:

enter image description here

4

Never mind, I've found an easy way though it is not the usual way. Here's the code:

\usepackage{xcolor}
\usepackage{graphicx}

\begin{document}
\textbf{\underline{VOCABULARY}} collocations
\textbf{1A Find six more verbs in the word square.} 
\begin{table}[!h]
    \centering
    \begin{tabular}{|l|l|l|l|l|l|l|l|}
    \hline
    \colorbox{blue!30}{A} & \colorbox{blue!30}{R} & \colorbox{blue!30}{R} & \colorbox{blue!30}{A} & \colorbox{blue!30}{N} & \colorbox{blue!30}{G} & \colorbox{blue!30}{E} & V \\ \hline
    \colorbox{blue!30}{C} & \colorbox{blue!30}{A} & \colorbox{blue!30}{N} & \colorbox{blue!30}{C} & \colorbox{blue!30}{E} & \colorbox{blue!30}{L} & M & O \\ \hline
    H & \colorbox{blue!30}{B} & Y & \colorbox{blue!30}{H} & \colorbox{blue!30}{A} & \colorbox{blue!30}{V} & \colorbox{blue!30}{E} & D \\ \hline
    A & \colorbox{blue!30}{O} & E & \colorbox{blue!30}{E} & I & G & P & I \\ \hline
    N & \colorbox{blue!30}{O} & S & \colorbox{blue!30}{C} & L & F & N & \colorbox{blue!30}{T} \\ \hline
    \colorbox{blue!30}{G} & \colorbox{blue!30}{K} & T & \colorbox{blue!30}{K} & P & E & L & \colorbox{blue!30}{A} \\ \hline
    \colorbox{blue!30}{E} & R & O & O & C & T & K & \colorbox{blue!30}{L} \\ \hline
    \colorbox{blue!30}{T} & M & F & A & E & S & R & \colorbox{blue!30}{K} \\ \hline
    \end{tabular}
\end{table}
\end{document}

Sorry, but I don't know how it is the exactly translation in english of this puzzle, google translator says to me is: crossfind or crossearch, but in spanish is Sopa De Letras (Words Soup in English). Thanks

CrossFind Puzzle

1
  • 1
    Oh! You have no problem with such "words" as ranbook! :-) It was a probem for me how to deal with such cases. Nov 22, 2013 at 22:16
2

A new version, after information that colors are allowed. Horizontal words are written yellow, vertical -- blue, letters from both -- green. The behaviour is changed by the switch \solutionfalse/\solutiontrue.

\documentclass{article} 
\usepackage{color}
\begin{document}

\newif\ifsolution
\solutionfalse

\def\0#1{\ifsolution{}\else{#1}\fi} 
\def\1#1{\ifsolution\textbf{\color{yellow}#1}\else{#1}\fi} %horizontal
\def\2#1{\ifsolution\textbf{\color{blue}#1}\else{#1}\fi} % vertical
\def\3#1{\ifsolution\textbf{\color{green}#1}\else{#1}\fi} % both

\begin{tabular}{|l|l|l|l|l|l|l|l|}
\hline
\1A &\1R & \1R & \1A & \1N & \1G &\1 E &\0 V \\ \hline
\3C & \1A & \1N & \3C &\1 E & \1L &\0 M & \0O \\ \hline
\2H &\2 B & \2Y &\3 H & \1A & \1V &\1 E & \0D \\ \hline
\2A &\2 O & \2E &\2 E &\0 I \2& \0G \2& \0P &\0 I \\ \hline
\2N & \2O &\2 S &\2 C &\0 L & \0F & \0N &\2 T \\ \hline
\2G & \2K & \0T &\2 K &\0 P & \0E & \0L & \2A \\ \hline
\2E & \0R &\0 O &\0 O &\0C &\0 T & \0K &\2 L \\ \hline
\0T & \0M &\0 F & \0A & \0E &\0 S &\0 R & \2K \\ \hline
\end{tabular}

\solutiontrue

\bigskip

\begin{tabular}{|l|l|l|l|l|l|l|l|}
\hline
\1A &\1R & \1R & \1A & \1N & \1G &\1 E &\0 V \\ \hline
\3C & \1A & \1N & \3C &\1 E & \1L &\0 M & \0O \\ \hline
\2H &\2 B & \2Y &\3 H & \1A & \1V &\1 E & \0D \\ \hline
\2A &\2 O & \2E &\2 E &\0 I \2& \0G \2& \0P &\0 I \\ \hline
\2N & \2O &\2 S &\2 C &\0 L & \0F & \0N &\2 T \\ \hline
\2G & \2K & \0T &\2 K &\0 P & \0E & \0L & \2A \\ \hline
\2E & \0R &\0 O &\0 O &\0C &\0 T & \0K &\2 L \\ \hline
\0T & \0M &\0 F & \0A & \0E &\0 S &\0 R & \2K \\ \hline
\end{tabular}

\end{document}

enter image description here

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .