<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=EightQueenProblem%2Fkulguy</id>
	<title>EightQueenProblem/kulguy - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=EightQueenProblem%2Fkulguy"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=EightQueenProblem/kulguy&amp;action=history"/>
	<updated>2026-05-15T20:03:30Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=EightQueenProblem/kulguy&amp;diff=84348&amp;oldid=prev</id>
		<title>Maintenance script: Repair batch-0002 pages from live compare</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=EightQueenProblem/kulguy&amp;diff=84348&amp;oldid=prev"/>
		<updated>2026-03-27T00:16:02Z</updated>

		<summary type="html">&lt;p&gt;Repair batch-0002 pages from live compare&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&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;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 00:16, 27 March 2026&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-l15&quot;&gt;Line 15:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 15:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;  {&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;  {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;  	// to run, prompt&amp;amp;gt;java QueensProblem x&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;  	// to run, prompt&amp;amp;gt;java QueensProblem x&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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;  	public static void main(String&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[] &lt;/del&gt;args)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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;  	public static void main(String&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;#91;&amp;amp;#93; &lt;/ins&gt;args)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;  	{&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;  	{&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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;  		QueensProblem problem = new QueensProblem(Integer.parseInt(args&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[&lt;/del&gt;0&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]&lt;/del&gt;));&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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;  		QueensProblem problem = new QueensProblem(Integer.parseInt(args&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;#91;&lt;/ins&gt;0&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;#93;&lt;/ins&gt;));&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;  		long start = System.currentTimeMillis();&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;  		long start = System.currentTimeMillis();&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;  		problem.locate(0);&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;  		problem.locate(0);&lt;/div&gt;&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-l246&quot;&gt;Line 246:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 246:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;  	private int y;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;  	private int y;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;  }&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; 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;  }&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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 style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=EightQueenProblem/kulguy&amp;diff=31554&amp;oldid=prev</id>
		<title>imported&gt;Unknown at 05:23, 7 February 2021</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=EightQueenProblem/kulguy&amp;diff=31554&amp;oldid=prev"/>
		<updated>2021-02-07T05:23:12Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== 느낌점 ==&lt;br /&gt;
문제에 대한 개략적인 이해만 하고서 마치 그 알고리즘을 완전히 이해한 냥 무턱대고 코딩에 들어갔다가 정답이고 뭐고 완전히 엉켜버렸습니다. 결국 처음부터 다시 코딩 이전 단계부터 차근히 준비하여 겨우 문제를 해결할 수 있었습니다. 코딩 이전의 여러 프로그래밍 단계는 함부로 건너뛸 단계가 아니란 것을 다시 한번 뼈 속 깊이 깨달았으며 성능을 위해 시공 교환 법칙을 나름대로 적용해 보았는데 그 효과의 상당함을 경험하였습니다.&lt;br /&gt;
&lt;br /&gt;
* 알고리즘이 중요하다 &lt;br /&gt;
* 디자인도 중요하다.&lt;br /&gt;
* 성능을 높이고자 한다면 우선 시공 교환 법칙을 이용하자.&lt;br /&gt;
   시공 교환 법칙이 뭐죠?&lt;br /&gt;
    성능이란 것을 크게 수행 시간(時)과 수행시 필요한 메모리(空)라는 2가지 측면에서 본다면 메모리쪽의 성능을 희생해서 수행 시간을 끌어올리는 것을 말합니다. 즉, 자주 쓰일 것 같은 계산 결과는 매번 계산하지 않고 메모리에 담아두거나 외부에 저장했다가 가져오는 식이 되는 거죠. 저같은 경우 문제를 풀기 위해 체스판 위에 퀸 하나가 놓일 때마다 다음 퀸이 놓일 수 있는 &amp;quot;가능한 자리를 계산&amp;quot;해서 그 다음 퀸을 배치하는 방식을 사용했습니다. 이 때 &amp;quot;가능한 자리를 계산&amp;quot;한 결과를 메모리에 담아두고 계속 이용하였죠. 참고로 이 용어와 개념들은 김창준님이 마소에 기고하신 파이썬 관련 기사에서 비스므리 인용한 것 입니다. 인용이란 본래 그 내용을 정확히 전달해야 하는데 -_-;;; 마소 기사를 직접 참고해보시기 바랍니다 :)&lt;br /&gt;
&lt;br /&gt;
 See Also [http://maso.zdnet.co.kr/20010407/about/article.html?id=120&amp;amp;page=2 마소2001년 4월 About Python 기사 - 파이썬 최적화론]&lt;br /&gt;
&lt;br /&gt;
== 소스 파일 ==&lt;br /&gt;
=== QueensProblem.java ===&lt;br /&gt;
 public class QueensProblem&lt;br /&gt;
 {&lt;br /&gt;
 	// to run, prompt&amp;amp;gt;java QueensProblem x&lt;br /&gt;
 	public static void main(String[] args)&lt;br /&gt;
 	{&lt;br /&gt;
 		QueensProblem problem = new QueensProblem(Integer.parseInt(args[0]));&lt;br /&gt;
 		long start = System.currentTimeMillis();&lt;br /&gt;
 		problem.locate(0);&lt;br /&gt;
 		System.out.println(&amp;quot;소요시간(ms) = &amp;quot; + String.valueOf(System.currentTimeMillis() - start));&lt;br /&gt;
 		System.out.println(&amp;quot;가능한 해답 = &amp;quot; + String.valueOf(problem.getSuccessNum()));&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	public QueensProblem(int queensNum)&lt;br /&gt;
 	{&lt;br /&gt;
 		this.queensNum = queensNum;&lt;br /&gt;
 		board = new Chessboard(queensNum);	&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	public int getSuccessNum()&lt;br /&gt;
 	{&lt;br /&gt;
 		return successNum;&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	public boolean locate(int index)&lt;br /&gt;
 	{&lt;br /&gt;
 		if (index == queensNum)&lt;br /&gt;
 		{&lt;br /&gt;
 			++successNum;&lt;br /&gt;
 		//	System.out.println(&amp;quot;성공 &amp;quot; + String.valueOf(++successNum));&lt;br /&gt;
 		//	System.out.println(board);&lt;br /&gt;
 			return true;&lt;br /&gt;
 		}&lt;br /&gt;
 	&lt;br /&gt;
 		Chessboard.PointList points = board.getAvailablePoints();&lt;br /&gt;
 		Point point = null;&lt;br /&gt;
 		while ((point = points.nextPoint()) != null)&lt;br /&gt;
 		{&lt;br /&gt;
 			if(point.getY() == index + 1)&lt;br /&gt;
 				return false;&lt;br /&gt;
 &lt;br /&gt;
 			Queen queen = new Queen(point);&lt;br /&gt;
 			board.locate(queen);&lt;br /&gt;
 			if (locate(index + 1))&lt;br /&gt;
 			{&lt;br /&gt;
 		//		return true;&lt;br /&gt;
 				board.rollback();&lt;br /&gt;
 			}&lt;br /&gt;
 			else&lt;br /&gt;
 			{&lt;br /&gt;
 				board.rollback();&lt;br /&gt;
 			}&lt;br /&gt;
 		}&lt;br /&gt;
 		&lt;br /&gt;
 		return false;&lt;br /&gt;
 	}	&lt;br /&gt;
 &lt;br /&gt;
 	private Chessboard board;&lt;br /&gt;
 	private int queensNum;&lt;br /&gt;
 	&lt;br /&gt;
 	private int successNum;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Chessboard.java ===&lt;br /&gt;
 import java.util.*;&lt;br /&gt;
 &lt;br /&gt;
 public class Chessboard&lt;br /&gt;
 {&lt;br /&gt;
 	public Chessboard(int size)&lt;br /&gt;
 	{&lt;br /&gt;
 		this.size = size;&lt;br /&gt;
 		queens = new Stack();&lt;br /&gt;
 		availablePointsStack = new Stack();&lt;br /&gt;
 		List availablePoints = new ArrayList();&lt;br /&gt;
 		for (int y = 0; y &amp;amp;lt; size; ++y)&lt;br /&gt;
 			for (int x = 0; x &amp;amp;lt; size; ++x)&lt;br /&gt;
 				availablePoints.add(new Point(x, y));&lt;br /&gt;
 		availablePointsStack.push(new PointList(availablePoints));&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	public void locate(Queen queen)&lt;br /&gt;
 	{&lt;br /&gt;
 		List availablePoints = new ArrayList();&lt;br /&gt;
 		List points = ((PointList)availablePointsStack.peek()).getPoints();&lt;br /&gt;
 		Iterator pointsIter = points.iterator();&lt;br /&gt;
 		while (pointsIter.hasNext())&lt;br /&gt;
 		{&lt;br /&gt;
 			Point point = (Point)pointsIter.next();&lt;br /&gt;
 			if (!queen.canAttack(point))&lt;br /&gt;
 				availablePoints.add(point);&lt;br /&gt;
 		}&lt;br /&gt;
 		&lt;br /&gt;
 		queens.push(queen);&lt;br /&gt;
 		availablePointsStack.push(new PointList(availablePoints));&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	public void rollback()&lt;br /&gt;
 	{&lt;br /&gt;
 		queens.pop();&lt;br /&gt;
 		availablePointsStack.pop();&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	public PointList getAvailablePoints()&lt;br /&gt;
 	{&lt;br /&gt;
 		return (PointList)availablePointsStack.peek();&lt;br /&gt;
 	}	&lt;br /&gt;
 &lt;br /&gt;
 	public String toString()&lt;br /&gt;
 	{&lt;br /&gt;
 		StringBuffer buff = new StringBuffer();&lt;br /&gt;
 		Iterator iter = queens.iterator();&lt;br /&gt;
 		while (iter.hasNext())&lt;br /&gt;
 		{&lt;br /&gt;
 			Queen queen = (Queen)iter.next();&lt;br /&gt;
 			buff.append(queen.getPoint().toString());&lt;br /&gt;
 			buff.append(&amp;quot;\n&amp;quot;);&lt;br /&gt;
 		}&lt;br /&gt;
 &lt;br /&gt;
 		return buff.toString();&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	private int size;&lt;br /&gt;
 	private Stack queens;&lt;br /&gt;
 	private Stack availablePointsStack;&lt;br /&gt;
 &lt;br /&gt;
 	public static class PointList&lt;br /&gt;
 	{&lt;br /&gt;
 		public PointList(List points)&lt;br /&gt;
 		{&lt;br /&gt;
 			this.points = points;&lt;br /&gt;
 			index = 0;&lt;br /&gt;
 		}&lt;br /&gt;
 		&lt;br /&gt;
 		public Point nextPoint()&lt;br /&gt;
 		{&lt;br /&gt;
 			Point point = null;&lt;br /&gt;
 			if (index &amp;amp;lt; points.size())&lt;br /&gt;
 			{&lt;br /&gt;
 				point = (Point)points.get(index);&lt;br /&gt;
 				++index;&lt;br /&gt;
 			}&lt;br /&gt;
 			return point;&lt;br /&gt;
 		}&lt;br /&gt;
 &lt;br /&gt;
 		public List getPoints()&lt;br /&gt;
 		{&lt;br /&gt;
 			return points;&lt;br /&gt;
 		}&lt;br /&gt;
 &lt;br /&gt;
 		public String toString()&lt;br /&gt;
 		{&lt;br /&gt;
 			StringBuffer buff = new StringBuffer();&lt;br /&gt;
 			Iterator iter = points.iterator();&lt;br /&gt;
 			while (iter.hasNext())&lt;br /&gt;
 			{&lt;br /&gt;
 				Point point = (Point)iter.next();&lt;br /&gt;
 				buff.append(point);&lt;br /&gt;
 				buff.append(&amp;quot;\n&amp;quot;);&lt;br /&gt;
 			}&lt;br /&gt;
 &lt;br /&gt;
 			return buff.toString();&lt;br /&gt;
 		}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 		private int index;&lt;br /&gt;
 		private List points;&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Queen.java ===&lt;br /&gt;
 public class Queen&lt;br /&gt;
 {&lt;br /&gt;
 	public Queen(Point point)&lt;br /&gt;
 	{&lt;br /&gt;
 		this.point = point;&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	public boolean canAttack(Point p)&lt;br /&gt;
 	{&lt;br /&gt;
 		return point.equalsX(p) || point.equalsY(p) || point.isLocatedCrossly(p);&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	public Point getPoint()&lt;br /&gt;
 	{&lt;br /&gt;
 		return point;&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	private Point point;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Point.java ===&lt;br /&gt;
 public class Point&lt;br /&gt;
 {&lt;br /&gt;
 	public Point(int x, int y)&lt;br /&gt;
 	{&lt;br /&gt;
 		this.x = x;&lt;br /&gt;
 		this.y = y;&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	public boolean equalsX(Point point)&lt;br /&gt;
 	{&lt;br /&gt;
 		return point.x == x;&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	public boolean equalsY(Point point)&lt;br /&gt;
 	{&lt;br /&gt;
 		return point.y == y;&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	public boolean isLocatedCrossly(Point point)&lt;br /&gt;
 	{&lt;br /&gt;
 		int diffX = Math.abs(point.x - x);&lt;br /&gt;
 		int diffY = Math.abs(point.y - y);&lt;br /&gt;
 &lt;br /&gt;
 		return diffX == diffY;&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	public int getX()&lt;br /&gt;
 	{&lt;br /&gt;
 		return x;&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	public int getY()&lt;br /&gt;
 	{&lt;br /&gt;
 		return y;&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	public String toString()&lt;br /&gt;
 	{&lt;br /&gt;
 		return &amp;quot;(&amp;quot; + String.valueOf(x) + &amp;quot;, &amp;quot; + String.valueOf(y) + &amp;quot;)&amp;quot;;&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	private int x;&lt;br /&gt;
 	private int y;&lt;br /&gt;
 }&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;Unknown</name></author>
	</entry>
</feed>