<?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%2FClassPrototype</id>
	<title>RandomWalk2/ClassPrototype - 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%2FClassPrototype"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=RandomWalk2/ClassPrototype&amp;action=history"/>
	<updated>2026-05-15T03:02:23Z</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/ClassPrototype&amp;diff=38327&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/ClassPrototype&amp;diff=38327&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; #include &amp;amp;lt;iostream&amp;amp;gt;&lt;br /&gt;
 #include &amp;amp;lt;assert.h&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 using namespace std;&lt;br /&gt;
 &lt;br /&gt;
 typedef struct __IntPair {&lt;br /&gt;
 	int n1;&lt;br /&gt;
 	int n2;&lt;br /&gt;
 } IntPair;&lt;br /&gt;
 &lt;br /&gt;
 class Board&lt;br /&gt;
 {&lt;br /&gt;
 public:&lt;br /&gt;
 	int m_nMaxCol;&lt;br /&gt;
 	int m_nMaxRow;&lt;br /&gt;
 &lt;br /&gt;
 	IntPair m_nRoachPos;&lt;br /&gt;
 &lt;br /&gt;
 	Board () {&lt;br /&gt;
 		for (int i=0;i&amp;amp;lt;100;i++) {&lt;br /&gt;
 			for (int j=0;j&amp;amp;lt;100;j++) {&lt;br /&gt;
 				boardArray[i][j] = 0;&lt;br /&gt;
 			}&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 &lt;br /&gt;
 	int boardArray[100][100];&lt;br /&gt;
 &lt;br /&gt;
 	void setSize (int nCol, int nRow) { &lt;br /&gt;
 		m_nMaxCol = nCol;&lt;br /&gt;
 		m_nMaxRow = nRow;&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	void printBoardStatus () { &lt;br /&gt;
 		for (int i=0;i&amp;amp;lt;m_nMaxRow;i++) {&lt;br /&gt;
 			for (int j=0;j&amp;amp;lt;m_nMaxCol;j++) {&lt;br /&gt;
 				cout &amp;amp;lt;&amp;amp;lt; boardArray[i][j] &amp;amp;lt;&amp;amp;lt; &amp;quot; &amp;quot;;&lt;br /&gt;
 			}&lt;br /&gt;
 			cout &amp;amp;lt;&amp;amp;lt;endl;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	void updateCell () {  }&lt;br /&gt;
 	&lt;br /&gt;
 	int isCheckedAllCells () {return 0; }&lt;br /&gt;
 &lt;br /&gt;
 	void setRoachPosition(int nRow, int nCol) {&lt;br /&gt;
 		m_nRoachPos.n1 = nRow;&lt;br /&gt;
 		m_nRoachPos.n2 = nCol;&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	IntPair getRoachPosition () {&lt;br /&gt;
 		return m_nRoachPos;&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 class Journey&lt;br /&gt;
 {&lt;br /&gt;
 public:&lt;br /&gt;
 &lt;br /&gt;
 	int journeyArray[100];&lt;br /&gt;
 	int nCurrentPosition;&lt;br /&gt;
 	int journeySize;&lt;br /&gt;
 &lt;br /&gt;
 	Journey (char* buffer) {&lt;br /&gt;
 		journeySize = strlen(buffer);&lt;br /&gt;
 &lt;br /&gt;
 		for (int i=0;i&amp;amp;lt;journeySize;i++) {&lt;br /&gt;
 			journeyArray[i] = buffer[i] - &amp;#039;0&amp;#039;;&lt;br /&gt;
 		}&lt;br /&gt;
 		nCurrentPosition = -1;&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	~Journey () {   }&lt;br /&gt;
 &lt;br /&gt;
 	int getNextJourney () {&lt;br /&gt;
 		nCurrentPosition ++;&lt;br /&gt;
 		if (journeySize &amp;amp;lt;= nCurrentPosition) return -1;&lt;br /&gt;
 &lt;br /&gt;
 		return journeyArray[nCurrentPosition];&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 class Roach&lt;br /&gt;
 {&lt;br /&gt;
 public:&lt;br /&gt;
 	Journey* m_pJourney;&lt;br /&gt;
 	Board* m_pBoard;&lt;br /&gt;
 	&lt;br /&gt;
 	int m_nMoveCount;&lt;br /&gt;
 &lt;br /&gt;
 	Roach () {&lt;br /&gt;
 &lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	Roach (Journey* pJourney) { m_pJourney = pJourney; &lt;br /&gt;
 		m_nMoveCount=0;	&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	~Roach () {   }&lt;br /&gt;
 &lt;br /&gt;
 	void goAboard (Board* pBoard, int nStartRow, int nStartCol) {&lt;br /&gt;
 		m_pBoard = pBoard;&lt;br /&gt;
 &lt;br /&gt;
 		m_pBoard-&amp;amp;gt;setRoachPosition(nStartRow, nStartCol);&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	void run () {&lt;br /&gt;
 		while (!isFinished ()) {&lt;br /&gt;
 			move (m_pJourney-&amp;amp;gt;getNextJourney ());&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	void move (int nLocation) {&lt;br /&gt;
 &lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	int isFinished () {&lt;br /&gt;
 		return 1;&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	void printMoveCount () {&lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; &amp;quot;move count : &amp;quot; &amp;amp;lt;&amp;amp;lt; m_nMoveCount &amp;amp;lt;&amp;amp;lt; endl;&lt;br /&gt;
 	}&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 class Inputer&lt;br /&gt;
 {&lt;br /&gt;
 public:&lt;br /&gt;
 	int m_nBoardCol;&lt;br /&gt;
 	int m_nBoardRow;&lt;br /&gt;
 &lt;br /&gt;
 	int m_nStartCol;&lt;br /&gt;
 	int m_nStartRow;&lt;br /&gt;
 &lt;br /&gt;
 	Journey* journey;&lt;br /&gt;
 	void getData () {&lt;br /&gt;
 		cin &amp;amp;gt;&amp;amp;gt; m_nBoardRow &amp;amp;gt;&amp;amp;gt; m_nBoardCol;&lt;br /&gt;
 		cin &amp;amp;gt;&amp;amp;gt; m_nStartRow &amp;amp;gt;&amp;amp;gt; m_nStartCol;&lt;br /&gt;
 &lt;br /&gt;
 		char buffer[100];&lt;br /&gt;
 		scanf (&amp;quot;%s&amp;quot;, buffer);&lt;br /&gt;
 &lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	int getBoardCol () { return m_nBoardRow; }&lt;br /&gt;
 	int getBoardRow () { return m_nBoardCol; }&lt;br /&gt;
 	int getStartCol () { return 0; }&lt;br /&gt;
 	int getStartRow () { return 0; }&lt;br /&gt;
 	Journey* getJourney () { return journey; }&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 class Game&lt;br /&gt;
 {&lt;br /&gt;
 public:&lt;br /&gt;
 	Inputer* inputer; &lt;br /&gt;
 	Board board;&lt;br /&gt;
 	Roach* roach;&lt;br /&gt;
 &lt;br /&gt;
 	Game () {   }&lt;br /&gt;
 	~Game () {   }&lt;br /&gt;
 &lt;br /&gt;
 	void setInputer (Inputer* pInputer) {&lt;br /&gt;
 		inputer = pInputer;&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	void start () {&lt;br /&gt;
 		roach = new Roach (inputer-&amp;amp;gt;getJourney ());&lt;br /&gt;
 		board.setSize (inputer-&amp;amp;gt;getBoardRow (), inputer-&amp;amp;gt;getBoardCol ());&lt;br /&gt;
 &lt;br /&gt;
 		roach-&amp;amp;gt;goAboard (&amp;amp;amp;board, inputer-&amp;amp;gt;getStartRow(), inputer-&amp;amp;gt;getStartCol());&lt;br /&gt;
 		roach-&amp;amp;gt;run ();&lt;br /&gt;
 &lt;br /&gt;
 		roach-&amp;amp;gt;printMoveCount ();&lt;br /&gt;
 		board.printBoardStatus ();&lt;br /&gt;
 	}&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 void testJourney () {&lt;br /&gt;
 	char buffer[100] = &amp;quot;112&amp;quot;;&lt;br /&gt;
 	Journey* journey = new Journey(buffer);&lt;br /&gt;
 &lt;br /&gt;
 	int actual; &lt;br /&gt;
 &lt;br /&gt;
 	int expectedSet[5] = {1,1,2,-1,-1};&lt;br /&gt;
 &lt;br /&gt;
 	for (int i=0;i&amp;amp;lt;5;i++) {&lt;br /&gt;
 		actual = journey-&amp;amp;gt;getNextJourney();&lt;br /&gt;
 		assert (actual == expectedSet[i]);&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	cout &amp;amp;lt;&amp;amp;lt; &amp;quot;Journey.getNextJourney() Ok \n&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void testRoach () {&lt;br /&gt;
 	Board board;&lt;br /&gt;
 	board.setSize(5,5);&lt;br /&gt;
 	Roach roach;&lt;br /&gt;
 	roach.goAboard(&amp;amp;amp;board, 1, 2);&lt;br /&gt;
 	assert (board.getRoachPosition ().n1 == 1);&lt;br /&gt;
 	assert (board.getRoachPosition ().n2 == 2);&lt;br /&gt;
 	cout &amp;amp;lt;&amp;amp;lt; &amp;quot;Roach.goAboard () Ok \n&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int main ()&lt;br /&gt;
 {&lt;br /&gt;
 	/*&lt;br /&gt;
 	Game game;&lt;br /&gt;
 	Inputer inputer;&lt;br /&gt;
 &lt;br /&gt;
 	inputer.getData();&lt;br /&gt;
 	game.setInputer (&amp;amp;amp;inputer);&lt;br /&gt;
 &lt;br /&gt;
 	game.start ();&lt;br /&gt;
 	*/&lt;br /&gt;
 	testJourney();&lt;br /&gt;
 	testRoach();&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 	return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;Unknown</name></author>
	</entry>
</feed>