<?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_%28Alina_Kasiuk_y_Xinyi_Wu%29</id>
	<title>Heyawake (Alina Kasiuk y Xinyi Wu) - 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_%28Alina_Kasiuk_y_Xinyi_Wu%29"/>
	<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LCyTM2018/index.php?title=Heyawake_(Alina_Kasiuk_y_Xinyi_Wu)&amp;action=history"/>
	<updated>2026-09-30T17:54:01Z</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_(Alina_Kasiuk_y_Xinyi_Wu)&amp;diff=250&amp;oldid=prev</id>
		<title>Mjoseh: Página creada con «&lt;source lang = &quot;prolog&quot;&gt; #const n = 10. #const m = 10. #const r = 18.  % File: heyawake.lp col(1..m). row(1..n). num(0..r-1). segment(h;v). room_size(N,X1,Y1,X2,Y2) :- room…»</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LCyTM2018/index.php?title=Heyawake_(Alina_Kasiuk_y_Xinyi_Wu)&amp;diff=250&amp;oldid=prev"/>
		<updated>2020-02-09T20:25:24Z</updated>

		<summary type="html">&lt;p&gt;Página creada con «&amp;lt;source lang = &amp;quot;prolog&amp;quot;&amp;gt; #const n = 10. #const m = 10. #const r = 18.  % File: heyawake.lp col(1..m). row(1..n). num(0..r-1). segment(h;v). room_size(N,X1,Y1,X2,Y2) :- room…»&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;
#const n = 10.&lt;br /&gt;
#const m = 10.&lt;br /&gt;
#const r = 18.&lt;br /&gt;
&lt;br /&gt;
% File: heyawake.lp&lt;br /&gt;
col(1..m). row(1..n). num(0..r-1). segment(h;v).&lt;br /&gt;
room_size(N,X1,Y1,X2,Y2) :- room(A,X1,Y1,X2,Y2), has(A,N).&lt;br /&gt;
&lt;br /&gt;
% H3: In each room containing a cell numbered N (N&amp;gt;0),&lt;br /&gt;
% paint N cells black&lt;br /&gt;
N {black(C,R):col(C),row(R),C1&amp;lt;=C,C&amp;lt;=C2,R1&amp;lt;=R,R&amp;lt;=R2} N :- room_size(N,C1,R1,C2,R2), N&amp;gt;0.&lt;br /&gt;
&lt;br /&gt;
% H4: Each room without numbered cell contains any number of&lt;br /&gt;
% black cells.&lt;br /&gt;
{black(C,R):col(C),row(R),C1&amp;lt;=C,C&amp;lt;=C2,R1&amp;lt;=R,R&amp;lt;=R2} :- room_size(-1,C1,R1,C2,R2).&lt;br /&gt;
&lt;br /&gt;
% H1: No two black cells are orthogonally adjacent.&lt;br /&gt;
:- adj(C,R,C1,R), black(C,R), black(C1,R), C!=C1.&lt;br /&gt;
:- adj(C,R,C,R1), black(C,R), black(C,R1), R!=R1.&lt;br /&gt;
&lt;br /&gt;
adj(C,R,C1,R1) :- col(C), col(C1), row(R), row(R1), |C-C1|+|R-R1|==1.&lt;br /&gt;
&lt;br /&gt;
% H2: Nonadjacent white cells should be interconnected.&lt;br /&gt;
:- not connected(C,R,C1,R1), white(C,R), white(C1,R1),&lt;br /&gt;
   col(C),col(C1), row(R), row(R1), C!=C1, R!=R1.&lt;br /&gt;
white(C,R) :- not black(C,R), col(C), row(R).&lt;br /&gt;
&lt;br /&gt;
% connectedness of two white cells (C,R) and (C1,R1)&lt;br /&gt;
connected(C,R,C1,R1) :- adj(C,R,C1,R1), white(C,R), white(C1,R1).&lt;br /&gt;
connected(C,R,X,Y) :- connected(C1,R1,X,Y), adj(C,R,C1,R1),white(C,R), col(X), row(Y).&lt;br /&gt;
&lt;br /&gt;
% H5: A straight path connecting two white cells (C,R) and (X,Y)&lt;br /&gt;
% does not pass through three or more rooms.&lt;br /&gt;
:- path(S,C,R,X,Y,3), white(C,R), white(X,Y), col(C), col(X), row(R), row(Y),segment(S).&lt;br /&gt;
&lt;br /&gt;
% horizontal (h) and vertical (v) straight paths of white cells&lt;br /&gt;
% whose lengths are at most 3&lt;br /&gt;
&lt;br /&gt;
path(S,C,R,C,R,1) :- white(C,R), col(C), row(R), segment(S).&lt;br /&gt;
&lt;br /&gt;
path(h,C,R,C1,R,N) :- path(h,C+1,R,C1,R,N), adj(C,R,C+1,R),white(C,R), inroom(C,R,A), inroom(C+1,R,A),col(C), col(C1), row(R), num(N), N&amp;lt;3.&lt;br /&gt;
&lt;br /&gt;
path(h,C,R,C1,R,N+1) :- path(h,C+1,R,C1,R,N), adj(C,R,C+1,R), white(C,R), inroom(C,R,A), inroom(C+1,R,B), A!=B, col(C), col(C1), row(R), num(N), N&amp;lt;3.&lt;br /&gt;
&lt;br /&gt;
path(v,C,R,C,R1,N) :- path(v,C,R+1,C,R1,N), adj(C,R,C,R+1),white(C,R), inroom(C,R,A), inroom(C,R+1,A),col(C), row(R), row(R1), num(N), N&amp;lt;3.&lt;br /&gt;
&lt;br /&gt;
path(v,C,R,C,R1,N+1) :- path(v,C,R+1,C,R1,N), adj(C,R,C,R+1),white(C,R),inroom(C,R,A), inroom(C,R+1,B),A!=B, col(C), row(R),  row(R1), num(N), N&amp;lt;3.&lt;br /&gt;
&lt;br /&gt;
%path(v,C,R,C,R1,N) :- path(v,C,R1,C,R,N).&lt;br /&gt;
%path(h,C,R,C1,R,N) :- path(h,C1,R,C,R,N).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% inroom(X,Y,A): grid cell (X,) is contained in Room A&lt;br /&gt;
inroom(X,Y,A) :- room(A,C,R,C1,R1), X&amp;lt;=C1, C&amp;lt;=X, Y&amp;lt;=R1, R&amp;lt;=Y,col(C), col(C1), col(X), row(Y), row(R1), row(R).&lt;br /&gt;
&lt;br /&gt;
%The input file&lt;br /&gt;
room(0,1,1,2,2).room(1,1,3,2,5).room(2,1,6,2,8).room(3,1,9,2,10).&lt;br /&gt;
room(4,3,1,5,2).room(5,3,3,5,5).room(6,3,6,3,8).room(7,4,6,5,8).room(8,3,9,5,10).&lt;br /&gt;
room(9,6,1,8,2).room(10,6,3,7,5).room(11,8,3,8,5).room(12,6,6,8,8).room(13,6,9,8,10).&lt;br /&gt;
room(14,9,1,10,2).room(15,9,3,10,5).room(16,9,6,10,8).room(17,9,9,10,10).&lt;br /&gt;
&lt;br /&gt;
has(0,-1).has(1,-1).has(2,-1).has(3,0).&lt;br /&gt;
has(4,-1).has(5,5).has(6,-1).has(7,0).has(8,1).&lt;br /&gt;
has(9,1).has(10,2).has(11,-1).has(12,2).has(13,-1).&lt;br /&gt;
has(14,0).has(15,-1).has(16,1).has(17,-1).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%room(0,1,1,2,2).room(1,1,3,2,5).room(2,6,1,8,2).room(3,3,4,5,5).&lt;br /&gt;
%room(4,3,1,5,2).room(5,3,3,5,3).room(6,6,3,8,5).room(7,3,6,5,8).&lt;br /&gt;
%room(8,6,6,8,7).room(9,1,6,2,8).room(10,6,8,8,8).room(13,9,6,10,8).&lt;br /&gt;
%room(11,9,1,10,2).room(12,9,3,10,5).room(14,9,9,10,10).&lt;br /&gt;
%room(17,1,9,2,10).room(16,3,9,5,10).room(15,6,9,8,10).&lt;br /&gt;
%has(0,0).has(1,1).has(2,1).has(3,2).has(4,-1).has(5,-1).has(6,2).&lt;br /&gt;
%has(7,5).has(8,0).has(9,-1).has(10,-1).has(11,-1).has(12,-1).&lt;br /&gt;
%has(13,1).has(14,0).has(15,-1).has(16,-1).has(17,-1).&lt;br /&gt;
&lt;br /&gt;
#show black/2.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
</feed>