﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-family</title><link>http://www.cppblog.com/family/</link><description /><language>zh-cn</language><lastBuildDate>Sat, 04 Apr 2026 05:41:44 GMT</lastBuildDate><pubDate>Sat, 04 Apr 2026 05:41:44 GMT</pubDate><ttl>60</ttl><item><title>关于五子棋代码。求指导！！！</title><link>http://www.cppblog.com/family/archive/2012/04/12/family.html</link><dc:creator>迎风而立</dc:creator><author>迎风而立</author><pubDate>Thu, 12 Apr 2012 15:48:00 GMT</pubDate><guid>http://www.cppblog.com/family/archive/2012/04/12/family.html</guid><wfw:comment>http://www.cppblog.com/family/comments/171162.html</wfw:comment><comments>http://www.cppblog.com/family/archive/2012/04/12/family.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.cppblog.com/family/comments/commentRss/171162.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/family/services/trackbacks/171162.html</trackback:ping><description><![CDATA[<p>人人对战：<br /><br /><br />#include&lt;iostream&gt;<br />using namespace std;<br />void wz()<br />{<br />&nbsp;cout&lt;&lt;"下面开始五子棋比赛，一号选手用方块符号，二号用心型符号:"&lt;&lt;endl&lt;&lt;endl;<br />&nbsp;for(int i=3;i&gt;0;i--)<br />&nbsp;{<br />&nbsp;&nbsp;cout&lt;&lt;i&lt;&lt;"&nbsp; ";<br />&nbsp;}<br />&nbsp;cout&lt;&lt;"开始-----------"&lt;&lt;endl&lt;&lt;endl;<br />}</p>
<p>int hs()<br />{<br />&nbsp;int x,y,i=0,j=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char d[80][80];<br />&nbsp;&nbsp;&nbsp; //初始化---<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(x=0;x&lt;25;x+=3)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(y=0;y&lt;80;y+=3)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; d[x][y]='+';<br />&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; //第一行数字--<br />&nbsp;&nbsp;&nbsp; for(x=0;x&lt;10;x++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout&lt;&lt;x&lt;&lt;"&nbsp; ";<br />&nbsp;&nbsp;&nbsp; for(x=10;x&lt;27;x++)<br />&nbsp;&nbsp;&nbsp;&nbsp; cout&lt;&lt;x&lt;&lt;" ";<br />&nbsp;&nbsp;&nbsp; cout&lt;&lt;endl;</p>
<p>//输出棋盘--<br />&nbsp;&nbsp;&nbsp; for(x=0;x&lt;25;x+=3)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp; cout&lt;&lt;j&lt;&lt;"&nbsp; ";j++;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(y=0;y&lt;76;y+=3)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout&lt;&lt;d[x][y]&lt;&lt;"&nbsp; ";<br />&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp; cout&lt;&lt;endl;<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; </p>
<p>&nbsp;<br />&nbsp;&nbsp; </p>
<p>&nbsp;while(1)<br />&nbsp;{<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;int a,b;<br />&nbsp;&nbsp;if(i%2==0)<br />&nbsp;&nbsp;cout&lt;&lt;"由玩家一下棋："&lt;&lt;endl;<br />&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;cout&lt;&lt;"由玩家二下棋："&lt;&lt;endl;</p>
<p>&nbsp;&nbsp;cin&gt;&gt;a&gt;&gt;b;<br />&nbsp;&nbsp;if(i%2==1)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;if(d[(a-1)*3][(b-1)*3]=='+')<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; d[(a-1)*3][(b-1)*3]=3;<br />&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;"-----------------------------不能覆盖棋子:"&lt;&lt;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;continue;<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;else<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;if(d[(a-1)*3][(b-1)*3]=='+')<br />&nbsp;&nbsp;&nbsp;d[(a-1)*3][(b-1)*3]=1;<br />&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;"-----------------------------不能覆盖棋子:"&lt;&lt;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;continue;<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;i++;<br />&nbsp;&nbsp;j=1;<br />&nbsp;&nbsp;//第一行数字---<br />&nbsp;for(x=0;x&lt;10;x++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout&lt;&lt;x&lt;&lt;"&nbsp; ";<br />&nbsp;&nbsp;&nbsp; for(x=10;x&lt;27;x++)<br />&nbsp;&nbsp;&nbsp;&nbsp; cout&lt;&lt;x&lt;&lt;" ";<br />&nbsp;&nbsp;&nbsp; cout&lt;&lt;endl; </p>
<p>&nbsp;&nbsp;&nbsp; for(x=0;x&lt;25;x+=3)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp; cout&lt;&lt;j&lt;&lt;"&nbsp; ";j++;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(y=0;y&lt;76;y+=3)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout&lt;&lt;d[x][y]&lt;&lt;"&nbsp; ";<br />&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp; cout&lt;&lt;endl;<br />&nbsp;&nbsp;&nbsp; }<br />//判断是否是五个<br />&nbsp;&nbsp;&nbsp; if(//横着<br />&nbsp;&nbsp;&nbsp;&nbsp; d[(a-1)*3][(b-1)*3]==1&amp;&amp;d[(a-1)*3][(b)*3]==1&amp;&amp;d[(a-1)*3][(b+1)*3]==1&amp;&amp;d[(a-1)*3][(b+2)*3]==1&amp;&amp;d[(a-1)*3][(b+3)*3]==1<br />&nbsp;&nbsp;&nbsp;&nbsp; ||d[(a-1)*3][(b-2)*3]==1&amp;&amp;d[(a-1)*3][(b-1)*3]==1&amp;&amp;d[(a-1)*3][(b)*3]==1&amp;&amp;d[(a-1)*3][(b+1)*3]==1&amp;&amp;d[(a-1)*3][(b+2)*3]==1<br />&nbsp;&nbsp;&nbsp;&nbsp; ||d[(a-1)*3][(b-3)*3]==1&amp;&amp;d[(a-1)*3][(b-2)*3]==1&amp;&amp;d[(a-1)*3][(b-1)*3]==1&amp;&amp;d[(a-1)*3][(b)*3]==1&amp;&amp;d[(a-1)*3][(b+1)*3]==1<br />&nbsp;&nbsp;&nbsp;&nbsp; ||d[(a-1)*3][(b-4)*3]==1&amp;&amp;d[(a-1)*3][(b-3)*3]==1&amp;&amp;d[(a-1)*3][(b-2)*3]==1&amp;&amp;d[(a-1)*3][(b-1)*3]==1&amp;&amp;d[(a-1)*3][(b)*3]==1<br />&nbsp;&nbsp;&nbsp;&nbsp; ||d[(a-1)*3][(b-5)*3]==1&amp;&amp;d[(a-1)*3][(b-4)*3]==1&amp;&amp;d[(a-1)*3][(b-3)*3]==1&amp;&amp;d[(a-1)*3][(b-2)*3]==1&amp;&amp;d[(a-1)*3][(b-1)*3]==1<br />&nbsp;&nbsp;&nbsp;&nbsp; //从左上到右下<br />&nbsp;&nbsp;&nbsp;&nbsp; ||d[(a-1)*3][(b-1)*3]==1&amp;&amp;d[a*3][b*3]==1&amp;&amp;d[(a+1)*3][(b+1)*3]==1&amp;&amp;d[(a+2)*3][(b+2)*3]==1&amp;&amp;d[(a+3)*3][(b+3)*3]==1<br />&nbsp;&nbsp;&nbsp;&nbsp; ||d[(a-2)*3][(b-2)*3]==1&amp;&amp;d[(a-1)*3][(b-1)*3]==1&amp;&amp;d[a*3][b*3]==1&amp;&amp;d[(a+1)*3][(b+1)*3]==1&amp;&amp;d[(a+2)*3][(b+2)*3]==1<br />&nbsp;&nbsp;&nbsp;&nbsp; ||d[(a-3)*3][(b-3)*3]==1&amp;&amp;d[(a-2)*3][(b-2)*3]==1&amp;&amp;d[(a-1)*3][(b-1)*3]==1&amp;&amp;d[a*3][b*3]==1&amp;&amp;d[(a+1)*3][(b+1)*3]==1<br />&nbsp;&nbsp;&nbsp;&nbsp; ||d[(a-4)*3][(b-4)*3]==1&amp;&amp;d[(a-3)*3][(b-3)*3]==1&amp;&amp;d[(a-2)*3][(b-2)*3]==1&amp;&amp;d[(a-1)*3][(b-1)*3]==1&amp;&amp;d[a*3][b*3]==1<br />&nbsp;&nbsp;&nbsp;&nbsp; ||d[(a-5)*3][(b-5)*3]==1&amp;&amp;d[(a-4)*3][(b-4)*3]==1&amp;&amp;d[(a-3)*3][(b-3)*3]==1&amp;&amp;d[(a-2)*3][(b-2)*3]==1&amp;&amp;d[(a-1)*3][(b-1)*3]==1<br />&nbsp;&nbsp;&nbsp;&nbsp; //从右上到左下<br />&nbsp;&nbsp;&nbsp;&nbsp; ||d[(a-1)*3][(b-1)*3]==1&amp;&amp;d[(a-2)*3][b*3]==1&amp;&amp;d[a-3][b+1]==1&amp;&amp;d[a-4][b+2]==1&amp;&amp;d[a-5][b+3]==1<br />&nbsp;&nbsp;&nbsp;&nbsp; ||d[a*3][(b-2)*3]==1&amp;&amp;d[(a-1)*3][(b-1)*3]==1&amp;&amp;d[(a-2)*3][b*3]==1&amp;&amp;d[(a-3)*3][(b+1)*3]==1&amp;&amp;d[(a-4)*3][(b+2)*3]==1<br />&nbsp;&nbsp;&nbsp;&nbsp; ||d[(a+1)*3][(b-3)*3]==1&amp;&amp;d[a*3][(b-2)*3]==1&amp;&amp;d[(a-1)*3][(b-1)*3]==1&amp;&amp;d[(a-2)*3][b*3]==1&amp;&amp;d[(a-3)*3][(b+1)*3]==1<br />&nbsp;&nbsp;&nbsp;&nbsp; ||d[(a+2)*3][(b-4)*3]==1&amp;&amp;d[(a+1)*3][(b-3)*3]==1&amp;&amp;d[a*3][(b-2)*3]==1&amp;&amp;d[(a-1)*3][(b-1)*3]==1&amp;&amp;d[(a-2)*3][b*3]==1<br />&nbsp;&nbsp;&nbsp;&nbsp; ||d[(a+3)*3][(b-5)*3]==1&amp;&amp;d[(a+2)*3][(b-4)*3]==1&amp;&amp;d[(a+1)*3][(b-3)*3]==1&amp;&amp;d[a*3][(b-2)*3]==1&amp;&amp;d[(a-1)*3][(b-1)*3]==1<br />&nbsp;&nbsp;&nbsp;&nbsp; //竖着<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ||d[(a-1)*3][(b-1)*3]==1&amp;&amp;d[a*3][(b-1)*3]==1&amp;&amp;d[(a+1)*3][(b-1)*3]==1&amp;&amp;d[(a+2)*3][(b-1)*3]==1&amp;&amp;d[(a+3)*3][(b-1)*3]==1<br />&nbsp;&nbsp;&nbsp;&nbsp; ||d[(a-2)*3][(b-1)*3]==1&amp;&amp;d[(a-1)*3][(b-1)*3]==1&amp;&amp;d[a*3][(b-1)*3]==1&amp;&amp;d[(a+1)*3][(b-1)*3]==1&amp;&amp;d[(a+2)*3][(b-1)*3]==1<br />&nbsp;&nbsp;&nbsp;&nbsp; ||d[(a-3)*3][(b-1)*3]==1&amp;&amp;d[(a-2)*3][(b-1)*3]==1&amp;&amp;d[(a-1)*3][(b-1)*3]==1&amp;&amp;d[a*3][(b-1)*3]==1&amp;&amp;d[(a+1)*3][(b-1)*3]==1<br />&nbsp;&nbsp;&nbsp;&nbsp; ||d[(a-4)*3][(b-1)*3]==1&amp;&amp;d[(a-3)*3][(b-1)*3]==1&amp;&amp;d[(a-2)*3][(b-1)*3]==1&amp;&amp;d[(a-1)*3][(b-1)*3]==1&amp;&amp;d[a*3][(b-1)*3]==1<br />&nbsp;&nbsp;&nbsp;&nbsp; ||d[(a-5)*3][(b-1)*3]==1&amp;&amp;d[(a-4)*3][(b-1)*3]==1&amp;&amp;d[(a-3)*3][(b-1)*3]==1&amp;&amp;d[(a-2)*3][(b-1)*3]==1&amp;&amp;d[(a-1)*3][(b-1)*3]==1<br />&nbsp;&nbsp;&nbsp;&nbsp; )<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp; cout&lt;&lt;endl&lt;&lt;"玩家一获胜"&lt;&lt;endl;break;<br />&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; if(//横着<br />&nbsp;&nbsp;&nbsp;&nbsp; d[(a-1)*3][(b-1)*3]==3&amp;&amp;d[(a-1)*3][(b)*3]==3&amp;&amp;d[(a-1)*3][(b+1)*3]==3&amp;&amp;d[(a-1)*3][(b+2)*3]==3&amp;&amp;d[(a-1)*3][(b+3)*3]==3<br />&nbsp;&nbsp;&nbsp;&nbsp; ||d[(a-1)*3][(b-2)*3]==3&amp;&amp;d[(a-1)*3][(b-1)*3]==3&amp;&amp;d[(a-1)*3][(b)*3]==3&amp;&amp;d[(a-1)*3][(b+1)*3]==3&amp;&amp;d[(a-1)*3][(b+2)*3]==3<br />&nbsp;&nbsp;&nbsp;&nbsp; ||d[(a-1)*3][(b-3)*3]==3&amp;&amp;d[(a-1)*3][(b-2)*3]==3&amp;&amp;d[(a-1)*3][(b-1)*3]==3&amp;&amp;d[(a-1)*3][(b)*3]==3&amp;&amp;d[(a-1)*3][(b+1)*3]==3<br />&nbsp;&nbsp;&nbsp;&nbsp; ||d[(a-1)*3][(b-4)*3]==3&amp;&amp;d[(a-1)*3][(b-3)*3]==3&amp;&amp;d[(a-1)*3][(b-2)*3]==3&amp;&amp;d[(a-1)*3][(b-1)*3]==3&amp;&amp;d[(a-1)*3][(b)*3]==3<br />&nbsp;&nbsp;&nbsp;&nbsp; ||d[(a-1)*3][(b-5)*3]==3&amp;&amp;d[(a-1)*3][(b-4)*3]==3&amp;&amp;d[(a-1)*3][(b-3)*3]==3&amp;&amp;d[(a-1)*3][(b-2)*3]==3&amp;&amp;d[(a-1)*3][(b-1)*3]==3<br />&nbsp;&nbsp;&nbsp;&nbsp; //从左上到右下<br />&nbsp;&nbsp;&nbsp;&nbsp; ||d[(a-1)*3][(b-1)*3]==3&amp;&amp;d[a*3][b*3]==3&amp;&amp;d[(a+1)*3][(b+1)*3]==3&amp;&amp;d[(a+2)*3][(b+2)*3]==3&amp;&amp;d[(a+3)*3][(b+3)*3]==3<br />&nbsp;&nbsp;&nbsp;&nbsp; ||d[(a-2)*3][(b-2)*3]==3&amp;&amp;d[(a-1)*3][(b-1)*3]==3&amp;&amp;d[a*3][b*3]==3&amp;&amp;d[(a+1)*3][(b+1)*3]==3&amp;&amp;d[(a+2)*3][(b+2)*3]==3<br />&nbsp;&nbsp;&nbsp;&nbsp; ||d[(a-3)*3][(b-3)*3]==3&amp;&amp;d[(a-2)*3][(b-2)*3]==3&amp;&amp;d[(a-1)*3][(b-1)*3]==3&amp;&amp;d[a*3][b*3]==3&amp;&amp;d[(a+1)*3][(b+1)*3]==3<br />&nbsp;&nbsp;&nbsp;&nbsp; ||d[(a-4)*3][(b-4)*3]==3&amp;&amp;d[(a-3)*3][(b-3)*3]==3&amp;&amp;d[(a-2)*3][(b-2)*3]==3&amp;&amp;d[(a-1)*3][(b-1)*3]==3&amp;&amp;d[a*3][b*3]==3<br />&nbsp;&nbsp;&nbsp;&nbsp; ||d[(a-5)*3][(b-5)*3]==3&amp;&amp;d[(a-4)*3][(b-4)*3]==3&amp;&amp;d[(a-3)*3][(b-3)*3]==3&amp;&amp;d[(a-2)*3][(b-2)*3]==3&amp;&amp;d[(a-1)*3][(b-1)*3]==3<br />&nbsp;&nbsp;&nbsp;&nbsp; //从右上到左下<br />&nbsp;&nbsp;&nbsp;&nbsp; ||d[(a-1)*3][(b-1)*3]==3&amp;&amp;d[(a-2)*3][b*3]==3&amp;&amp;d[a-3][b+1]==3&amp;&amp;d[a-4][b+2]==3&amp;&amp;d[a-5][b+3]==3<br />&nbsp;&nbsp;&nbsp;&nbsp; ||d[a*3][(b-2)*3]==3&amp;&amp;d[(a-1)*3][(b-1)*3]==3&amp;&amp;d[(a-2)*3][b*3]==3&amp;&amp;d[(a-3)*3][(b+1)*3]==3&amp;&amp;d[(a-4)*3][(b+2)*3]==3<br />&nbsp;&nbsp;&nbsp;&nbsp; ||d[(a+1)*3][(b-3)*3]==3&amp;&amp;d[a*3][(b-2)*3]==3&amp;&amp;d[(a-1)*3][(b-1)*3]==3&amp;&amp;d[(a-2)*3][b*3]==3&amp;&amp;d[(a-3)*3][(b+1)*3]==3<br />&nbsp;&nbsp;&nbsp;&nbsp; ||d[(a+2)*3][(b-4)*3]==3&amp;&amp;d[(a+1)*3][(b-3)*3]==3&amp;&amp;d[a*3][(b-2)*3]==3&amp;&amp;d[(a-1)*3][(b-1)*3]==3&amp;&amp;d[(a-2)*3][b*3]==3<br />&nbsp;&nbsp;&nbsp;&nbsp; ||d[(a+3)*3][(b-5)*3]==3&amp;&amp;d[(a+2)*3][(b-4)*3]==3&amp;&amp;d[(a+1)*3][(b-3)*3]==3&amp;&amp;d[a*3][(b-2)*3]==3&amp;&amp;d[(a-1)*3][(b-1)*3]==3<br />&nbsp;&nbsp;&nbsp;&nbsp; //竖着<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ||d[(a-1)*3][(b-1)*3]==3&amp;&amp;d[a*3][(b-1)*3]==3&amp;&amp;d[(a+1)*3][(b-1)*3]==3&amp;&amp;d[(a+2)*3][(b-1)*3]==3&amp;&amp;d[(a+3)*3][(b-1)*3]==3<br />&nbsp;&nbsp;&nbsp;&nbsp; ||d[(a-2)*3][(b-1)*3]==3&amp;&amp;d[(a-1)*3][(b-1)*3]==3&amp;&amp;d[a*3][(b-1)*3]==3&amp;&amp;d[(a+1)*3][(b-1)*3]==3&amp;&amp;d[(a+2)*3][(b-1)*3]==3<br />&nbsp;&nbsp;&nbsp;&nbsp; ||d[(a-3)*3][(b-1)*3]==3&amp;&amp;d[(a-2)*3][(b-1)*3]==3&amp;&amp;d[(a-1)*3][(b-1)*3]==3&amp;&amp;d[a*3][(b-1)*3]==3&amp;&amp;d[(a+1)*3][(b-1)*3]==3<br />&nbsp;&nbsp;&nbsp;&nbsp; ||d[(a-4)*3][(b-1)*3]==3&amp;&amp;d[(a-3)*3][(b-1)*3]==3&amp;&amp;d[(a-2)*3][(b-1)*3]==3&amp;&amp;d[(a-1)*3][(b-1)*3]==3&amp;&amp;d[a*3][(b-1)*3]==3<br />&nbsp;&nbsp;&nbsp;&nbsp; ||d[(a-5)*3][(b-1)*3]==3&amp;&amp;d[(a-4)*3][(b-1)*3]==3&amp;&amp;d[(a-3)*3][(b-1)*3]==3&amp;&amp;d[(a-2)*3][(b-1)*3]==3&amp;&amp;d[(a-1)*3][(b-1)*3]==3<br />&nbsp;&nbsp;&nbsp;&nbsp; )<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp; cout&lt;&lt;endl&lt;&lt;"玩家二获胜"&lt;&lt;endl;break;<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;}<br />&nbsp;return 0;<br />}<br />int main()<br />{ <br />&nbsp;char a;<br />&nbsp;wz();<br />&nbsp;hs();<br />&nbsp;while(1)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;cout&lt;&lt;"按P重新开始：";<br />&nbsp;&nbsp;cin&gt;&gt;a;<br />&nbsp;&nbsp;if(a=='p')<br />&nbsp;&nbsp;&nbsp;hs();<br />&nbsp;&nbsp;else <br />&nbsp;&nbsp;&nbsp;break;<br />&nbsp;&nbsp;}<br />&nbsp;return 0;&nbsp;<br />}<br /><br /><br /><br /><br />人机对战暂时没想出来，有知道的希望指教一下！！感激----</p> <img src ="http://www.cppblog.com/family/aggbug/171162.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/family/" target="_blank">迎风而立</a> 2012-04-12 23:48 <a href="http://www.cppblog.com/family/archive/2012/04/12/family.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于移位运算符和取反运算符的一点感悟</title><link>http://www.cppblog.com/family/archive/2012/04/08/famliy.html</link><dc:creator>迎风而立</dc:creator><author>迎风而立</author><pubDate>Sun, 08 Apr 2012 13:29:00 GMT</pubDate><guid>http://www.cppblog.com/family/archive/2012/04/08/famliy.html</guid><wfw:comment>http://www.cppblog.com/family/comments/170472.html</wfw:comment><comments>http://www.cppblog.com/family/archive/2012/04/08/famliy.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/family/comments/commentRss/170472.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/family/services/trackbacks/170472.html</trackback:ping><description><![CDATA[<p>今天在学习移位运算符和取反运算符的时候，发现一些问题！现在呢在这里说一下自己的感悟！</p>
<p>先看下面一道 取反和移位相结合的问题</p>
<p><br />#include&lt;stdio.h&gt;<br />int main()<br />{<br />&nbsp;char a=0x11;<br />&nbsp;char b;<br />&nbsp;b=~a&lt;&lt;2;<br />&nbsp;printf("%d\n",b);<br />&nbsp;b=~(a&lt;&lt;2);<br />&nbsp;printf("%d\n",b);<br />&nbsp;b=~a&gt;&gt;2;<br />&nbsp;printf("%d\n",b);<br />&nbsp;b=~(a&gt;&gt;2);<br />&nbsp;printf("%d\n",b);<br />&nbsp;return 0;<br />}</p>
<p>&nbsp;</p>
<p>输出结果是：</p>
<p>-72<br />-69<br />-5<br />-5</p>
<p>&nbsp;</p>
<p>刚开始在想为什么相同的操作（只是移位方向不同），为什么上面两个结果不一样，而下面两个结果却是一样的呢。有些人在疑问是不是因为下面两个表达式都是先移位后取反的呢？我可以肯定不是这样的，但是不能解释这个结果。这个问题我纠结了半天！&nbsp; 不过对下面的知识了解之后便豁然开朗了。</p>
<p>移位运算符分为左移运算符和右移运算符。<br />当对一个数执行左移运算的时候，右边的空位是用0补齐。<br />而当对一个数执行右移运算的时候，左边的空位是用符号位补齐的（这是我之前没注意的地方，惭愧）。</p>
<p>&nbsp;</p>
<p>解体步骤如下：</p>
<p><br />a=0x11=0001 0001</p>
<p>~a=1110 1110<br />a&lt;&lt;2=0100 0100<br />a&gt;&gt;2=0000 0100</p>
<p><br />~a&lt;&lt;2=1011 1000&nbsp; <br />现在 1011 1000是补码，转化成原码之后是<br />1100 1000=-72&nbsp; -72是十进制</p>
<p>~（a&lt;&lt;2）=0100 0100<br />转化为原码之后是 1100 0101=-69</p>
<p><br />~a&gt;&gt;2=1111 1011(注意现在是用1补齐的，因为~a的符号位是1)<br />转化为原码之后是&nbsp; 1000 0101=-5</p>
<p><br />~（a&gt;&gt;2)=1111 1011<br />转化为原码之后是&nbsp; 1000 0101=-5<br /><br /><br />明白之后心情很好，所以在这里分享一下。呵呵<br /></p><img src ="http://www.cppblog.com/family/aggbug/170472.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/family/" target="_blank">迎风而立</a> 2012-04-08 21:29 <a href="http://www.cppblog.com/family/archive/2012/04/08/famliy.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>