<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://www.glc.us.es/~jalonso/LCyTM2018/index.php?action=history&amp;feed=atom&amp;title=Heyawake</id>
	<title>Heyawake - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="https://www.glc.us.es/~jalonso/LCyTM2018/index.php?action=history&amp;feed=atom&amp;title=Heyawake"/>
	<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LCyTM2018/index.php?title=Heyawake&amp;action=history"/>
	<updated>2026-07-23T06:27:25Z</updated>
	<subtitle>Historial de revisiones para esta página en el wiki</subtitle>
	<generator>MediaWiki 1.31.0</generator>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LCyTM2018/index.php?title=Heyawake&amp;diff=103&amp;oldid=prev</id>
		<title>Mjoseh en 09:17 18 feb 2019</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LCyTM2018/index.php?title=Heyawake&amp;diff=103&amp;oldid=prev"/>
		<updated>2019-02-18T09:17:01Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;es&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revisión del 09:17 18 feb 2019&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l2&quot; &gt;Línea 2:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 2:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;%% Heyawake&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;%% Heyawake&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;%% Es un juego que consiste en, teniendo una cuadricula con unos ciertos números y habitaciones, pintar&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;%% Es un juego que consiste en, teniendo una cuadricula con unos ciertos números y habitaciones, pintar ciertas celdas de negro según las reglas siguientes:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;%% &lt;/del&gt;ciertas celdas de negro según las reglas siguientes:&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;%% R1: Cualquiera dos celdas negras no pueden ser horizontalmente o verticalmente adyacentes la una con la otra.&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;%% R1: Cualquiera dos celdas negras no pueden ser horizontalmente o verticalmente adyacentes la una con la otra.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LCyTM2018/index.php?title=Heyawake&amp;diff=102&amp;oldid=prev</id>
		<title>Mjoseh: Página creada con «&lt;source lang = &quot;prolog&quot;&gt; %% Heyawake  %% Es un juego que consiste en, teniendo una cuadricula con unos ciertos números y habitaciones, pintar %% ciertas celdas de negro se…»</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LCyTM2018/index.php?title=Heyawake&amp;diff=102&amp;oldid=prev"/>
		<updated>2019-02-18T09:16:16Z</updated>

		<summary type="html">&lt;p&gt;Página creada con «&amp;lt;source lang = &amp;quot;prolog&amp;quot;&amp;gt; %% Heyawake  %% Es un juego que consiste en, teniendo una cuadricula con unos ciertos números y habitaciones, pintar %% ciertas celdas de negro se…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;source lang = &amp;quot;prolog&amp;quot;&amp;gt;&lt;br /&gt;
%% Heyawake&lt;br /&gt;
&lt;br /&gt;
%% Es un juego que consiste en, teniendo una cuadricula con unos ciertos números y habitaciones, pintar&lt;br /&gt;
%% ciertas celdas de negro según las reglas siguientes:&lt;br /&gt;
&lt;br /&gt;
%% R1: Cualquiera dos celdas negras no pueden ser horizontalmente o verticalmente adyacentes la una con la otra.&lt;br /&gt;
%% R2: Todas las celdas blancas tienen que estar conectadas.&lt;br /&gt;
%% R3: Un número en una habitación indica el número de celdas negras que hay en esta.&lt;br /&gt;
%% R4: Si una habitación no contiene ningún número, entonces puede contener cualquier número de celdas negras.&lt;br /&gt;
%% R5: Ningún camino recto que conecte dos celdas blancas pasa por más de dos habitaciones.&lt;br /&gt;
&lt;br /&gt;
%% Estaticos.&lt;br /&gt;
&lt;br /&gt;
col(1..c). fila(1..f). num(0..r-1). segmento(h;v).&lt;br /&gt;
&lt;br /&gt;
%% Primero antes de entrar en las restricciones y generación de la solución definamos algnos conceptos&lt;br /&gt;
%% auxiliares.&lt;br /&gt;
&lt;br /&gt;
%Posición.&lt;br /&gt;
&lt;br /&gt;
pos(X,Y) :- fila(X), col(Y).&lt;br /&gt;
&lt;br /&gt;
% Adyacencia.&lt;br /&gt;
&lt;br /&gt;
adj(X,Y,U,V) :- |X-U| + |Y-V| == 1,&lt;br /&gt;
                col(Y), col(V), fila(X), fila(U).&lt;br /&gt;
&lt;br /&gt;
% Blanco. Aquellas celdas que al generar no sean negras, serán blancas.&lt;br /&gt;
&lt;br /&gt;
blanco(X,Y) :- not negro(X,Y), fila(X), col(Y).&lt;br /&gt;
&lt;br /&gt;
% Conexión de dos celdas blancas.&lt;br /&gt;
&lt;br /&gt;
conectado(X,Y,U,V) :- adj(X,Y,U,V), blanco(X,Y), blanco(U,V).&lt;br /&gt;
conectado(X,Y,U,V) :- conectado(X,Y,W,Z), adj(W,Z,U,V), blanco(U,V).&lt;br /&gt;
&lt;br /&gt;
% La celda (X,Y) está en la habitación A.&lt;br /&gt;
&lt;br /&gt;
en_habi(X,Y,A) :- habi(A,F,C,F1,C1), X&amp;lt;=F1, F&amp;lt;=X, Y&amp;lt;=C1, C&amp;lt;=Y,&lt;br /&gt;
                  fila(X), col(Y).&lt;br /&gt;
&lt;br /&gt;
% Número de habitaciones por el que pasa un camino recto entre celdas blanca.&lt;br /&gt;
&lt;br /&gt;
camino(S,X,Y,X,Y,1) :- blanco(X,Y), segmento(S).&lt;br /&gt;
&lt;br /&gt;
camino(v,X,Y,Z,Y,N) :- camino(v,X+1,Y,Z,Y,N), blanco(X,Y), en_habi(X,Y,A), en_habi(X+1,Y,A).&lt;br /&gt;
camino(v,X,Y,Z,Y,N+1) :- camino(v,X+1,Y,Z,Y,N), blanco(X,Y), en_habi(X,Y,A), en_habi(X+1,Y,B),&lt;br /&gt;
                         A!=B, X&amp;lt;Z.&lt;br /&gt;
&lt;br /&gt;
camino(h,X,Y,X,Z,N) :- camino(h,X,Y+1,X,Z,N), blanco(X,Y), en_habi(X,Y,A), en_habi(X,Y+1,A).&lt;br /&gt;
camino(h,X,Y,X,Z,N+1) :- camino(h,X,Y+1,X,Z,N), blanco(X,Y), en_habi(X,Y,A), en_habi(X,Y+1,B),&lt;br /&gt;
                         A!=B, Y&amp;lt;Z.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%% Generación. Para generar cuadrículas usaremos también R3 y R4.&lt;br /&gt;
%% R3: Un número en una habitación indica el número de celdas negras que hay en ésta.&lt;br /&gt;
&lt;br /&gt;
N{negro(X,Y) : X1&amp;lt;=X, X&amp;lt;=X2, Y1&amp;lt;=Y, Y&amp;lt;=Y2, pos(X,Y)}N :- habi(A,X1,Y1,X2,Y2), tiene(A,N), N!=-1.&lt;br /&gt;
&lt;br /&gt;
%% R4: Si una habitación no contiene ningún número, entonces puede contener cualquier número de celdas negras.&lt;br /&gt;
&lt;br /&gt;
{negro(X,Y) : X1&amp;lt;=X, X&amp;lt;=X2, Y1&amp;lt;=Y, Y&amp;lt;=Y2, pos(X,Y)} :- habi(A,X1,Y1,X2,Y2), tiene(A,-1).&lt;br /&gt;
&lt;br /&gt;
%% R1: Cualquiera dos celdas negras no pueden ser horizontalmente o verticalmente adyacentes la una con la otra.&lt;br /&gt;
&lt;br /&gt;
:- adj(X,Y,Z,Y), negro(X,Y), negro(Z,Y), X!=Z.&lt;br /&gt;
:- adj(X,Y,X,Z), negro(X,Y), negro(X,Z), Y!=Z.&lt;br /&gt;
&lt;br /&gt;
%% R2: Todas las celdas blancas tienen que estar conectadas.&lt;br /&gt;
&lt;br /&gt;
:- not conectado(X,Y,U,V), blanco(X,Y), blanco(U,V), (X,Y)!=(U,V).&lt;br /&gt;
&lt;br /&gt;
%% R5: Ningún camino recto que conecte dos celdas blancas pasa por más de dos habitaciones.&lt;br /&gt;
&lt;br /&gt;
:- camino(S,X,Y,U,V,3), blanco(X,Y), blanco(U,V).&lt;br /&gt;
&lt;br /&gt;
%% Presentación.&lt;br /&gt;
&lt;br /&gt;
#show negro/2.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
</feed>