\section{El tablero}
\label{sec:tablero}

Cuando hablamos de «tablero», nos referimos a un entorno o \emph{scope} en el que se renderizan tanto el goban (la cuadrícula del juego) como los elementos que contiene: piedras, etiquetas de coordenadas y otra información relevante. Este entorno está diseñado para ser flexible y personalizable, permitiendo a los usuarios adaptar su apariencia y funcionalidad según las necesidades del diagrama, ya sea para representar partidas completas, secciones específicas o incluso añadir anotaciones visuales.

\begin{environment}{{goban}\opt{\oarg{options}}}
	
	Inicializa el entorno del goban. Por defecto, dibuja un tablero cuadrado de 9×9 intersecciones, con un borde visible, fondo blanco y sin etiquetas en los laterales.
	
	\begin{codeexample}[width=5cm]
		\begin{goban}
		\end{goban}
	\end{codeexample}
	
	Dado que el tablero es la única macro que utiliza la capa de TikZ, cada intersección puede ser accedida mediante su coordenada alfanumérica (como en \pgfname) o mediante valores numéricos en el sistema de coordenadas de \tikzname. Esto permite combinar la sintaxis intuitiva del Go con las capacidades gráficas de TikZ, lo que resulta especialmente útil para añadir elementos personalizados, como flechas o marcas, directamente sobre el tablero.
	
	\begin{codeexample}[width=5.85cm]
		\begin{goban}[19, partial = {from = J1 to S9},
			label = {at = {north, east}}]
			\stones {K8,R8,Q5,R5,O4,Q4,L3,O3,M2,N2}
			\mark[black, circle] {K8}
			\stones[white] {K6,R4,R3,P3,N1,O2,Q2}
			
			\tikzset{flecha/.style = {-{latex[]}, line width = 2pt, blue}}
			\draw[flecha] (12,8)--(17,8);
		\end{goban}
	\end{codeexample}
	
	\begin{key}{/pgfgo/goban/use i=\meta{boolean} (default true, initially true)}
		
		Permite activar o desactivar el uso de la letra «I» en las coordenadas y etiquetas del tablero. Cuando está desactivada («false»), cualquier referencia a «I» se interpreta como «J».
		
		\begin{codeexample}[]
			\pgfgoset{goban = {13, label = {at = north}}}
			
			\begin{goban}[label = {at = west}, partial = {from = H1 to M3}]
				\stone[b]{J2}
			\end{goban}
			
			\begin{goban}[use i = false, partial = {from = H1 to N3}]
				\stone[b]{J2}
			\end{goban}
			
			\begin{goban}[use i = false, label = {at = east}, partial = {from = H1 to N3}]
				\stone[white, mark = {custom = !}] {I2} % Si es I, entonces pasa a J.
			\end{goban}
		\end{codeexample}
	\end{key}
	
	\begin{key}{/pgfgo/goban/size=\meta{nlines or nlines |x| nlines} (initially 9)}
		
		Define el número de líneas verticales y horizontales del tablero. Puede omitirse la palabra «size» y especificarse directamente el valor. Si se indica un único entero (como |9|), el tablero será cuadrado (9×9). Si se usa una expresión como |5x3|, se creará un tablero rectangular de 5 columnas por 3 filas.
		
		\begin{codeexample}[width=6.5cm]
			\begin{goban}[5]
			\end{goban}
			
			\begin{goban}[5x3]
			\end{goban}
		\end{codeexample}
	\end{key}
	
	\begin{key}{/pgfgo/goban/scale=\meta{float} (initially 1)}
		
		Controla la escala global del tablero, afectando tanto las dimensiones generales como el grosor de ciertos elementos (como el «line width» de las líneas).
		
		\begin{codeexample}[width=5.5cm]
			\begin{goban}[2, scale = 2]
				\stone[b, mark]{A1}
			\end{goban}
			
			\begin{goban}[2, scale = 1]
				\stone[b, mark]{A1}
			\end{goban}
			
			\begin{goban}[2, scale = 0.5]
				\stone[b, mark]{A1}
			\end{goban}
		\end{codeexample}
	\end{key}
	
	\subsection{Cuadrícula}
	
	La cuadrícula se refiere a las líneas centrales que forman las intersecciones del tablero.
	
	\begin{key}{/pgfgo/goban/grid=\meta{options}}
		Controla el comportamiento y la apariencia de las líneas centrales del tablero. Este conjunto de opciones permite modificar su visibilidad, color, grosor y separación, ofreciendo un alto grado de personalización.
	\end{key}
	
	\begin{stylekey}{/pgfgo/goban/grid/false}
		
		Desactiva las líneas centrales, dejando visibles solo el borde y las piedras.
		
		\begin{codeexample}[]
			\begin{goban}[3]
				\stone[b]{A1}
				\stone[w]{B2}
			\end{goban}
			
			\begin{goban}[3, grid = false]
				\stone[b]{A1}
				\stone[w]{B2}
			\end{goban}
		\end{codeexample}
		
		El primer tablero muestra la cuadrícula por defecto.
	\end{stylekey}
	
	\begin{key}{/pgfgo/goban/grid/line=\meta{options}}
		Permite controlar las líneas de la cuadrícula.
	\end{key}
	
	\begin{key}{/pgfgo/goban/grid/line/color =\meta{color} (initially black)}
		
		Permite cambiar el color de las líneas de la cuadrícula.
		
		\begin{codeexample}[]
			\pgfgoset{goban = {5, partial = {from = B2 to D4}}}
			
			\begin{goban}[grid = {line = {color = blue}}, new remember]
				\stones[b]{C2,D3}
				\stone[w]{B4}
			\end{goban}
			
			\begin{goban}[grid = {line = {color = red}}, resume]
			\end{goban}
		\end{codeexample}
	\end{key}
	
	\begin{key}{/pgfgo/goban/grid/line/opacity =\meta{float} (initially 1)}
		
		Establece la opacidad de las líneas de la cuadrícula, desde 0 (transparente) hasta 1 (opaco).
		
		\begin{codeexample}[]
			\pgfgoset{goban = {5, partial = {from = B2 to D4}}}
			
			\begin{goban}[new remember]
				\stones[b]{C2,D3}
				\stone[w]{B4}
			\end{goban}
			
			\begin{goban}[grid = {line = {opacity = 0.2}}, resume]
			\end{goban}
		\end{codeexample}
	\end{key}
	
	\begin{key}{/pgfgo/goban/grid/line/width =\meta{dimension} (initially 0.55pt)}
		
		Define el grosor de las líneas de la cuadrícula.
		
		\begin{codeexample}[]
			\pgfgoset{goban = {5, partial = {from = B2 to D4}}}
			
			\begin{goban}[new remember]
				\stones[b]{C2,D3}
				\stone[w]{B4}
			\end{goban}
			
			\begin{goban}[grid = {line = {width = 1.5pt}}, resume]
			\end{goban}
		\end{codeexample}
	\end{key}
	
	\begin{key}{/pgfgo/goban/grid/x sep =\meta{dimension} (initially 1.25em)}
		Establece la separación entre las líneas verticales, ajustando el ancho de las columnas del tablero.
	\end{key}
	
	\begin{key}{/pgfgo/goban/grid/y sep =\meta{dimension} (initially 1.25em)}
		Establece la separación entre las líneas horizontales, ajustando la altura de las filas.
	\end{key}
	
	\begin{key}{/pgfgo/goban/grid/sep =\meta{dimension} (initially 1.25em)}
		Define simultáneamente la separación vertical y horizontal de las líneas, asegurando un espaciado uniforme en ambas direcciones. Es una opción conveniente para mantener proporciones equilibradas.
	\end{key}
	
	\subsection{Borde}
	
	El borde del tablero es el contorno que enmarca la cuadrícula y las piedras, proporcionando un límite visual claro. Por defecto, está activo, tiene un fondo blanco y un contorno negro.
	
	\begin{key}{/pgfgo/goban/background=\meta{options} (default true)}
		Controla las propiedades del borde del tablero, como su visibilidad, color, grosor y forma, permitiendo una personalización detallada.
	\end{key}
	
	\begin{stylekey}{/pgfgo/goban/background/false}
		
		Desactiva completamente el borde del tablero, eliminando tanto el contorno como el relleno. Esto es útil para diagramas minimalistas o cuando el fondo del documento ya proporciona el contraste necesario.
		
		\begin{codeexample}[]
			\pgfgoset{goban = {5, partial = {from = B2 to D4}}}
			
			\begin{goban}[new remember]
				\stones[b]{C2,D3}
				\stone[w]{B4}
			\end{goban}
			
			\begin{goban}[background = false, resume]
			\end{goban}
		\end{codeexample}
	\end{stylekey}
	
	\begin{key}{/pgfgo/goban/background/fill=\meta{options} (initially true)}
		Controla las opciones relacionadas con el relleno del fondo del tablero.
	\end{key}
	
	\begin{key}{/pgfgo/goban/background/fill=\meta{boolean} (initially true)}
		
		Determina si el relleno del fondo del tablero está activo. Si se desactiva, el área dentro del borde será transparente, mostrando solo el contorno (si está habilitado).
		
		\begin{codeexample}[]
			\pgfgoset{goban = {5, partial = {from = B2 to D4}}}
			
			\begin{goban}[background = {line = {color = red}}, new remember]
				\stones[b]{C2,D3}
				\stone[w]{B4}
			\end{goban}
			
			\begin{goban}[background = {line = false}, resume]
			\end{goban}
		\end{codeexample}
	\end{key}
	
	\begin{key}{/pgfgo/goban/background/fill/color =\meta{color} (default white)}
		
		Define el color de relleno del tablero.
		
		\begin{codeexample}[]
			\pgfgoset{goban = {5, partial = {from = B2 to D4}}}
			
			\begin{goban}[background = {fill = {color = orange!40}}, new remember]
				\stones[b]{C2,D3}
				\stone[w]{B4}
			\end{goban}
			
			\begin{goban}[background = {fill = {color = olive!30}}, resume]
			\end{goban}
		\end{codeexample}
	\end{key}
	
	\begin{key}{/pgfgo/goban/background/fill/opacity =\meta{float} (initially 1)}
		
		Controla la opacidad del relleno, desde 0 (transparente) hasta 1 (opaco).
		
		\begin{codeexample}[]
			\pgfgoset{goban = {5, partial = {from = B2 to D4}}}
			
			\begin{goban}[background = {fill = {color = orange!40}}, new remember]
				\stones[b]{C2,D3}
				\stone[w]{B4}
			\end{goban}
			
			\begin{goban}[background = {fill = {color = orange!40}, fill = {opacity = 0.5}}, resume]
			\end{goban}
		\end{codeexample}
		
	\end{key}
	
	\begin{key}{/pgfgo/goban/background/line=\meta{options} (default true)}
		Controla las opciones de la línea de contorno del fondo.
	\end{key}
	
	\begin{key}{/pgfgo/goban/background/line=\meta{boolean}}
		Activa o desactiva la línea del borde.
		
		\begin{codeexample}[]
			\pgfgoset{goban = {5, partial = {from = B2 to D4}}}
			
			\begin{goban}[background = {line = {color = red}}, new remember]
				\stones[b]{C2,D3}
				\stone[w]{B4}
			\end{goban}
			
			\begin{goban}[background = {line = false}, resume]
			\end{goban}
		\end{codeexample}
	\end{key}
	
	\begin{key}{/pgfgo/goban/background/line/color =\meta{color} (default black)}
		
		Define el color de la línea del borde, permitiendo distinguirlo del fondo o de las líneas de la cuadrícula.
		
		\begin{codeexample}[]
			\pgfgoset{goban = {5, partial = {from = B2 to D4}}}
			
			\begin{goban}[background = {line = {color = red}}, new remember]
				\stones[b]{C2,D3}
				\stone[w]{B4}
			\end{goban}
			
			\begin{goban}[background = {line = {color = blue}}, resume]
			\end{goban}
		\end{codeexample}		
	\end{key}
	
	\begin{key}{/pgfgo/goban/background/line/opacity =\meta{float} (default 1)}
		
		Ajusta la opacidad de la línea del borde.
		
		\begin{codeexample}[]
			\pgfgoset{goban = {5, partial = {from = B2 to D4}}}
			
			\begin{goban}[background = {line = {color = red}}, new remember]
				\stones[b]{C2,D3}
				\stone[w]{B4}
			\end{goban}
			
			\begin{goban}[background = {line = {color = red}, line = {opacity = 0.5}}, resume]
			\end{goban}
		\end{codeexample}
	\end{key}
	
	\begin{key}{/pgfgo/goban/background/line/width =\meta{dimension} (default 0.75pt)}
		
		Controla el grosor de la línea del borde.
		
		\begin{codeexample}[]
			\pgfgoset{goban = {5, partial = {from = B2 to D4}}}
			
			\begin{goban}[new remember]
				\stones[b]{C2,D3}
				\stone[w]{B4}
			\end{goban}
			
			\begin{goban}[background = {line = {width = 1.5pt}}, resume]
			\end{goban}
		\end{codeexample}
	\end{key}
	
	\begin{key}{/pgfgo/goban/background/rounded corners =\meta{dimension} (default 1pt)}
		
		Ajusta el redondeo de las esquinas del borde, desde 0pt (esquinas rectas) hasta valores mayores para un efecto más suave y estilizado.
		
		\begin{codeexample}[]
			\pgfgoset{goban = {5, partial = {from = B2 to D4}}}
			
			\begin{goban}[background = {rounded corners = 0pt}, new remember]
				\stones[b]{C2,D3}
				\stone[w]{B4}
			\end{goban}
			
			\begin{goban}[background = {rounded corners = 0.625em}, resume]
			\end{goban}
		\end{codeexample}
	\end{key}
	
	\begin{key}{/pgfgo/goban/background/sep =\meta{dimension} (default /pgfgo/goban/stone/radius * 1.5)}
		
		Define la separación entre la cuadrícula y el borde, basada por defecto en el radio de las piedras multiplicado por 1.5. Este ajuste asegura que las piedras cercanas al borde no se superpongan con él.
		
		\begin{codeexample}[]
			\pgfgoset{goban = {5, partial = {from = B2 to D4}}}
			
			\begin{goban}[background = {sep = 0.625em}, new remember]
				\stones[b]{C2,D3}
				\stone[w]{B4}
			\end{goban}
			
			\begin{goban}[background = {sep = 1.5em}, resume]
			\end{goban}
		\end{codeexample}
	\end{key}
	
	\subsection{Tablero parcial}
	
	En muchas ocasiones, no es necesario representar un tablero completo, sino solo una sección rectangular, ya sea por limitaciones de espacio, para enfocar la atención en una zona específica o para simplificar la creación de diagramas. El entorno |goban| incluye la \emph{key} |partial|, que permite definir esta región mediante la sub-\emph{key} |from|. Esta indica los vértices opuestos de un rectángulo, sin importar el orden en que se especifiquen, lo que facilita su uso. Por ejemplo, |from = A1 to D3| es equivalente a |from = D3 to A1|.
	
	\begin{figure}[H]
		\centering
		
		\begin{tikzpicture}
			\node[anchor=north] (X) {
				\begin{goban}[label = {at = {north, west}}]
					\coordinate (A) at (4,6);
					\coordinate (B) at (9,9);
					\coordinate (C) at (A|-B);
					\coordinate (D) at (A-|B);
					
					\tikzset{punto/.style = {circle, fill = #1, draw, inner sep=0.25em, fill opacity=0.5, anchor=center}}
					
					\node[punto = red] at (A){};
					\node[punto = red] at (B){};
					\node[punto = blue] at (C){};
					\node[punto = blue] at (D){};
					
					\draw[red, {latex}-{latex}, shorten <=5pt, shorten >= 5pt] (A)--(B);
					\draw[blue, {latex}-{latex}, shorten <=5pt, shorten >= 5pt] (C)--(D);
					
					\node[fit=(A)(B), draw, inner sep=0.6em, rounded corners, line width=1pt, fill opacity=0.1, fill=orange] {};
				\end{goban}
			};
			
			\node[anchor=north, xshift=15em] {
				\tikz{
					\node[inner sep=0] (Y) {
						\begin{goban}[label = {at = {north, west}}, partial = {from = I9 to D6}]
						\end{goban}
					};	
					\node[align = left, anchor=north, inner sep=0, yshift=-1em] at (Y.south){
						{\color{blue}|partial = {from = D9 to I6}|}\\
						{\color{blue}|partial = {from = I6 to D9}|}\\
						{\color{red} |partial = {from = D6 to I9}|}\\
						{\color{red} |partial = {from = I9 to D6}|}\\
					};
				}
			};
		\end{tikzpicture}
	\end{figure}
	
	\begin{key}{/pgfgo/goban/partial=\meta{options}}
		
		Controla las opciones para representar tableros parciales, permitiendo delimitar una región específica del goban.
	\end{key}
	
	\begin{key}{/pgfgo/goban/partial/from=\meta{intersection |to| intersection}}
		
		Especifica los vértices opuestos del rectángulo que define el tablero parcial. Estas intersecciones pueden ser cualquier par de puntos que formen una diagonal del área deseada.
		
	\end{key}
	
	\begin{codeexample}[]
		\tikzset{flecha/.style = {-{latex[]}, line width = 1pt, red}}
		
		\begin{goban}[partial = {from = A1 to D3}]
			\draw[flecha] (1,1)--(4,3); % Desde A1 hasta D3
		\end{goban}
		
		\begin{goban}[partial = {from = A9 to I6}]
			\draw[flecha] (1,9)--(9,6); % Desde A9 hasta I6
		\end{goban}
		
		\begin{goban}[partial = {from = E2 to B4}]
			\draw[flecha] (5,2)--(2,4); % Desde E2 hasta B4
		\end{goban}
	\end{codeexample}	
	
	\subsection{Etiquetas del tablero}
	
	Las etiquetas son los indicadores alfanuméricos (letras y números) que aparecen en los lados del tablero para identificar las intersecciones.
	
	\begin{key}{/pgfgo/goban/label=\meta{options}}
		Controla las propiedades de las etiquetas, como su ubicación y formato.
	\end{key}
	
	\begin{key}{/pgfgo/goban/label/false}
		Desactiva todas las etiquetas.
	\end{key}
	
	\begin{key}{/pgfgo/goban/label/at =\meta{options}}
		
		Define en qué lados del tablero aparecen las etiquetas. Las opciones incluyen combinaciones de posiciones cardinales o valores predefinidos como «all» o «none».
		
		\begin{stylekey}{/pgfgo/goban/label/at/all}
			
			Muestra etiquetas en todos los lados del tablero (norte, sur, este y oeste).
		\end{stylekey}
		
		\begin{stylekey}{/pgfgo/goban/label/at/none}
			
			Equivale a |label=false|, eliminando todas las etiquetas.
		\end{stylekey}
		
		\begin{stylekey}{/pgfgo/goban/label/at/east}
			Coloca etiquetas solo en el lado derecho (números verticales).
		\end{stylekey}
		\begin{stylekey}{/pgfgo/goban/label/at/right}
			Equivalente a |east|.
		\end{stylekey}
		
		\begin{stylekey}{/pgfgo/goban/label/at/north}
			Coloca etiquetas solo en la parte superior (letras horizontales).
		\end{stylekey}
		\begin{stylekey}{/pgfgo/goban/label/at/above}
			Equivalente a |north|.
		\end{stylekey}
		
		\begin{stylekey}{/pgfgo/goban/label/at/south}
			Coloca etiquetas solo en la parte inferior (letras horizontales).
		\end{stylekey}
		\begin{stylekey}{/pgfgo/goban/label/at/below}
			Equivalente a |south|.
		\end{stylekey}
		
		\begin{stylekey}{/pgfgo/goban/label/at/west}
			Coloca etiquetas solo en el lado izquierdo (números verticales).
		\end{stylekey}
		\begin{stylekey}{/pgfgo/goban/label/at/left}
			Equivalente a |west|.
		\end{stylekey}
		
		\begin{codeexample}[]
			\begin{goban}[12, label = {at = {all}}]
			\end{goban}
			
			\begin{goban}[partial = {from = A6 to I9}, label = {at = north}]
			\end{goban}
			
			\begin{goban}[partial = {from = B2 to E4}, label = {at = {north, east}}]
			\end{goban}
		\end{codeexample}
	\end{key}
	
	\begin{key}{/pgfgo/goban/label/font size = \meta{dimension} (initially 0.75em)}
		
		Ajusta el tamaño de la fuente de las etiquetas.
	\end{key}
	
	\begin{key}{/pgfgo/goban/label/sep = \meta{dimension} (initially 0.5em)}
		
		Controla la distancia entre las etiquetas y el borde del tablero.
	\end{key}
	
	\begin{key}{/pgfgo/goban/label/text color = \meta{color} (initially black)}
		
		Define el color del texto de las etiquetas.
	\end{key}
	
	\subsection{Recordar un tablero}
	El sistema de «recordar» permite almacenar y reutilizar el estado de un tablero entre diferentes entornos |goban|. Esta funcionalidad es extremadamente experimental y, en rigor, no debería estar documentada aún.
	
	\begin{stylekey}{/pgfgo/goban/new remember}
		
		Inicia un nuevo estado de memoria, guardando las piedras y configuraciones del tablero actual para usarlas más adelante.
	\end{stylekey}
	
	\begin{stylekey}{/pgfgo/goban/add to remember}
		
		Añade elementos al estado memorizado sin borrar lo anterior, permitiendo construir diagramas incrementalmente.
	\end{stylekey}
	
	\begin{stylekey}{/pgfgo/goban/forget}
		
		Borra el estado memorizado, reiniciando el sistema de memoria.
	\end{stylekey}
	
	\begin{stylekey}{/pgfgo/goban/resume}
		
		Recupera el estado memorizado y lo renderiza, útil para continuar desde un punto previo sin reescribir el código.
		
	\end{stylekey}
	
\end{environment}