<?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=RandomWalk2%2F%EC%A1%B0%ED%98%84%ED%83%9C</id>
	<title>RandomWalk2/조현태 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=RandomWalk2%2F%EC%A1%B0%ED%98%84%ED%83%9C"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=RandomWalk2/%EC%A1%B0%ED%98%84%ED%83%9C&amp;action=history"/>
	<updated>2026-05-15T01:02:29Z</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=RandomWalk2/%EC%A1%B0%ED%98%84%ED%83%9C&amp;diff=84873&amp;oldid=prev</id>
		<title>Maintenance script: Repair batch-0003 pages from live compare</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=RandomWalk2/%EC%A1%B0%ED%98%84%ED%83%9C&amp;diff=84873&amp;oldid=prev"/>
		<updated>2026-03-27T00:29:07Z</updated>

		<summary type="html">&lt;p&gt;Repair batch-0003 pages from live compare&lt;/p&gt;
&lt;a href=&quot;https://mediawiki.zeropage.org/index.php?title=RandomWalk2/%EC%A1%B0%ED%98%84%ED%83%9C&amp;amp;diff=84873&amp;amp;oldid=38338&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=RandomWalk2/%EC%A1%B0%ED%98%84%ED%83%9C&amp;diff=38338&amp;oldid=prev</id>
		<title>imported&gt;Unknown at 05:27, 7 February 2021</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=RandomWalk2/%EC%A1%B0%ED%98%84%ED%83%9C&amp;diff=38338&amp;oldid=prev"/>
		<updated>2021-02-07T05:27:50Z</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;
  VI넘흐 빡생..ㅠ.ㅜ&lt;br /&gt;
&lt;br /&gt;
항상 루프문에선 register 키워드를 즐겨쓰는군 ㅋㅋ - 도현&lt;br /&gt;
 ㅎㅎ 리눅스라고 봐주진 않아요.ㅎㅎ - [[조현태]]&lt;br /&gt;
 == 느낀점 ==&lt;br /&gt;
** 역시 끝차 대장이 젤루 쎄다아..;;;ㅁ;;;&lt;br /&gt;
** 익숙치 않은 환경탓에 디자인이 좀더 나빠진듯..ㅎㅎㅎ 대충 때웠지만 나름대로 잘 된듯 하다.ㅋ (아닌가?ㅎㅎ)&lt;br /&gt;
** 구조체를 썼으면 나아졌을 뻔 했지만.. 요구사항이 늘어났을때 만들었어야 했는데.. vi가 익숙치 않아 많이 수정하는쪽은 되도록 피했다는..ㅋㅋ&lt;br /&gt;
 == 1차 버전 ==&lt;br /&gt;
 #include &amp;amp;lt;iostream&amp;amp;gt;&lt;br /&gt;
 #include &amp;amp;lt;string&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 using namespace std;&lt;br /&gt;
 &lt;br /&gt;
 #define MOVED_POINT 1&lt;br /&gt;
 &lt;br /&gt;
 bool IsHaveZero(int worldSizeX, int worldSizeY, int** target)&lt;br /&gt;
 {&lt;br /&gt;
 &lt;br /&gt;
 	for (register int i = 0; i &amp;amp;lt; worldSizeX; ++i)&lt;br /&gt;
 	{&lt;br /&gt;
 		for (register int j = 0; j &amp;amp;lt; worldSizeY; ++j)&lt;br /&gt;
 		{&lt;br /&gt;
 			if (0 == target[i][j])&lt;br /&gt;
 				return true;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	return false;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int main()&lt;br /&gt;
 {&lt;br /&gt;
 	int** myWorld;&lt;br /&gt;
 	int worldSizeX = 0;&lt;br /&gt;
 	int worldSizeY = 0;&lt;br /&gt;
 	//// 월드 초기화 ////&lt;br /&gt;
 	cout &amp;amp;lt;&amp;amp;lt; &amp;quot;input world size \n&amp;amp;gt;&amp;amp;gt;&amp;quot;;&lt;br /&gt;
 	cin &amp;amp;gt;&amp;amp;gt; worldSizeX &amp;amp;gt;&amp;amp;gt; worldSizeY;&lt;br /&gt;
 	myWorld = new int*[worldSizeX];&lt;br /&gt;
 	for (register int i = 0; i &amp;amp;lt; worldSizeX; ++i)&lt;br /&gt;
 	{&lt;br /&gt;
 		myWorld[i] = new int[worldSizeY];&lt;br /&gt;
 		for (register int j = 0; j &amp;amp;lt; worldSizeY; ++j)&lt;br /&gt;
 			myWorld[i][j] = 0;&lt;br /&gt;
 	}&lt;br /&gt;
 	//// 시작점 설정 ////&lt;br /&gt;
 	int myPointX = 0;&lt;br /&gt;
 	int myPointY = 0;&lt;br /&gt;
 	cout &amp;amp;lt;&amp;amp;lt; &amp;quot;input start point \n&amp;amp;gt;&amp;amp;gt;&amp;quot;;&lt;br /&gt;
 	cin &amp;amp;gt;&amp;amp;gt; myPointX &amp;amp;gt;&amp;amp;gt; myPointY;&lt;br /&gt;
 	//// 이동경로 입력 ////&lt;br /&gt;
 	string moveRotate;&lt;br /&gt;
 	cout &amp;amp;lt;&amp;amp;lt; &amp;quot;input move rotate\n&amp;amp;gt;&amp;amp;gt;&amp;quot;;&lt;br /&gt;
 	cin &amp;amp;gt;&amp;amp;gt; moveRotate;&lt;br /&gt;
 	//// 종료 메시지 입력 ////&lt;br /&gt;
 	cout &amp;amp;lt;&amp;amp;lt; &amp;quot;input End Num 999\n&amp;amp;gt;&amp;amp;gt;&amp;quot;;&lt;br /&gt;
 	int endNum;&lt;br /&gt;
 	cin &amp;amp;gt;&amp;amp;gt; endNum;&lt;br /&gt;
 	//// 이동 처리 ////&lt;br /&gt;
 	const int MOVE_TYPE = 8;&lt;br /&gt;
 	const int ADD_X[MOVE_TYPE] = {0, 1, 1, 1, 0, -1, -1, -1};&lt;br /&gt;
 	const int ADD_Y[MOVE_TYPE] = {-1, -1, 0, 1, 1, 1, 0, -1};&lt;br /&gt;
 	int moveNum = 0;&lt;br /&gt;
 	myWorld[myPointX][myPointY] = MOVED_POINT;&lt;br /&gt;
 	for (register int i = 0; i &amp;amp;lt; strlen(moveRotate.c_str()); ++i)&lt;br /&gt;
 	{&lt;br /&gt;
 		myPointX += ADD_X[moveRotate[i] - &amp;#039;0&amp;#039;];&lt;br /&gt;
 		myPointY += ADD_Y[moveRotate[i] - &amp;#039;0&amp;#039;];&lt;br /&gt;
 		++moveNum;&lt;br /&gt;
 		myWorld[myPointX][myPointY] = MOVED_POINT;&lt;br /&gt;
 		if (false == IsHaveZero(worldSizeX, worldSizeY, myWorld))&lt;br /&gt;
 			break;&lt;br /&gt;
 	}&lt;br /&gt;
 	cout &amp;amp;lt;&amp;amp;lt; moveNum &amp;amp;lt;&amp;amp;lt; endl;&lt;br /&gt;
 	for (register int i = 0; i &amp;amp;lt; worldSizeY; ++i)&lt;br /&gt;
 	{&lt;br /&gt;
 		for (register int j = 0; j &amp;amp;lt; worldSizeX; ++j)&lt;br /&gt;
 		{&lt;br /&gt;
 			cout &amp;amp;lt;&amp;amp;lt; myWorld[j][i];&lt;br /&gt;
 		}&lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; endl;&lt;br /&gt;
 	}&lt;br /&gt;
 	return 0;&lt;br /&gt;
 }&lt;br /&gt;
 == 2차 버전 ==&lt;br /&gt;
 #include &amp;amp;lt;iostream&amp;amp;gt;&lt;br /&gt;
 #include &amp;amp;lt;string&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 using namespace std;&lt;br /&gt;
 &lt;br /&gt;
 #define MOVED_POINT 1&lt;br /&gt;
 #define NUMBER_PLAYER 2&lt;br /&gt;
 &lt;br /&gt;
 bool IsHaveZero(int worldSizeX, int worldSizeY, int** target)&lt;br /&gt;
 {&lt;br /&gt;
 &lt;br /&gt;
 	for (register int i = 0; i &amp;amp;lt; worldSizeX; ++i)&lt;br /&gt;
 	{&lt;br /&gt;
 		for (register int j = 0; j &amp;amp;lt; worldSizeY; ++j)&lt;br /&gt;
 		{&lt;br /&gt;
 			if (0 == target[i][j])&lt;br /&gt;
 				return true;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	return false;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int main()&lt;br /&gt;
 {&lt;br /&gt;
 	int** myWorld;&lt;br /&gt;
 	int worldSizeX = 0;&lt;br /&gt;
 	int worldSizeY = 0;&lt;br /&gt;
 	//// 월드 초기화 ////&lt;br /&gt;
 	cout &amp;amp;lt;&amp;amp;lt; &amp;quot;input world size \n&amp;amp;gt;&amp;amp;gt;&amp;quot;;&lt;br /&gt;
 	cin &amp;amp;gt;&amp;amp;gt; worldSizeX &amp;amp;gt;&amp;amp;gt; worldSizeY;&lt;br /&gt;
 	myWorld = new int*[worldSizeX];&lt;br /&gt;
 	for (register int i = 0; i &amp;amp;lt; worldSizeX; ++i)&lt;br /&gt;
 	{&lt;br /&gt;
 		myWorld[i] = new int[worldSizeY];&lt;br /&gt;
 		for (register int j = 0; j &amp;amp;lt; worldSizeY; ++j)&lt;br /&gt;
 			myWorld[i][j] = 0;&lt;br /&gt;
 	}&lt;br /&gt;
 	//// 시작점 설정 ////&lt;br /&gt;
 	string moveRotate[NUMBER_PLAYER];&lt;br /&gt;
 	int myPointX[NUMBER_PLAYER];&lt;br /&gt;
 	int myPointY[NUMBER_PLAYER];&lt;br /&gt;
 	for (int i = 0; i &amp;amp;lt; NUMBER_PLAYER; ++i)&lt;br /&gt;
 	{&lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; &amp;quot;input start point \n&amp;amp;gt;&amp;amp;gt;&amp;quot;;&lt;br /&gt;
 		cin &amp;amp;gt;&amp;amp;gt; myPointX[i] &amp;amp;gt;&amp;amp;gt; myPointY[i];&lt;br /&gt;
 		//// 이동경로 입력 ////&lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; &amp;quot;input move rotate\n&amp;amp;gt;&amp;amp;gt;&amp;quot;;&lt;br /&gt;
 		cin &amp;amp;gt;&amp;amp;gt; moveRotate[i];&lt;br /&gt;
 	}&lt;br /&gt;
 	//// 종료 메시지 입력 ////&lt;br /&gt;
 	cout &amp;amp;lt;&amp;amp;lt; &amp;quot;input End Num 999\n&amp;amp;gt;&amp;amp;gt;&amp;quot;;&lt;br /&gt;
 	int endNum;&lt;br /&gt;
 	cin &amp;amp;gt;&amp;amp;gt; endNum;&lt;br /&gt;
 	//// 이동 처리 ////&lt;br /&gt;
 	const int MOVE_TYPE = 8;&lt;br /&gt;
 	const int ADD_X[MOVE_TYPE] = {0, 1, 1, 1, 0, -1, -1, -1};&lt;br /&gt;
 	const int ADD_Y[MOVE_TYPE] = {-1, -1, 0, 1, 1, 1, 0, -1};&lt;br /&gt;
 	int moveNum[NUMBER_PLAYER] = {0,};&lt;br /&gt;
 	for (register int i = 0; i &amp;amp;lt; NUMBER_PLAYER; ++i)&lt;br /&gt;
 		myWorld[myPointX[i]][myPointY[i]] = MOVED_POINT;&lt;br /&gt;
 	&lt;br /&gt;
 	bool isChanged = true;&lt;br /&gt;
 	for (register int i = 0; isChanged; ++i)&lt;br /&gt;
 	{&lt;br /&gt;
 		isChanged = false;&lt;br /&gt;
 		for (register int j = 0; j &amp;amp;lt; NUMBER_PLAYER; ++j)&lt;br /&gt;
 		{&lt;br /&gt;
 			if (i &amp;amp;lt; strlen(moveRotate[j].c_str()))&lt;br /&gt;
 			{&lt;br /&gt;
 				isChanged = true;&lt;br /&gt;
 				myPointX[j] += ADD_X[moveRotate[j][i] - &amp;#039;0&amp;#039;];&lt;br /&gt;
 				myPointY[j] += ADD_Y[moveRotate[j][i] - &amp;#039;0&amp;#039;];&lt;br /&gt;
 				++moveNum[j];&lt;br /&gt;
 				myWorld[myPointX[j]][myPointY[j]] = MOVED_POINT;&lt;br /&gt;
 				if (false == IsHaveZero(worldSizeX, worldSizeY, myWorld))&lt;br /&gt;
 					break;&lt;br /&gt;
 			}&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	for (register int i = 0; i &amp;amp;lt; NUMBER_PLAYER; ++i)&lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; moveNum[i] &amp;amp;lt;&amp;amp;lt; endl;&lt;br /&gt;
 	for (register int i = 0; i &amp;amp;lt; worldSizeY; ++i)&lt;br /&gt;
 	{&lt;br /&gt;
 		for (register int j = 0; j &amp;amp;lt; worldSizeX; ++j)&lt;br /&gt;
 		{&lt;br /&gt;
 			cout &amp;amp;lt;&amp;amp;lt; myWorld[j][i];&lt;br /&gt;
 		}&lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; endl;&lt;br /&gt;
 	}&lt;br /&gt;
 	return 0;&lt;br /&gt;
 }&lt;br /&gt;
 == 3차 버전 ==&lt;br /&gt;
 #include &amp;amp;lt;iostream&amp;amp;gt;&lt;br /&gt;
 #include &amp;amp;lt;string&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 using namespace std;&lt;br /&gt;
 &lt;br /&gt;
 #define NUMBER_PLAYER 999&lt;br /&gt;
 #define END_NUMBER 999&lt;br /&gt;
 &lt;br /&gt;
 bool IsHaveZero(int worldSizeX, int worldSizeY, int** target)&lt;br /&gt;
 {&lt;br /&gt;
 &lt;br /&gt;
 	for (register int i = 0; i &amp;amp;lt; worldSizeX; ++i)&lt;br /&gt;
 	{&lt;br /&gt;
 		for (register int j = 0; j &amp;amp;lt; worldSizeY; ++j)&lt;br /&gt;
 		{&lt;br /&gt;
 			if (0 == target[i][j])&lt;br /&gt;
 				return true;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	return false;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int main()&lt;br /&gt;
 {&lt;br /&gt;
 	int numberPlayer = 0;&lt;br /&gt;
 	int** myWorld;&lt;br /&gt;
 	int worldSizeX = 0;&lt;br /&gt;
 	int worldSizeY = 0;&lt;br /&gt;
 	//// 월드 초기화 ////&lt;br /&gt;
 	cout &amp;amp;lt;&amp;amp;lt; &amp;quot;input world size \n&amp;amp;gt;&amp;amp;gt;&amp;quot;;&lt;br /&gt;
 	cin &amp;amp;gt;&amp;amp;gt; worldSizeX &amp;amp;gt;&amp;amp;gt; worldSizeY;&lt;br /&gt;
 	myWorld = new int*[worldSizeX];&lt;br /&gt;
 	for (register int i = 0; i &amp;amp;lt; worldSizeX; ++i)&lt;br /&gt;
 	{&lt;br /&gt;
 		myWorld[i] = new int[worldSizeY];&lt;br /&gt;
 		for (register int j = 0; j &amp;amp;lt; worldSizeY; ++j)&lt;br /&gt;
 			myWorld[i][j] = 0;&lt;br /&gt;
 	}&lt;br /&gt;
 	//// 시작점 설정 ////&lt;br /&gt;
 	string moveRotate[NUMBER_PLAYER];&lt;br /&gt;
 	int myPointX[NUMBER_PLAYER];&lt;br /&gt;
 	int myPointY[NUMBER_PLAYER];&lt;br /&gt;
 	for (int i = 0; i &amp;amp;lt; NUMBER_PLAYER; ++i)&lt;br /&gt;
 	{&lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; &amp;quot;input start point \n&amp;amp;gt;&amp;amp;gt;&amp;quot;;&lt;br /&gt;
 		cin &amp;amp;gt;&amp;amp;gt; myPointX[i];&lt;br /&gt;
 		if (END_NUMBER == myPointX[i])&lt;br /&gt;
 			break;&lt;br /&gt;
 		cin &amp;amp;gt;&amp;amp;gt; myPointY[i];&lt;br /&gt;
 		++numberPlayer;&lt;br /&gt;
 		//// 이동경로 입력 ////&lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; &amp;quot;input move rotate\n&amp;amp;gt;&amp;amp;gt;&amp;quot;;&lt;br /&gt;
 		cin &amp;amp;gt;&amp;amp;gt; moveRotate[i];&lt;br /&gt;
 	}&lt;br /&gt;
 	//// 이동 처리 ////&lt;br /&gt;
 	const int MOVE_TYPE = 8;&lt;br /&gt;
 	const int ADD_X[MOVE_TYPE] = {0, 1, 1, 1, 0, -1, -1, -1};&lt;br /&gt;
 	const int ADD_Y[MOVE_TYPE] = {-1, -1, 0, 1, 1, 1, 0, -1};&lt;br /&gt;
 	int moveNum[NUMBER_PLAYER] = {0,};&lt;br /&gt;
 	for (register int i = 0; i &amp;amp;lt; numberPlayer; ++i)&lt;br /&gt;
 		++myWorld[myPointX[i]][myPointY[i]];&lt;br /&gt;
 	&lt;br /&gt;
 	bool isChanged = true;&lt;br /&gt;
 	for (register int i = 0; isChanged; ++i)&lt;br /&gt;
 	{&lt;br /&gt;
 		isChanged = false;&lt;br /&gt;
 		for (register int j = 0; j &amp;amp;lt; numberPlayer; ++j)&lt;br /&gt;
 		{&lt;br /&gt;
 			if (i &amp;amp;lt; strlen(moveRotate[j].c_str()))&lt;br /&gt;
 			{&lt;br /&gt;
 				isChanged = true;&lt;br /&gt;
 				myPointX[j] += ADD_X[moveRotate[j][i] - &amp;#039;0&amp;#039;];&lt;br /&gt;
 				myPointY[j] += ADD_Y[moveRotate[j][i] - &amp;#039;0&amp;#039;];&lt;br /&gt;
 				++moveNum[j];&lt;br /&gt;
 				++myWorld[myPointX[j]][myPointY[j]];&lt;br /&gt;
 				if (false == IsHaveZero(worldSizeX, worldSizeY, myWorld))&lt;br /&gt;
 					break;&lt;br /&gt;
 			}&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	for (register int i = 0; i &amp;amp;lt; numberPlayer; ++i)&lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; moveNum[i] &amp;amp;lt;&amp;amp;lt; endl;&lt;br /&gt;
 	for (register int i = 0; i &amp;amp;lt; worldSizeY; ++i)&lt;br /&gt;
 	{&lt;br /&gt;
 		for (register int j = 0; j &amp;amp;lt; worldSizeX; ++j)&lt;br /&gt;
 		{&lt;br /&gt;
 			cout &amp;amp;lt;&amp;amp;lt; myWorld[j][i];&lt;br /&gt;
 		}&lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; endl;&lt;br /&gt;
 	}&lt;br /&gt;
 	return 0;&lt;br /&gt;
 }&lt;br /&gt;
 == 4차버전 ==&lt;br /&gt;
 #include &amp;amp;lt;iostream&amp;amp;gt;&lt;br /&gt;
 #include &amp;amp;lt;string&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 using namespace std;&lt;br /&gt;
 &lt;br /&gt;
 #define NUMBER_PLAYER 101&lt;br /&gt;
 #define END_NUMBER 999&lt;br /&gt;
 &lt;br /&gt;
 bool IsHaveZero(int worldSizeX, int worldSizeY, int** target)&lt;br /&gt;
 {&lt;br /&gt;
 &lt;br /&gt;
 	for (register int i = 0; i &amp;amp;lt; worldSizeX; ++i)&lt;br /&gt;
 	{&lt;br /&gt;
 		for (register int j = 0; j &amp;amp;lt; worldSizeY; ++j)&lt;br /&gt;
 		{&lt;br /&gt;
 			if (0 == target[i][j])&lt;br /&gt;
 				return true;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	return false;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int main()&lt;br /&gt;
 {&lt;br /&gt;
 	int numberPlayer = 0;&lt;br /&gt;
 	int** myWorld;&lt;br /&gt;
 	int worldSizeX = 0;&lt;br /&gt;
 	int worldSizeY = 0;&lt;br /&gt;
 	//// 월드 초기화 ////&lt;br /&gt;
 	cout &amp;amp;lt;&amp;amp;lt; &amp;quot;input world size \n&amp;amp;gt;&amp;amp;gt;&amp;quot;;&lt;br /&gt;
 	cin &amp;amp;gt;&amp;amp;gt; worldSizeX &amp;amp;gt;&amp;amp;gt; worldSizeY;&lt;br /&gt;
 	myWorld = new int*[worldSizeX];&lt;br /&gt;
 	for (register int i = 0; i &amp;amp;lt; worldSizeX; ++i)&lt;br /&gt;
 	{&lt;br /&gt;
 		myWorld[i] = new int[worldSizeY];&lt;br /&gt;
 		for (register int j = 0; j &amp;amp;lt; worldSizeY; ++j)&lt;br /&gt;
 			myWorld[i][j] = 0;&lt;br /&gt;
 	}&lt;br /&gt;
 	//// 시작점 설정 ////&lt;br /&gt;
 	string moveRotate[NUMBER_PLAYER];&lt;br /&gt;
 	int myPointX[NUMBER_PLAYER];&lt;br /&gt;
 	int myPointY[NUMBER_PLAYER];&lt;br /&gt;
 	int movePoint[NUMBER_PLAYER];&lt;br /&gt;
 	char selectType;&lt;br /&gt;
 	for (int i = 0; i &amp;amp;lt; NUMBER_PLAYER; ++i)&lt;br /&gt;
 	{&lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; &amp;quot;input start point and Type\n&amp;amp;gt;&amp;amp;gt;&amp;quot;;&lt;br /&gt;
 		cin &amp;amp;gt;&amp;amp;gt; myPointX[i];&lt;br /&gt;
 		if (END_NUMBER == myPointX[i])&lt;br /&gt;
 			break;&lt;br /&gt;
 		cin &amp;amp;gt;&amp;amp;gt; myPointY[i] &amp;amp;gt;&amp;amp;gt; selectType;&lt;br /&gt;
 		++numberPlayer;&lt;br /&gt;
 		//// 이동경로 입력 ////&lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; &amp;quot;input move rotate\n&amp;amp;gt;&amp;amp;gt;&amp;quot;;&lt;br /&gt;
 		cin &amp;amp;gt;&amp;amp;gt; moveRotate[i];&lt;br /&gt;
 		if (&amp;#039;S&amp;#039; == selectType)&lt;br /&gt;
 			movePoint[i] = 2;&lt;br /&gt;
 		else&lt;br /&gt;
 			movePoint[i] = 1;&lt;br /&gt;
 	}&lt;br /&gt;
 	//// 이동 처리 ////&lt;br /&gt;
 	const int MOVE_TYPE = 8;&lt;br /&gt;
 	const int ADD_X[MOVE_TYPE] = {0, 1, 1, 1, 0, -1, -1, -1};&lt;br /&gt;
 	const int ADD_Y[MOVE_TYPE] = {-1, -1, 0, 1, 1, 1, 0, -1};&lt;br /&gt;
 	int moveNum[NUMBER_PLAYER] = {0,};&lt;br /&gt;
 	for (register int i = 0; i &amp;amp;lt; numberPlayer; ++i)&lt;br /&gt;
 		++myWorld[myPointX[i]][myPointY[i]];&lt;br /&gt;
 	&lt;br /&gt;
 	bool isChanged = true;&lt;br /&gt;
 	for (register int i = 0; isChanged; ++i)&lt;br /&gt;
 	{&lt;br /&gt;
 		isChanged = false;&lt;br /&gt;
 		for (register int j = 0; j &amp;amp;lt; numberPlayer; ++j)&lt;br /&gt;
 		{&lt;br /&gt;
 			for (register int k = 0; k &amp;amp;lt; movePoint[j]; ++k)&lt;br /&gt;
 			{&lt;br /&gt;
 				if (i * movePoint[j] + k &amp;amp;gt;= strlen(moveRotate[j].c_str()))&lt;br /&gt;
 					break;&lt;br /&gt;
 				isChanged = true;&lt;br /&gt;
 				myPointX[j] += ADD_X[moveRotate[j][i * movePoint[j] + k] - &amp;#039;0&amp;#039;];&lt;br /&gt;
 				myPointY[j] += ADD_Y[moveRotate[j][i * movePoint[j] + k] - &amp;#039;0&amp;#039;];&lt;br /&gt;
 				++moveNum[j];&lt;br /&gt;
 				++myWorld[myPointX[j]][myPointY[j]];&lt;br /&gt;
 				if (false == IsHaveZero(worldSizeX, worldSizeY, myWorld))&lt;br /&gt;
 					break;&lt;br /&gt;
 			}&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	for (register int i = 0; i &amp;amp;lt; numberPlayer; ++i)&lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; moveNum[i] &amp;amp;lt;&amp;amp;lt; endl;&lt;br /&gt;
 	for (register int i = 0; i &amp;amp;lt; worldSizeY; ++i)&lt;br /&gt;
 	{&lt;br /&gt;
 		for (register int j = 0; j &amp;amp;lt; worldSizeX; ++j)&lt;br /&gt;
 		{&lt;br /&gt;
 			cout &amp;amp;lt;&amp;amp;lt; myWorld[j][i];&lt;br /&gt;
 		}&lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; endl;&lt;br /&gt;
 	}&lt;br /&gt;
 	return 0;&lt;br /&gt;
 }&lt;br /&gt;
 == 5차 버전 ==&lt;br /&gt;
 #include &amp;amp;lt;iostream&amp;amp;gt;&lt;br /&gt;
 #include &amp;amp;lt;string&amp;amp;gt;&lt;br /&gt;
 #include &amp;amp;lt;map&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 using namespace std;&lt;br /&gt;
 &lt;br /&gt;
 #define NUMBER_PLAYER 101&lt;br /&gt;
 #define END_NUMBER 999&lt;br /&gt;
 #define POWER_DELAY 5&lt;br /&gt;
 #define SLEEP 8&lt;br /&gt;
 #define NUMBER_OF_TYPE 3&lt;br /&gt;
 &lt;br /&gt;
 bool IsHaveZero(int worldSizeX, int worldSizeY, int** target)&lt;br /&gt;
 {&lt;br /&gt;
 &lt;br /&gt;
 	for (register int i = 0; i &amp;amp;lt; worldSizeX; ++i)&lt;br /&gt;
 	{&lt;br /&gt;
 		for (register int j = 0; j &amp;amp;lt; worldSizeY; ++j)&lt;br /&gt;
 		{&lt;br /&gt;
 			if (0 == target[i][j])&lt;br /&gt;
 				return true;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	return false;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 int main()&lt;br /&gt;
 {&lt;br /&gt;
 	int numberPlayer = 0;&lt;br /&gt;
 	int** myWorld;&lt;br /&gt;
 	int worldSizeX = 0;&lt;br /&gt;
 	int worldSizeY = 0;&lt;br /&gt;
 	map&amp;amp;lt;int, bool&amp;amp;gt; foodDatas;&lt;br /&gt;
 	//// 월드 초기화 ////&lt;br /&gt;
 	cout &amp;amp;lt;&amp;amp;lt; &amp;quot;input world size \n&amp;amp;gt;&amp;amp;gt;&amp;quot;;&lt;br /&gt;
 	cin &amp;amp;gt;&amp;amp;gt; worldSizeX &amp;amp;gt;&amp;amp;gt; worldSizeY;&lt;br /&gt;
 	myWorld = new int*[worldSizeX];&lt;br /&gt;
 	for (register int i = 0; i &amp;amp;lt; worldSizeX; ++i)&lt;br /&gt;
 	{&lt;br /&gt;
 		myWorld[i] = new int[worldSizeY];&lt;br /&gt;
 		for (register int j = 0; j &amp;amp;lt; worldSizeY; ++j)&lt;br /&gt;
 			myWorld[i][j] = 0;&lt;br /&gt;
 	}&lt;br /&gt;
 	//// 음식 초기화 ////&lt;br /&gt;
 	cout &amp;amp;lt;&amp;amp;lt; &amp;quot;input food point (-1 is Exit)\n&amp;quot;;&lt;br /&gt;
 	int foodX;&lt;br /&gt;
 	int foodY;&lt;br /&gt;
 	while(1)&lt;br /&gt;
 	{&lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; &amp;quot;&amp;amp;gt;&amp;amp;gt;&amp;quot;;&lt;br /&gt;
 		cin &amp;amp;gt;&amp;amp;gt; foodX;&lt;br /&gt;
 		if (-1 == foodX)&lt;br /&gt;
 			break;&lt;br /&gt;
 		cin &amp;amp;gt;&amp;amp;gt; foodY;&lt;br /&gt;
 		foodDatas[foodX * worldSizeY + foodY] = true;&lt;br /&gt;
 	}&lt;br /&gt;
 	//// 시작점 설정 ////&lt;br /&gt;
 	string moveRotate[NUMBER_PLAYER];&lt;br /&gt;
 	int myPointX[NUMBER_PLAYER];&lt;br /&gt;
 	int myPointY[NUMBER_PLAYER];&lt;br /&gt;
 	int moveType[NUMBER_PLAYER];&lt;br /&gt;
 	char selectType;&lt;br /&gt;
 	for (int i = 0; i &amp;amp;lt; NUMBER_PLAYER; ++i)&lt;br /&gt;
 	{&lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; &amp;quot;input start point and Type\n&amp;amp;gt;&amp;amp;gt;&amp;quot;;&lt;br /&gt;
 		cin &amp;amp;gt;&amp;amp;gt; myPointX[i];&lt;br /&gt;
 		if (END_NUMBER == myPointX[i])&lt;br /&gt;
 			break;&lt;br /&gt;
 		cin &amp;amp;gt;&amp;amp;gt; myPointY[i] &amp;amp;gt;&amp;amp;gt; selectType;&lt;br /&gt;
 		++numberPlayer;&lt;br /&gt;
 		//// 이동경로 입력 ////&lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; &amp;quot;input move rotate\n&amp;amp;gt;&amp;amp;gt;&amp;quot;;&lt;br /&gt;
 		cin &amp;amp;gt;&amp;amp;gt; moveRotate[i];&lt;br /&gt;
 		if (&amp;#039;S&amp;#039; == selectType)&lt;br /&gt;
 			moveType[i] = -1;&lt;br /&gt;
 		else&lt;br /&gt;
 			moveType[i] = 0;&lt;br /&gt;
 	}&lt;br /&gt;
 	//// 이동 처리 ////&lt;br /&gt;
 	const int MOVE_TYPE = 9;&lt;br /&gt;
 	const int ADD_X[MOVE_TYPE] = {0, 1, 1, 1, 0, -1, -1, -1, 0};&lt;br /&gt;
 	const int ADD_Y[MOVE_TYPE] = {-1, -1, 0, 1, 1, 1, 0, -1, 0};&lt;br /&gt;
 	int moveNum[NUMBER_PLAYER] = {0,};&lt;br /&gt;
 	for (register int i = 0; i &amp;amp;lt; numberPlayer; ++i)&lt;br /&gt;
 		++myWorld[myPointX[i]][myPointY[i]];&lt;br /&gt;
 	&lt;br /&gt;
 	bool isChanged = true;&lt;br /&gt;
 	for (register int i = 0; isChanged; ++i)&lt;br /&gt;
 	{&lt;br /&gt;
 		isChanged = false;&lt;br /&gt;
 		for (register int j = 0; j &amp;amp;lt; numberPlayer; ++j)&lt;br /&gt;
 		{&lt;br /&gt;
 			int moveDelay = 1;&lt;br /&gt;
 			if (0 != moveType[j])&lt;br /&gt;
 			{&lt;br /&gt;
 				moveDelay = 2;&lt;br /&gt;
 				if (moveType[j] &amp;amp;gt; 0)&lt;br /&gt;
 					--moveType[j];&lt;br /&gt;
 			}&lt;br /&gt;
 			for (register int k = 0; k &amp;amp;lt; moveDelay; ++k)&lt;br /&gt;
 			{&lt;br /&gt;
 				if (i * moveDelay + k &amp;amp;gt;= strlen(moveRotate[j].c_str()))&lt;br /&gt;
 					break;&lt;br /&gt;
 				isChanged = true;&lt;br /&gt;
 				int oder = moveRotate[j][i * moveDelay + k] - &amp;#039;0&amp;#039;;&lt;br /&gt;
 				myPointX[j] += ADD_X[oder];&lt;br /&gt;
 				myPointY[j] += ADD_Y[oder];&lt;br /&gt;
 				if (SLEEP != oder)&lt;br /&gt;
 				{&lt;br /&gt;
 					++moveNum[j];&lt;br /&gt;
 					++myWorld[myPointX[j]][myPointY[j]];&lt;br /&gt;
 				}&lt;br /&gt;
 				if (false == IsHaveZero(worldSizeX, worldSizeY, myWorld))&lt;br /&gt;
 					break;&lt;br /&gt;
 			}&lt;br /&gt;
 		}&lt;br /&gt;
 		for (register int j = 0; ; ++j)&lt;br /&gt;
 		{&lt;br /&gt;
 			for (register int k = 0; k &amp;amp;lt; numberPlayer; ++k)&lt;br /&gt;
 			{&lt;br /&gt;
 				if (foodDatas[myPointX[k] * worldSizeY + myPointY[k]] &amp;amp;amp;&amp;amp;amp; moveType[k] == j)&lt;br /&gt;
 				{&lt;br /&gt;
 					foodDatas[myPointX[k] * worldSizeY + myPointY[k]] = false;&lt;br /&gt;
 					if (-1 != moveType[k])&lt;br /&gt;
 						moveType[k] = POWER_DELAY;&lt;br /&gt;
 				}&lt;br /&gt;
 			}&lt;br /&gt;
 			if (POWER_DELAY == j)&lt;br /&gt;
 				j = -2;&lt;br /&gt;
 			else if (-1 == j)&lt;br /&gt;
 				break;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	for (register int i = 0; i &amp;amp;lt; numberPlayer; ++i)&lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; moveNum[i] &amp;amp;lt;&amp;amp;lt; endl;&lt;br /&gt;
 	for (register int i = 0; i &amp;amp;lt; worldSizeY; ++i)&lt;br /&gt;
 	{&lt;br /&gt;
 		for (register int j = 0; j &amp;amp;lt; worldSizeX; ++j)&lt;br /&gt;
 		{&lt;br /&gt;
 			cout &amp;amp;lt;&amp;amp;lt; myWorld[j][i];&lt;br /&gt;
 		}&lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; endl;&lt;br /&gt;
 	}&lt;br /&gt;
 	return 0;&lt;br /&gt;
 }&lt;br /&gt;
----&lt;br /&gt;
[[RandomWalk2]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Unknown</name></author>
	</entry>
</feed>