<?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%2F%EC%9D%B4%EC%84%A0%EC%9A%B03</id>
	<title>EightQueenProblem/이선우3 - 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%2F%EC%9D%B4%EC%84%A0%EC%9A%B03"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=EightQueenProblem/%EC%9D%B4%EC%84%A0%EC%9A%B03&amp;action=history"/>
	<updated>2026-05-16T21:41:19Z</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/%EC%9D%B4%EC%84%A0%EC%9A%B03&amp;diff=84345&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/%EC%9D%B4%EC%84%A0%EC%9A%B03&amp;diff=84345&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-l314&quot;&gt;Line 314:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 314:&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;  	&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;  	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;&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;  		NQueensPlayer player = new NQueensPlayer();&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;  		NQueensPlayer player = new NQueensPlayer();&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;  		try {&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;  		try {&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;  			if( args.length != 1 ) throw new Exception();&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;  			if( args.length != 1 ) throw new Exception();&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;  			player.prepareBoard( 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;  			player.prepareBoard( 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;  			player.play();&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;  			player.play();&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;  			System.out.println( &amp;quot;I found &amp;quot; + player.getNumberOfSolutions() + &amp;quot; solutions.&amp;quot; );&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;  			System.out.println( &amp;quot;I found &amp;quot; + player.getNumberOfSolutions() + &amp;quot; solutions.&amp;quot; );&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-l328&quot;&gt;Line 328:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 328:&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;  }&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/%EC%9D%B4%EC%84%A0%EC%9A%B03&amp;diff=31539&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/%EC%9D%B4%EC%84%A0%EC%9A%B03&amp;diff=31539&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;__TOC__&lt;br /&gt;
&lt;br /&gt;
== Point.java ==&lt;br /&gt;
2차원 평면에서 좌표계를 나타낸다.&lt;br /&gt;
&lt;br /&gt;
 package suwlee.game.nqueen;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 public class Point &lt;br /&gt;
 {&lt;br /&gt;
 	private int x;&lt;br /&gt;
 	private int y;&lt;br /&gt;
 	&lt;br /&gt;
 	&lt;br /&gt;
 	public Point() {}&lt;br /&gt;
 	public Point( int x, int y )&lt;br /&gt;
 	{&lt;br /&gt;
 		setX( x );&lt;br /&gt;
 		setY( y );&lt;br /&gt;
 	}&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;
 	&lt;br /&gt;
 	public int getY()&lt;br /&gt;
 	{&lt;br /&gt;
 		return y;&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	&lt;br /&gt;
 	public void setX( int x )&lt;br /&gt;
 	{&lt;br /&gt;
 		this.x = x;&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	&lt;br /&gt;
 	public void setY( int y )&lt;br /&gt;
 	{&lt;br /&gt;
 		this.y = y;&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	&lt;br /&gt;
 	public void setPoint( int x, int y )&lt;br /&gt;
 	{&lt;br /&gt;
 		setX( x );&lt;br /&gt;
 		setY( y );&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	&lt;br /&gt;
 	public boolean isSamePoint( Point another )&lt;br /&gt;
 	{&lt;br /&gt;
 		if( x == another.x &amp;amp;amp;&amp;amp;amp; y == another.y ) return true;&lt;br /&gt;
 		return false;&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== Chessman.java ==&lt;br /&gt;
일반적인 체스 말이 지녀야할 속성을 나타낸다. 여기서 doIHurtYou()는 자신이 다른 체스 말에게 영향을 주는지를 알아본다.&lt;br /&gt;
&lt;br /&gt;
 package suwlee.game.nqueen;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 public abstract class Chessman extends Point &lt;br /&gt;
 {&lt;br /&gt;
 	public Chessman() &lt;br /&gt;
 	{&lt;br /&gt;
 		super();&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	&lt;br /&gt;
 	public Chessman( int x, int y )&lt;br /&gt;
 	{&lt;br /&gt;
 		super( x, y );&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 	public abstract boolean doIHurtYou( Chessman another );&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== Queen.java ==&lt;br /&gt;
체스 말 중에서 퀸에 해당한다. 가로,세로,오른쪽/왼쪽 대각선 방향을 체크한다.&lt;br /&gt;
&lt;br /&gt;
 package suwlee.game.nqueen;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 import suwlee.game.nqueen.Point;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 public class Queen extends Chessman &lt;br /&gt;
 {&lt;br /&gt;
 	public Queen() &lt;br /&gt;
 	{&lt;br /&gt;
 		super();&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 	public Queen( int x, int y )&lt;br /&gt;
 	{&lt;br /&gt;
 		super( x, y );&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 	public boolean doIHurtYou( Chessman another )&lt;br /&gt;
 	{&lt;br /&gt;
 		if( getX() == another.getX() ) return true;&lt;br /&gt;
 		if( getY() == another.getY() ) return true;&lt;br /&gt;
 		&lt;br /&gt;
 		double angle = ((double)another.getY() - (double)getY()) / ((double)another.getX() - (double)getX());&lt;br /&gt;
 		if( angle == 1.0 || angle == -1.0 ) return true;&lt;br /&gt;
 		&lt;br /&gt;
 		return false;&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== Board.java ==&lt;br /&gt;
일반적인 2차원 형태의 보드를 나타낸다. 실제로 구현하는 보드는 이를 상속받아 draw() 메소드를 구현하게 함으로써 다양한 형태의 보드를 구현하는게 가능하다.&lt;br /&gt;
&lt;br /&gt;
 package suwlee.game.nqueen;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 import java.util.Enumeration;&lt;br /&gt;
 import java.util.Vector;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 public abstract class Board &lt;br /&gt;
 {&lt;br /&gt;
 	private Vector board;&lt;br /&gt;
 	private int sizeOfBoard;&lt;br /&gt;
 	&lt;br /&gt;
 	&lt;br /&gt;
 	private Board() {}&lt;br /&gt;
 	public Board( int sizeOfBoard ) throws Exception&lt;br /&gt;
 	{&lt;br /&gt;
 		if( sizeOfBoard &amp;amp;lt; 1 ) throw new Exception( Board.class.getName() + &amp;quot;- size_of_board must be greater than 0.&amp;quot; );&lt;br /&gt;
 		this.sizeOfBoard = sizeOfBoard;&lt;br /&gt;
 		board = new Vector();&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	&lt;br /&gt;
 	public int getSizeOfBoard()&lt;br /&gt;
 	{&lt;br /&gt;
 		return sizeOfBoard;&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	&lt;br /&gt;
 	public int countChessman()&lt;br /&gt;
 	{&lt;br /&gt;
 		return board.size();&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	&lt;br /&gt;
 	public boolean setChessman( Chessman chessman )&lt;br /&gt;
 	{&lt;br /&gt;
 		if( countChessman() == (sizeOfBoard^2) ) return false;&lt;br /&gt;
 		&lt;br /&gt;
 		Chessman prevOne;&lt;br /&gt;
 		for( Enumeration e=board.elements(); e.hasMoreElements(); ) {&lt;br /&gt;
 			prevOne = (Chessman)e.nextElement();&lt;br /&gt;
 			if( chessman.doIHurtYou( prevOne ) || prevOne.doIHurtYou( chessman )) return false;&lt;br /&gt;
 		}&lt;br /&gt;
 		&lt;br /&gt;
 		board.addElement( chessman );&lt;br /&gt;
 		return true;&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	&lt;br /&gt;
 	public Chessman getChessman( int x, int y )&lt;br /&gt;
 	{&lt;br /&gt;
 		return getChessman( new Point( x, y ));&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	&lt;br /&gt;
 	public Chessman getChessman( Point point )&lt;br /&gt;
 	{&lt;br /&gt;
 		Chessman prevOne;&lt;br /&gt;
 		for( Enumeration e=board.elements(); e.hasMoreElements(); ) {&lt;br /&gt;
 			prevOne = (Chessman)e.nextElement();&lt;br /&gt;
 			if( prevOne.isSamePoint( point )) return prevOne;&lt;br /&gt;
 		}&lt;br /&gt;
 		&lt;br /&gt;
 		return null;&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 	public boolean removeChessman( int x, int y )&lt;br /&gt;
 	{&lt;br /&gt;
 		return removeChessman( new Point( x, y ));&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	&lt;br /&gt;
 	public boolean removeChessman( Point point )&lt;br /&gt;
 	{&lt;br /&gt;
 		Chessman prevOne;&lt;br /&gt;
 		for( Enumeration e=board.elements(); e.hasMoreElements(); ) {&lt;br /&gt;
 			prevOne = (Chessman)e.nextElement();&lt;br /&gt;
 			if( prevOne.isSamePoint( point )) return removeChessman( prevOne );&lt;br /&gt;
 		}&lt;br /&gt;
 		&lt;br /&gt;
 		return false;&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	&lt;br /&gt;
 	public boolean removeChessman( Chessman chessman )&lt;br /&gt;
 	{&lt;br /&gt;
 		return board.removeElement( chessman );&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 	public void clearBoardBelowYPosition( int y )&lt;br /&gt;
 	{&lt;br /&gt;
 		Chessman prevOne;&lt;br /&gt;
 		for( Enumeration e=board.elements(); e.hasMoreElements(); ) {&lt;br /&gt;
 			prevOne = (Chessman)e.nextElement();&lt;br /&gt;
 			if( y &amp;amp;lt;= prevOne.getY() ) removeChessman( prevOne );&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	&lt;br /&gt;
 	public abstract void draw();&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== ConsolBoard.java ==&lt;br /&gt;
콘솔로 출력을 나타내는 보드&lt;br /&gt;
&lt;br /&gt;
 package suwlee.game.nqueen;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 import suwlee.game.nqueen.Board;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 public class ConsolBoard extends Board &lt;br /&gt;
 {&lt;br /&gt;
 	public ConsolBoard( int sizeOfBoard ) throws Exception&lt;br /&gt;
 	{&lt;br /&gt;
 		super( sizeOfBoard );&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 	/**&lt;br /&gt;
 	 * @see Board#draw()&lt;br /&gt;
 	 */&lt;br /&gt;
 	public void draw() &lt;br /&gt;
 	{&lt;br /&gt;
 		Chessman chessman;&lt;br /&gt;
 		for( int i=0; i&amp;amp;lt;getSizeOfBoard(); i++ ) {&lt;br /&gt;
 			for( int j=0; j&amp;amp;lt;getSizeOfBoard(); j++ ) {&lt;br /&gt;
 				chessman = getChessman( j, i );&lt;br /&gt;
 				if( chessman instanceof Queen ) System.out.print( &amp;quot;Q&amp;quot; );&lt;br /&gt;
 				else System.out.print( &amp;quot;.&amp;quot; );&lt;br /&gt;
 			}&lt;br /&gt;
 			System.out.println();&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== NQueenPlayer.java ==&lt;br /&gt;
n-Queens Problem을 해결하는 플레이어. 자신이 생각하는 알고리즘(여기서는 play 메소드)에 따라 보드에 체스 말 중, 퀸을 배열하고 올바른지 확인한다.&lt;br /&gt;
&lt;br /&gt;
 package suwlee.game.nqueen;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 public class NQueensPlayer &lt;br /&gt;
 {&lt;br /&gt;
 	private Board board;&lt;br /&gt;
 	private int numberOfSolutions;&lt;br /&gt;
 	&lt;br /&gt;
 	&lt;br /&gt;
 	public NQueensPlayer() {}&lt;br /&gt;
 	&lt;br /&gt;
 	&lt;br /&gt;
 	public void prepareBoard( int sizeOfBoard ) throws Exception&lt;br /&gt;
 	{&lt;br /&gt;
 		board = new ConsolBoard( sizeOfBoard );&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	&lt;br /&gt;
 	public void play()&lt;br /&gt;
 	{&lt;br /&gt;
 		numberOfSolutions = 0;&lt;br /&gt;
 		setQueen( 0 );&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	&lt;br /&gt;
 	public int getNumberOfSolutions()&lt;br /&gt;
 	{&lt;br /&gt;
 		return numberOfSolutions;&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	&lt;br /&gt;
 	private void setQueen( int y )&lt;br /&gt;
 	{&lt;br /&gt;
 		if( y == board.getSizeOfBoard() ) {&lt;br /&gt;
 			if( board.countChessman() == board.getSizeOfBoard() ) {&lt;br /&gt;
 				numberOfSolutions ++;&lt;br /&gt;
 				board.draw();&lt;br /&gt;
 			}&lt;br /&gt;
 			return;&lt;br /&gt;
 		}&lt;br /&gt;
 		&lt;br /&gt;
 		Chessman chessman = new Queen();&lt;br /&gt;
 		for( int x=0; x&amp;amp;lt;board.getSizeOfBoard(); x++ ) {&lt;br /&gt;
 			chessman.setPoint( x, y );&lt;br /&gt;
 			if( board.setChessman( chessman )) {&lt;br /&gt;
 				setQueen( y + 1 );&lt;br /&gt;
 				board.clearBoardBelowYPosition( y );&lt;br /&gt;
 			}&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	&lt;br /&gt;
 	public static void main( String [] args )&lt;br /&gt;
 	{&lt;br /&gt;
 		NQueensPlayer player = new NQueensPlayer();&lt;br /&gt;
 		try {&lt;br /&gt;
 			if( args.length != 1 ) throw new Exception();&lt;br /&gt;
 			player.prepareBoard( Integer.parseInt( args[0] ));&lt;br /&gt;
 			player.play();&lt;br /&gt;
 			System.out.println( &amp;quot;I found &amp;quot; + player.getNumberOfSolutions() + &amp;quot; solutions.&amp;quot; );&lt;br /&gt;
 		}&lt;br /&gt;
 		catch( Exception e ) {&lt;br /&gt;
 			System.out.println( &amp;quot;Usage: java NQueensPlayer size_of_board&amp;quot; );&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;Unknown</name></author>
	</entry>
</feed>