tcs

<div id="article_content" class="article_content clearfix csdn-tracking-statistics" data-pid="blog" data-mod="popu_307" data-dsm="post">
                                            <div class="markdown_views">
                            <!-- flowchart 箭头图标 勿删 -->
                            <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"><path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path></svg>
                            <h2 id="一-前言"><a name="t0"></a>一. 前言</h2>

<p>&nbsp;&nbsp;&nbsp;小时候都玩过贪吃蛇这个经典的小游戏,在我们的普通手机里似乎都是必备的。它伴随着我们的童年,经历了好多好多时光。它带给我们了许多的乐趣。</p>

<p>&nbsp;&nbsp;&nbsp;我做这个的目的其实想放松放松. 利用了几天的空闲时间做做.</p>

<p>&nbsp;&nbsp;&nbsp;也是想尝试以前想过但未实现的一个小游戏.</p>

<h2 id="二-问题描述"><a name="t1"></a>二. 问题描述</h2>

<p>&nbsp;&nbsp;&nbsp;包含等级选择,暂停/继续和分数制。</p>

<h2 id="三-分析思路"><a name="t2"></a>三.  分析思路</h2>

<p>&nbsp;&nbsp;&nbsp;下面就来讲讲贪吃蛇的设计思路.</p>

<h3 id="1地图"><a name="t3"></a>1.地图</h3>

<p>&nbsp;&nbsp;&nbsp;地图含简单, 利用char的二维数组, 将外围一圈设置为城墙, 我使用的是’#’代表墙.</p>

<h3 id="2食物的产生"><a name="t4"></a>2.食物的产生</h3>

<p>&nbsp;&nbsp;&nbsp;利用随机函数(rand())产生随机食物的坐标, 该坐标的值不能与墙重合, 不能与蛇身重合. 若重合的话, 重新找一对xy的值. 食物我这里用的是’O’表示.</p>

<h3 id="3-构造一条蛇"><a name="t5"></a>3. 构造一条蛇</h3>

<p>&nbsp;&nbsp;&nbsp;使用另一个int类型的二维数组,为什么用int后面讲.用’Q’代表蛇脑袋, ‘a’代表蛇身体,  开始时, 初始化到某以位置上.</p>

<h3 id="4蛇的移动"><a name="t6"></a>4.蛇的移动</h3>

<p>&nbsp;&nbsp;&nbsp;利用上下左右或者wasd空着蛇的走位. 以及当蛇每走一步就利用 system(“cls”)清屏, 重新打印, 模拟蛇的移动.  </p>

<h3 id="5-游戏结束"><a name="t7"></a>5. 游戏结束</h3>

<p>&nbsp;&nbsp;&nbsp;当蛇撞墙, 以及咬到自己的身体时候游戏结束.</p>

<h2 id="四-编程所需知识"><a name="t8"></a>四.  编程所需知识</h2>

<p>1.二维数组 <br>
2.一些系统函数 <br>
3.随机函数</p>

<p>以上几点所需知识会的话, 完全也可以做出一个来. <br>
可以先自己尝试一番~再继续往下看.</p>

<h2 id="五-代码具体分析"><a name="t9"></a>五.  代码具体分析</h2>

<h3 id="1所需的基本的自定义函数全局变量-以及头文件"><a name="t10"></a>1.所需的基本的自定义函数,全局变量, 以及头文件</h3>

<pre class="prettyprint" name="code"><code class="language-c hljs  has-numbering"><span class="hljs-preprocessor"># include &lt;stdio.h&gt;</span>
<span class="hljs-preprocessor"># include &lt;string.h&gt;</span>
<span class="hljs-preprocessor"># include &lt;windows.h&gt;</span>
<span class="hljs-preprocessor"># include &lt;stdlib.h&gt;</span>
<span class="hljs-preprocessor"># include &lt;conio.h&gt;</span>
<span class="hljs-preprocessor"># include &lt;time.h&gt;</span></code><ul class="pre-numbering"><li style="color: rgb(153, 153, 153);">1</li><li style="color: rgb(153, 153, 153);">2</li><li style="color: rgb(153, 153, 153);">3</li><li style="color: rgb(153, 153, 153);">4</li><li style="color: rgb(153, 153, 153);">5</li><li style="color: rgb(153, 153, 153);">6</li></ul></pre>

<p>string.h : memset();函数 <br>
windows.h: gotoxy()函数(尽管这个是自定义的, 内部需要涉及到这个头文件) <br>
stdlib.h: system(); <br>
conio.h: getch(); <br>
time.h: 随机函数的种子</p>

<pre class="prettyprint" name="code"><code class="hljs cs has-numbering"><span class="hljs-preprocessor"># <span class="hljs-keyword">define</span> de_lenth 5 //蛇初始长度</span>
<span class="hljs-preprocessor"># <span class="hljs-keyword">define</span> ROW_MAX 20//地图行</span>
<span class="hljs-preprocessor"># <span class="hljs-keyword">define</span> LINE_MAX 30//地图列</span>

<span class="hljs-keyword">int</span> Head_x = ROW_MAX/<span class="hljs-number">2</span>, Head_y = LINE_MAX/<span class="hljs-number">2</span>;<span class="hljs-comment">//蛇的初始坐标</span>
<span class="hljs-keyword">int</span> Head_v = <span class="hljs-number">5</span>;<span class="hljs-comment">//判断是否为头</span>
<span class="hljs-keyword">int</span> Tail_x = <span class="hljs-number">0</span>, Tail_y = <span class="hljs-number">0</span>;<span class="hljs-comment">//蛇尾坐标</span>
<span class="hljs-keyword">int</span> count = <span class="hljs-number">0</span>;<span class="hljs-comment">//计数</span>
<span class="hljs-keyword">char</span> direct = <span class="hljs-string">'a'</span>;<span class="hljs-comment">//蛇移动的方向</span></code><ul class="pre-numbering"><li style="color: rgb(153, 153, 153);">1</li><li style="color: rgb(153, 153, 153);">2</li><li style="color: rgb(153, 153, 153);">3</li><li style="color: rgb(153, 153, 153);">4</li><li style="color: rgb(153, 153, 153);">5</li><li style="color: rgb(153, 153, 153);">6</li><li style="color: rgb(153, 153, 153);">7</li><li style="color: rgb(153, 153, 153);">8</li><li style="color: rgb(153, 153, 153);">9</li></ul></pre>

<pre class="prettyprint" name="code"><code class="language-c hljs  has-numbering"><span class="hljs-keyword">void</span> gotoxy(<span class="hljs-keyword">int</span> x, <span class="hljs-keyword">int</span> y);<span class="hljs-comment">//将光标定位到某一位置, 用于显示结果, 以及暂停是使用</span>
<span class="hljs-keyword">void</span> CreateMap(<span class="hljs-keyword">char</span> <span class="hljs-built_in">map</span>[ROW_MAX][LINE_MAX]);<span class="hljs-comment">//创建地图</span>
<span class="hljs-keyword">void</span> TraverseMap(<span class="hljs-keyword">char</span> <span class="hljs-built_in">map</span>[ROW_MAX][LINE_MAX], <span class="hljs-keyword">int</span> snake[ROW_MAX][LINE_MAX]);<span class="hljs-comment">//输出地图以及蛇的全部</span>
<span class="hljs-keyword">void</span> CreateSnake(<span class="hljs-keyword">int</span> snkae[ROW_MAX][LINE_MAX]);<span class="hljs-comment">//构造蛇的初始位置</span>
<span class="hljs-keyword">void</span> run(<span class="hljs-keyword">char</span> <span class="hljs-built_in">map</span>[ROW_MAX][LINE_MAX], <span class="hljs-keyword">int</span> snake[ROW_MAX][LINE_MAX]);<span class="hljs-comment">//蛇的移动</span>
<span class="hljs-keyword">int</span> JudgeWall(<span class="hljs-keyword">void</span>);<span class="hljs-comment">//判断蛇是否撞墙</span>
<span class="hljs-keyword">void</span> CreateFood(<span class="hljs-keyword">char</span> <span class="hljs-built_in">map</span>[ROW_MAX][LINE_MAX], <span class="hljs-keyword">int</span> snake[ROW_MAX][LINE_MAX]);<span class="hljs-comment">//产生随机食物</span>
<span class="hljs-keyword">void</span> MoveTail(<span class="hljs-keyword">int</span> snake[ROW_MAX][LINE_MAX]);<span class="hljs-comment">//蛇尾部的移动</span>
<span class="hljs-keyword">int</span> EatFood(<span class="hljs-keyword">char</span> <span class="hljs-built_in">map</span>[ROW_MAX][LINE_MAX]);<span class="hljs-comment">//蛇吃到食物的操作</span>
<span class="hljs-keyword">void</span> Result(<span class="hljs-keyword">void</span>);<span class="hljs-comment">//显示结果</span></code><ul class="pre-numbering"><li style="color: rgb(153, 153, 153);">1</li><li style="color: rgb(153, 153, 153);">2</li><li style="color: rgb(153, 153, 153);">3</li><li style="color: rgb(153, 153, 153);">4</li><li style="color: rgb(153, 153, 153);">5</li><li style="color: rgb(153, 153, 153);">6</li><li style="color: rgb(153, 153, 153);">7</li><li style="color: rgb(153, 153, 153);">8</li><li style="color: rgb(153, 153, 153);">9</li><li style="color: rgb(153, 153, 153);">10</li></ul></pre>

<h3 id="2主函数"><a name="t11"></a>2.主函数</h3>

<pre class="prettyprint" name="code"><code class="language-c hljs  has-numbering"><span class="hljs-keyword">int</span> main()
{
    <span class="hljs-keyword">char</span> <span class="hljs-built_in">map</span>[ROW_MAX][LINE_MAX];
    <span class="hljs-keyword">int</span> snake[ROW_MAX][LINE_MAX];
    srand(time(NULL));

<span class="hljs-comment">/**************初始画面**************/</span>
    <span class="hljs-built_in">memset</span>(<span class="hljs-built_in">map</span>, <span class="hljs-number">0</span>, <span class="hljs-keyword">sizeof</span>(<span class="hljs-built_in">map</span>));
    <span class="hljs-built_in">memset</span>(snake, <span class="hljs-number">0</span>, <span class="hljs-keyword">sizeof</span>(snake));
    system(<span class="hljs-string">"cls"</span>);
    CreateMap(<span class="hljs-built_in">map</span>); 
<span class="hljs-comment">//  gotoxy(1, 1);</span>
    CreateSnake(snake);
    CreateFood(<span class="hljs-built_in">map</span>, snake);
    TraverseMap(<span class="hljs-built_in">map</span>, snake);
<span class="hljs-comment">/**************初始画面**************/</span>

<span class="hljs-comment">/*********运动*****************/</span>
    run(<span class="hljs-built_in">map</span>, snake);
<span class="hljs-comment">/******************************/</span>

    Result();

    <span class="hljs-keyword">return</span> <span class="hljs-number">0</span>;
}</code><ul class="pre-numbering"><li style="color: rgb(153, 153, 153);">1</li><li style="color: rgb(153, 153, 153);">2</li><li style="color: rgb(153, 153, 153);">3</li><li style="color: rgb(153, 153, 153);">4</li><li style="color: rgb(153, 153, 153);">5</li><li style="color: rgb(153, 153, 153);">6</li><li style="color: rgb(153, 153, 153);">7</li><li style="color: rgb(153, 153, 153);">8</li><li style="color: rgb(153, 153, 153);">9</li><li style="color: rgb(153, 153, 153);">10</li><li style="color: rgb(153, 153, 153);">11</li><li style="color: rgb(153, 153, 153);">12</li><li style="color: rgb(153, 153, 153);">13</li><li style="color: rgb(153, 153, 153);">14</li><li style="color: rgb(153, 153, 153);">15</li><li style="color: rgb(153, 153, 153);">16</li><li style="color: rgb(153, 153, 153);">17</li><li style="color: rgb(153, 153, 153);">18</li><li style="color: rgb(153, 153, 153);">19</li><li style="color: rgb(153, 153, 153);">20</li><li style="color: rgb(153, 153, 153);">21</li><li style="color: rgb(153, 153, 153);">22</li><li style="color: rgb(153, 153, 153);">23</li><li style="color: rgb(153, 153, 153);">24</li><li style="color: rgb(153, 153, 153);">25</li></ul></pre>

<h3 id="3-创建地图"><a name="t12"></a>3. 创建地图</h3>

<pre class="prettyprint" name="code"><code class="language-c hljs  has-numbering"><span class="hljs-keyword">void</span> CreateMap(<span class="hljs-keyword">char</span> <span class="hljs-built_in">map</span>[ROW_MAX][LINE_MAX]){
<span class="hljs-comment">//将行为0和ROW_MAX的位置赋值为'#', 以及列为0和LINE_MAX赋值为'#', 表示墙;</span>
    <span class="hljs-keyword">int</span> i, j;   

    <span class="hljs-keyword">for</span>(i = <span class="hljs-number">0</span>; i &lt; ROW_MAX; ++i)
        <span class="hljs-built_in">map</span>[i][<span class="hljs-number">0</span>] = <span class="hljs-string">'#'</span>;
    <span class="hljs-keyword">for</span>(j = <span class="hljs-number">1</span>; j &lt; LINE_MAX; ++j)
        <span class="hljs-built_in">map</span>[<span class="hljs-number">0</span>][j] = <span class="hljs-string">'#'</span>;
    <span class="hljs-keyword">for</span>(i = ROW_MAX-<span class="hljs-number">1</span>, j = <span class="hljs-number">1</span>; j &lt; LINE_MAX; ++j)
        <span class="hljs-built_in">map</span>[i][j] = <span class="hljs-string">'#'</span>;
    <span class="hljs-keyword">for</span>(j = LINE_MAX-<span class="hljs-number">1</span>, i = <span class="hljs-number">1</span>; i &lt; ROW_MAX; ++i)
        <span class="hljs-built_in">map</span>[i][j] = <span class="hljs-string">'#'</span>;
}</code><ul class="pre-numbering"><li style="color: rgb(153, 153, 153);">1</li><li style="color: rgb(153, 153, 153);">2</li><li style="color: rgb(153, 153, 153);">3</li><li style="color: rgb(153, 153, 153);">4</li><li style="color: rgb(153, 153, 153);">5</li><li style="color: rgb(153, 153, 153);">6</li><li style="color: rgb(153, 153, 153);">7</li><li style="color: rgb(153, 153, 153);">8</li><li style="color: rgb(153, 153, 153);">9</li><li style="color: rgb(153, 153, 153);">10</li><li style="color: rgb(153, 153, 153);">11</li><li style="color: rgb(153, 153, 153);">12</li><li style="color: rgb(153, 153, 153);">13</li></ul></pre>

<h3 id="3构造一条蛇"><a name="t13"></a>3.构造一条蛇</h3>

<pre class="prettyprint" name="code"><code class="language-c hljs  has-numbering"><span class="hljs-keyword">void</span> CreateSnake(<span class="hljs-keyword">int</span> snake[ROW_MAX][LINE_MAX]){

    <span class="hljs-keyword">int</span> i, j;
    <span class="hljs-keyword">int</span> value = Head_v;
    snake[Head_x][Head_y] = value;

    <span class="hljs-keyword">for</span>(i = Head_x, j = Head_y+<span class="hljs-number">1</span>; j &lt; Head_y + de_lenth; ++j)
        snake[i][j] = --value;
    Tail_x = i;
    Tail_y = --j;
}</code><ul class="pre-numbering"><li style="color: rgb(153, 153, 153);">1</li><li style="color: rgb(153, 153, 153);">2</li><li style="color: rgb(153, 153, 153);">3</li><li style="color: rgb(153, 153, 153);">4</li><li style="color: rgb(153, 153, 153);">5</li><li style="color: rgb(153, 153, 153);">6</li><li style="color: rgb(153, 153, 153);">7</li><li style="color: rgb(153, 153, 153);">8</li><li style="color: rgb(153, 153, 153);">9</li><li style="color: rgb(153, 153, 153);">10</li><li style="color: rgb(153, 153, 153);">11</li></ul></pre>

<p>解释: 蛇脑袋的值是最大的(初始为5), 蛇尾是最小的(初始为1), 这样写得目的是为了, 蛇移动时, 只需要移动蛇脑袋和蛇尾部即可, 蛇尾部移动规律就是找到比它大一的那个值. 所以我设置为Int类型.</p>

<h3 id="4产生随机食物"><a name="t14"></a>4.产生随机食物</h3>

<pre class="prettyprint" name="code"><code class="language-c hljs  has-numbering"><span class="hljs-keyword">void</span> CreateFood(<span class="hljs-keyword">char</span> <span class="hljs-built_in">map</span>[ROW_MAX][LINE_MAX], <span class="hljs-keyword">int</span> snake[ROW_MAX][LINE_MAX]){

    <span class="hljs-keyword">int</span> food_x = <span class="hljs-number">0</span>;
    <span class="hljs-keyword">int</span> food_y = <span class="hljs-number">0</span>;

    <span class="hljs-keyword">while</span> (<span class="hljs-built_in">map</span>[food_x][food_y] == <span class="hljs-string">'#'</span> || snake[food_x][food_y] != <span class="hljs-number">0</span>){

        food_x = rand()%(ROW_MAX-<span class="hljs-number">3</span>) + <span class="hljs-number">1</span>;
        food_y = rand()%(LINE_MAX-<span class="hljs-number">3</span>) + <span class="hljs-number">1</span>;
    }

    <span class="hljs-built_in">map</span>[food_x][food_y] = <span class="hljs-string">'O'</span>;
}</code><ul class="pre-numbering"><li style="color: rgb(153, 153, 153);">1</li><li style="color: rgb(153, 153, 153);">2</li><li style="color: rgb(153, 153, 153);">3</li><li style="color: rgb(153, 153, 153);">4</li><li style="color: rgb(153, 153, 153);">5</li><li style="color: rgb(153, 153, 153);">6</li><li style="color: rgb(153, 153, 153);">7</li><li style="color: rgb(153, 153, 153);">8</li><li style="color: rgb(153, 153, 153);">9</li><li style="color: rgb(153, 153, 153);">10</li><li style="color: rgb(153, 153, 153);">11</li><li style="color: rgb(153, 153, 153);">12</li><li style="color: rgb(153, 153, 153);">13</li></ul></pre>

<p>解释: 为什么是-3呢, 举个例子, 地图22x22/(0.0)-(21.21), 而实际区域是(1.1)-(20.20), 就要产生1-20的随机数, 也就是 0-19的随机数+1, 22-19 = 3, 所以减3. <br>
食物不能与墙以及蛇身体重合. <br>
食物放到地图的数组里.</p>

<h3 id="5输出地图以及蛇的全部"><a name="t15"></a>5.输出地图以及蛇的全部</h3>

<pre class="prettyprint" name="code"><code class="language-c hljs  has-numbering"><span class="hljs-keyword">void</span> TraverseMap(<span class="hljs-keyword">char</span> <span class="hljs-built_in">map</span>[ROW_MAX][LINE_MAX], <span class="hljs-keyword">int</span> snake[ROW_MAX][LINE_MAX]){

    <span class="hljs-keyword">int</span> i, j;

    <span class="hljs-keyword">for</span> (i = <span class="hljs-number">0</span>; i &lt; ROW_MAX; ++i){
        <span class="hljs-keyword">for</span> (j = <span class="hljs-number">0</span>; j &lt; LINE_MAX; ++j){
            <span class="hljs-keyword">if</span>(snake[i][j] == <span class="hljs-number">0</span>)
                <span class="hljs-built_in">printf</span>(<span class="hljs-string">"%c"</span>, <span class="hljs-built_in">map</span>[i][j]);
            <span class="hljs-keyword">else</span>{
                <span class="hljs-keyword">if</span>(snake[i][j] == Head_v)
                    <span class="hljs-built_in">putchar</span>(<span class="hljs-string">'Q'</span>);
                <span class="hljs-keyword">else</span>
                    <span class="hljs-built_in">putchar</span>(<span class="hljs-string">'a'</span>);               
            }
        }
        <span class="hljs-built_in">putchar</span>(<span class="hljs-string">'\n'</span>);
    }
}</code><ul class="pre-numbering"><li style="color: rgb(153, 153, 153);">1</li><li style="color: rgb(153, 153, 153);">2</li><li style="color: rgb(153, 153, 153);">3</li><li style="color: rgb(153, 153, 153);">4</li><li style="color: rgb(153, 153, 153);">5</li><li style="color: rgb(153, 153, 153);">6</li><li style="color: rgb(153, 153, 153);">7</li><li style="color: rgb(153, 153, 153);">8</li><li style="color: rgb(153, 153, 153);">9</li><li style="color: rgb(153, 153, 153);">10</li><li style="color: rgb(153, 153, 153);">11</li><li style="color: rgb(153, 153, 153);">12</li><li style="color: rgb(153, 153, 153);">13</li><li style="color: rgb(153, 153, 153);">14</li><li style="color: rgb(153, 153, 153);">15</li><li style="color: rgb(153, 153, 153);">16</li><li style="color: rgb(153, 153, 153);">17</li><li style="color: rgb(153, 153, 153);">18</li></ul></pre>

<p>解释: 在输出地图的同时顾忌到蛇, 这样就能输出地图的同时输出蛇.</p>

<h3 id="6判断蛇是否撞墙"><a name="t16"></a>6.判断蛇是否撞墙</h3>

<pre class="prettyprint" name="code"><code class="language-c hljs  has-numbering"><span class="hljs-keyword">int</span> JudgeWall(<span class="hljs-keyword">void</span>){

    <span class="hljs-keyword">if</span>((Head_x == <span class="hljs-number">0</span> || Head_x == ROW_MAX-<span class="hljs-number">1</span>) || (Head_y == <span class="hljs-number">0</span> || Head_y == LINE_MAX-<span class="hljs-number">1</span>))
        <span class="hljs-keyword">return</span> <span class="hljs-number">0</span>;
    <span class="hljs-keyword">else</span> 
        <span class="hljs-keyword">return</span> <span class="hljs-number">1</span>;
}</code><ul class="pre-numbering"><li style="color: rgb(153, 153, 153);">1</li><li style="color: rgb(153, 153, 153);">2</li><li style="color: rgb(153, 153, 153);">3</li><li style="color: rgb(153, 153, 153);">4</li><li style="color: rgb(153, 153, 153);">5</li><li style="color: rgb(153, 153, 153);">6</li><li style="color: rgb(153, 153, 153);">7</li></ul></pre>

<p>解释: 如果撞墙则返回0 因为 后面用到的是 if(JudgeWall())</p>

<h3 id="7-蛇尾部的移动"><a name="t17"></a>7. 蛇尾部的移动</h3>

<pre class="prettyprint" name="code"><code class="language-c hljs  has-numbering"><span class="hljs-keyword">void</span> MoveTail(<span class="hljs-keyword">int</span> snake[ROW_MAX][LINE_MAX]){

    <span class="hljs-keyword">if</span> (snake[Tail_x][Tail_y]+<span class="hljs-number">1</span> == snake[Tail_x-<span class="hljs-number">1</span>][Tail_y]){

        snake[Tail_x][Tail_y] = <span class="hljs-number">0</span>;
        Tail_x--;
    }
    <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (snake[Tail_x][Tail_y]+<span class="hljs-number">1</span> == snake[Tail_x+<span class="hljs-number">1</span>][Tail_y]){

        snake[Tail_x][Tail_y] = <span class="hljs-number">0</span>;
        Tail_x++;
    }
    <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (snake[Tail_x][Tail_y]+<span class="hljs-number">1</span> == snake[Tail_x][Tail_y-<span class="hljs-number">1</span>]){

        snake[Tail_x][Tail_y] = <span class="hljs-number">0</span>;
        Tail_y--;
    }
    <span class="hljs-keyword">else</span>{

        snake[Tail_x][Tail_y] = <span class="hljs-number">0</span>;
        Tail_y++;
    }
}</code><ul class="pre-numbering"><li style="color: rgb(153, 153, 153);">1</li><li style="color: rgb(153, 153, 153);">2</li><li style="color: rgb(153, 153, 153);">3</li><li style="color: rgb(153, 153, 153);">4</li><li style="color: rgb(153, 153, 153);">5</li><li style="color: rgb(153, 153, 153);">6</li><li style="color: rgb(153, 153, 153);">7</li><li style="color: rgb(153, 153, 153);">8</li><li style="color: rgb(153, 153, 153);">9</li><li style="color: rgb(153, 153, 153);">10</li><li style="color: rgb(153, 153, 153);">11</li><li style="color: rgb(153, 153, 153);">12</li><li style="color: rgb(153, 153, 153);">13</li><li style="color: rgb(153, 153, 153);">14</li><li style="color: rgb(153, 153, 153);">15</li><li style="color: rgb(153, 153, 153);">16</li><li style="color: rgb(153, 153, 153);">17</li><li style="color: rgb(153, 153, 153);">18</li><li style="color: rgb(153, 153, 153);">19</li><li style="color: rgb(153, 153, 153);">20</li><li style="color: rgb(153, 153, 153);">21</li><li style="color: rgb(153, 153, 153);">22</li><li style="color: rgb(153, 153, 153);">23</li></ul></pre>

<p>解释: 这就是之前所说的, 蛇尾部去寻找, 比它大一的位置, 位置可能有上下左右, 所以4种情况</p>

<h3 id="7-蛇吃到食物操作"><a name="t18"></a>7. 蛇吃到食物操作</h3>

<pre class="prettyprint" name="code"><code class="language-c hljs  has-numbering"><span class="hljs-keyword">int</span> EatFood(<span class="hljs-keyword">char</span> <span class="hljs-built_in">map</span>[ROW_MAX][LINE_MAX]){

    <span class="hljs-keyword">if</span>(<span class="hljs-built_in">map</span>[Head_x][Head_y] == <span class="hljs-string">'O'</span>){

        <span class="hljs-built_in">map</span>[Head_x][Head_y] = <span class="hljs-number">0</span>;
        count++;
        <span class="hljs-keyword">return</span> <span class="hljs-number">0</span>;
    }
    <span class="hljs-keyword">else</span>
        <span class="hljs-keyword">return</span> <span class="hljs-number">1</span>;
}</code><ul class="pre-numbering"><li style="color: rgb(153, 153, 153);">1</li><li style="color: rgb(153, 153, 153);">2</li><li style="color: rgb(153, 153, 153);">3</li><li style="color: rgb(153, 153, 153);">4</li><li style="color: rgb(153, 153, 153);">5</li><li style="color: rgb(153, 153, 153);">6</li><li style="color: rgb(153, 153, 153);">7</li><li style="color: rgb(153, 153, 153);">8</li><li style="color: rgb(153, 153, 153);">9</li><li style="color: rgb(153, 153, 153);">10</li><li style="color: rgb(153, 153, 153);">11</li></ul></pre>

<p>解释: 6.7是在一起的, if(EatFood(map)) MoveTail(snake); <br>
没有吃到食物的话, 尾部正常移动, 吃到, 尾部不移动.</p>

<h3 id="8-蛇的运动精华"><a name="t19"></a>8. 蛇的运动(精华)</h3>

<pre class="prettyprint" name="code"><code class="language-c hljs  has-numbering"><span class="hljs-keyword">void</span> run(<span class="hljs-keyword">char</span> <span class="hljs-built_in">map</span>[ROW_MAX][LINE_MAX], <span class="hljs-keyword">int</span> snake[ROW_MAX][LINE_MAX]){
<span class="hljs-comment">/*
上   -32 0xffffffe0 72 H
下   -32 0xffffffe0 80 P
左   -32 0xffffffe0 75 K
右   -32 0xffffffe0 77 M
*/</span>
    <span class="hljs-keyword">char</span> sh, ch;
    <span class="hljs-keyword">while</span>(<span class="hljs-number">1</span>){

        <span class="hljs-keyword">if</span>(JudgeWall()){
        <span class="hljs-comment">/**********判断键盘是否敲击***********/</span>
            <span class="hljs-keyword">if</span> (kbhit()){

                ch = getch();
                <span class="hljs-keyword">if</span> (ch == -<span class="hljs-number">32</span>){

                    sh = getch();
                    <span class="hljs-keyword">switch</span> (sh){

                        <span class="hljs-keyword">case</span> <span class="hljs-string">'H'</span>: direct = <span class="hljs-string">'w'</span>; <span class="hljs-keyword">break</span>;
                        <span class="hljs-keyword">case</span> <span class="hljs-string">'P'</span>: direct = <span class="hljs-string">'s'</span>; <span class="hljs-keyword">break</span>;
                        <span class="hljs-keyword">case</span> <span class="hljs-string">'K'</span>: direct = <span class="hljs-string">'a'</span>; <span class="hljs-keyword">break</span>;
                        <span class="hljs-keyword">case</span> <span class="hljs-string">'M'</span>: direct = <span class="hljs-string">'d'</span>; <span class="hljs-keyword">break</span>;                  
                    }
                }
                <span class="hljs-keyword">else</span>{                   
                    <span class="hljs-keyword">switch</span> (ch){

                    <span class="hljs-keyword">case</span> <span class="hljs-string">'w'</span>:<span class="hljs-keyword">case</span> <span class="hljs-string">'W'</span>: direct = <span class="hljs-string">'w'</span>; <span class="hljs-keyword">break</span>;
                    <span class="hljs-keyword">case</span> <span class="hljs-string">'s'</span>:<span class="hljs-keyword">case</span> <span class="hljs-string">'S'</span>: direct = <span class="hljs-string">'s'</span>; <span class="hljs-keyword">break</span>;
                    <span class="hljs-keyword">case</span> <span class="hljs-string">'a'</span>:<span class="hljs-keyword">case</span> <span class="hljs-string">'A'</span>: direct = <span class="hljs-string">'a'</span>; <span class="hljs-keyword">break</span>;
                    <span class="hljs-keyword">case</span> <span class="hljs-string">'d'</span>:<span class="hljs-keyword">case</span> <span class="hljs-string">'D'</span>: direct = <span class="hljs-string">'d'</span>; <span class="hljs-keyword">break</span>;

                    }
                }               
            }
        <span class="hljs-comment">/************************************/</span>

        <span class="hljs-comment">/**************蛇的运动******************/</span>
            <span class="hljs-keyword">switch</span> (direct){

                <span class="hljs-keyword">case</span> <span class="hljs-string">'w'</span>:
                    <span class="hljs-keyword">if</span>(snake[Head_x-<span class="hljs-number">1</span>][Head_y] != <span class="hljs-number">0</span>)
                        <span class="hljs-keyword">return</span>;

                    snake[Head_x-<span class="hljs-number">1</span>][Head_y] = ++Head_v;
                    Head_x--;
                    <span class="hljs-keyword">if</span>(EatFood(<span class="hljs-built_in">map</span>))
                        MoveTail(snake);
                    <span class="hljs-keyword">else</span>
                        CreateFood(<span class="hljs-built_in">map</span>, snake);
                    <span class="hljs-keyword">break</span>;
                <span class="hljs-keyword">case</span> <span class="hljs-string">'a'</span>:
                    <span class="hljs-keyword">if</span>(snake[Head_x][Head_y-<span class="hljs-number">1</span>] != <span class="hljs-number">0</span>)
                        <span class="hljs-keyword">return</span>;

                    snake[Head_x][Head_y-<span class="hljs-number">1</span>] = ++Head_v;
                    Head_y--;
                    <span class="hljs-keyword">if</span>(EatFood(<span class="hljs-built_in">map</span>))
                        MoveTail(snake);
                    <span class="hljs-keyword">else</span>
                        CreateFood(<span class="hljs-built_in">map</span>, snake);
                    <span class="hljs-keyword">break</span>;
                <span class="hljs-keyword">case</span> <span class="hljs-string">'s'</span>:
                    <span class="hljs-keyword">if</span>(snake[Head_x+<span class="hljs-number">1</span>][Head_y] != <span class="hljs-number">0</span>)
                        <span class="hljs-keyword">return</span>;

                    snake[Head_x+<span class="hljs-number">1</span>][Head_y] = ++Head_v;
                    Head_x++;
                    <span class="hljs-keyword">if</span>(EatFood(<span class="hljs-built_in">map</span>))
                        MoveTail(snake);
                    <span class="hljs-keyword">else</span>
                        CreateFood(<span class="hljs-built_in">map</span>, snake);
                    <span class="hljs-keyword">break</span>;                  
                <span class="hljs-keyword">case</span> <span class="hljs-string">'d'</span>: 
                    <span class="hljs-keyword">if</span>(snake[Head_x][Head_y+<span class="hljs-number">1</span>] != <span class="hljs-number">0</span>)
                        <span class="hljs-keyword">return</span>;

                    snake[Head_x][Head_y+<span class="hljs-number">1</span>] = ++Head_v;
                    Head_y++;
                    <span class="hljs-keyword">if</span>(EatFood(<span class="hljs-built_in">map</span>))
                        MoveTail(snake);
                    <span class="hljs-keyword">else</span>
                        CreateFood(<span class="hljs-built_in">map</span>, snake);
                    <span class="hljs-keyword">break</span>;          
            }
            system(<span class="hljs-string">"cls"</span>);
            TraverseMap(<span class="hljs-built_in">map</span>, snake);
        <span class="hljs-comment">/****************************************/</span>
        }
        <span class="hljs-keyword">else</span>
            <span class="hljs-keyword">return</span>;
    }
}</code><ul class="pre-numbering"><li style="color: rgb(153, 153, 153);">1</li><li style="color: rgb(153, 153, 153);">2</li><li style="color: rgb(153, 153, 153);">3</li><li style="color: rgb(153, 153, 153);">4</li><li style="color: rgb(153, 153, 153);">5</li><li style="color: rgb(153, 153, 153);">6</li><li style="color: rgb(153, 153, 153);">7</li><li style="color: rgb(153, 153, 153);">8</li><li style="color: rgb(153, 153, 153);">9</li><li style="color: rgb(153, 153, 153);">10</li><li style="color: rgb(153, 153, 153);">11</li><li style="color: rgb(153, 153, 153);">12</li><li style="color: rgb(153, 153, 153);">13</li><li style="color: rgb(153, 153, 153);">14</li><li style="color: rgb(153, 153, 153);">15</li><li style="color: rgb(153, 153, 153);">16</li><li style="color: rgb(153, 153, 153);">17</li><li style="color: rgb(153, 153, 153);">18</li><li style="color: rgb(153, 153, 153);">19</li><li style="color: rgb(153, 153, 153);">20</li><li style="color: rgb(153, 153, 153);">21</li><li style="color: rgb(153, 153, 153);">22</li><li style="color: rgb(153, 153, 153);">23</li><li style="color: rgb(153, 153, 153);">24</li><li style="color: rgb(153, 153, 153);">25</li><li style="color: rgb(153, 153, 153);">26</li><li style="color: rgb(153, 153, 153);">27</li><li style="color: rgb(153, 153, 153);">28</li><li style="color: rgb(153, 153, 153);">29</li><li style="color: rgb(153, 153, 153);">30</li><li style="color: rgb(153, 153, 153);">31</li><li style="color: rgb(153, 153, 153);">32</li><li style="color: rgb(153, 153, 153);">33</li><li style="color: rgb(153, 153, 153);">34</li><li style="color: rgb(153, 153, 153);">35</li><li style="color: rgb(153, 153, 153);">36</li><li style="color: rgb(153, 153, 153);">37</li><li style="color: rgb(153, 153, 153);">38</li><li style="color: rgb(153, 153, 153);">39</li><li style="color: rgb(153, 153, 153);">40</li><li style="color: rgb(153, 153, 153);">41</li><li style="color: rgb(153, 153, 153);">42</li><li style="color: rgb(153, 153, 153);">43</li><li style="color: rgb(153, 153, 153);">44</li><li style="color: rgb(153, 153, 153);">45</li><li style="color: rgb(153, 153, 153);">46</li><li style="color: rgb(153, 153, 153);">47</li><li style="color: rgb(153, 153, 153);">48</li><li style="color: rgb(153, 153, 153);">49</li><li style="color: rgb(153, 153, 153);">50</li><li style="color: rgb(153, 153, 153);">51</li><li style="color: rgb(153, 153, 153);">52</li><li style="color: rgb(153, 153, 153);">53</li><li style="color: rgb(153, 153, 153);">54</li><li style="color: rgb(153, 153, 153);">55</li><li style="color: rgb(153, 153, 153);">56</li><li style="color: rgb(153, 153, 153);">57</li><li style="color: rgb(153, 153, 153);">58</li><li style="color: rgb(153, 153, 153);">59</li><li style="color: rgb(153, 153, 153);">60</li><li style="color: rgb(153, 153, 153);">61</li><li style="color: rgb(153, 153, 153);">62</li><li style="color: rgb(153, 153, 153);">63</li><li style="color: rgb(153, 153, 153);">64</li><li style="color: rgb(153, 153, 153);">65</li><li style="color: rgb(153, 153, 153);">66</li><li style="color: rgb(153, 153, 153);">67</li><li style="color: rgb(153, 153, 153);">68</li><li style="color: rgb(153, 153, 153);">69</li><li style="color: rgb(153, 153, 153);">70</li><li style="color: rgb(153, 153, 153);">71</li><li style="color: rgb(153, 153, 153);">72</li><li style="color: rgb(153, 153, 153);">73</li><li style="color: rgb(153, 153, 153);">74</li><li style="color: rgb(153, 153, 153);">75</li><li style="color: rgb(153, 153, 153);">76</li><li style="color: rgb(153, 153, 153);">77</li><li style="color: rgb(153, 153, 153);">78</li><li style="color: rgb(153, 153, 153);">79</li><li style="color: rgb(153, 153, 153);">80</li><li style="color: rgb(153, 153, 153);">81</li><li style="color: rgb(153, 153, 153);">82</li><li style="color: rgb(153, 153, 153);">83</li><li style="color: rgb(153, 153, 153);">84</li><li style="color: rgb(153, 153, 153);">85</li><li style="color: rgb(153, 153, 153);">86</li><li style="color: rgb(153, 153, 153);">87</li><li style="color: rgb(153, 153, 153);">88</li><li style="color: rgb(153, 153, 153);">89</li><li style="color: rgb(153, 153, 153);">90</li><li style="color: rgb(153, 153, 153);">91</li><li style="color: rgb(153, 153, 153);">92</li><li style="color: rgb(153, 153, 153);">93</li><li style="color: rgb(153, 153, 153);">94</li><li style="color: rgb(153, 153, 153);">95</li></ul></pre>

<p>分两部分解释 <br>
解释: 键盘是否被敲击, 运用到了 kbhit() 这个函数, 如果被敲击, 则返回1, 没有则返回0. <br>
以及还需要注意一点的是, 上下左右是组合键, 需要用到文中代码的格式,</p>

<pre class="prettyprint" name="code"><code class="hljs cs has-numbering">                ch = getch();
                <span class="hljs-keyword">if</span> (ch == -<span class="hljs-number">32</span>){

                    sh = getch();
                    <span class="hljs-keyword">switch</span> (sh){

                        <span class="hljs-keyword">case</span> <span class="hljs-string">'H'</span>: direct = <span class="hljs-string">'w'</span>; <span class="hljs-keyword">break</span>;
                        <span class="hljs-keyword">case</span> <span class="hljs-string">'P'</span>: direct = <span class="hljs-string">'s'</span>; <span class="hljs-keyword">break</span>;
                        <span class="hljs-keyword">case</span> <span class="hljs-string">'K'</span>: direct = <span class="hljs-string">'a'</span>; <span class="hljs-keyword">break</span>;
                        <span class="hljs-keyword">case</span> <span class="hljs-string">'M'</span>: direct = <span class="hljs-string">'d'</span>; <span class="hljs-keyword">break</span>;                  
                    }
                }</code><ul class="pre-numbering"><li style="color: rgb(153, 153, 153);">1</li><li style="color: rgb(153, 153, 153);">2</li><li style="color: rgb(153, 153, 153);">3</li><li style="color: rgb(153, 153, 153);">4</li><li style="color: rgb(153, 153, 153);">5</li><li style="color: rgb(153, 153, 153);">6</li><li style="color: rgb(153, 153, 153);">7</li><li style="color: rgb(153, 153, 153);">8</li><li style="color: rgb(153, 153, 153);">9</li><li style="color: rgb(153, 153, 153);">10</li><li style="color: rgb(153, 153, 153);">11</li><li style="color: rgb(153, 153, 153);">12</li></ul></pre>

<p>上下左右的第一个字节是0xe0即-32; 如果是的话, 则在使用一个getch(); 判断具体什么键. <br>
以及增加了也可以使用wasd控制方向. 如果不是-32的话, 就进入这块的代码; <br>
并将direct 赋值 为那一方向的值;</p>

<p>解释:蛇的运动: 通过direct的值判断 蛇的走向; <br>
<code>if(snake[Head_x-1][Head_y] != 0) return;</code> <br>
这代码是判断是否咬到自己的身体(以及下三个方向同理). <br>
更新即将要到 snake[Head_x-1][Head_y] 位置的值; 并更蛇脑袋的新坐标 Head_x–; <br>
接下来就是, 看有没有吃到食物, 没有则移动尾部, 吃到则不移动位置, 并在创建一个新的食物坐标; <br>
最后就是清屏打印移动一个位置的蛇;</p>

<h3 id="9-将光标移动到任意位置"><a name="t20"></a>9. 将光标移动到任意位置</h3>

<pre class="prettyprint" name="code"><code class="hljs avrasm has-numbering">void gotoxy(int <span class="hljs-built_in">x</span>, int <span class="hljs-built_in">y</span>)
{
    CONSOLE_SCREEN_BUFFER_INFO    csbiInfo<span class="hljs-comment">;                            </span>
    HANDLE    hConsoleOut<span class="hljs-comment">;</span>
    hConsoleOut = GetStdHandle(STD_OUTPUT_HANDLE)<span class="hljs-comment">;</span>
    GetConsoleScreenBufferInfo(hConsoleOut,&amp;csbiInfo)<span class="hljs-comment">;</span>
    csbiInfo<span class="hljs-preprocessor">.dwCursorPosition</span><span class="hljs-preprocessor">.X</span> = <span class="hljs-built_in">x</span><span class="hljs-comment">;                                    </span>
    csbiInfo<span class="hljs-preprocessor">.dwCursorPosition</span><span class="hljs-preprocessor">.Y</span> = <span class="hljs-built_in">y</span><span class="hljs-comment">;                                    </span>
    SetConsoleCursorPosition(hConsoleOut,csbiInfo<span class="hljs-preprocessor">.dwCursorPosition</span>)<span class="hljs-comment">; </span>
}</code><ul class="pre-numbering"><li style="color: rgb(153, 153, 153);">1</li><li style="color: rgb(153, 153, 153);">2</li><li style="color: rgb(153, 153, 153);">3</li><li style="color: rgb(153, 153, 153);">4</li><li style="color: rgb(153, 153, 153);">5</li><li style="color: rgb(153, 153, 153);">6</li><li style="color: rgb(153, 153, 153);">7</li><li style="color: rgb(153, 153, 153);">8</li><li style="color: rgb(153, 153, 153);">9</li><li style="color: rgb(153, 153, 153);">10</li></ul></pre>

<p>解释: 会用即可, 注意的是, x向右是x轴的正半轴,y向下就y的正半轴;所以 (1,2)代表第二行第一列(与数组表示有点不同); </p>

<h3 id="10-输出结果"><a name="t21"></a>10. 输出结果</h3>

<pre class="prettyprint" name="code"><code class="hljs scss has-numbering">void <span class="hljs-function">Result(void)</span>{
    int <span class="hljs-tag">i</span>, j;
    <span class="hljs-function">for(i = ROW_MAX/<span class="hljs-number">2</span>-<span class="hljs-number">2</span>; i &lt;= ROW_MAX/<span class="hljs-number">2</span>+<span class="hljs-number">1</span>; ++i)</span>{
        <span class="hljs-function">gotoxy(<span class="hljs-number">0</span>, i)</span>;
        <span class="hljs-function">for(j = <span class="hljs-number">0</span>; j &lt;= LINE_MAX; ++j)</span>
            <span class="hljs-function">putchar(<span class="hljs-string">' '</span>)</span>;
    }
    <span class="hljs-function">gotoxy(LINE_MAX/<span class="hljs-number">2</span>-<span class="hljs-number">4</span>&lt;<span class="hljs-number">0</span>?<span class="hljs-number">0</span>:LINE_MAX/<span class="hljs-number">2</span>-<span class="hljs-number">4</span>, ROW_MAX/<span class="hljs-number">2</span>-<span class="hljs-number">1</span>)</span>;
    <span class="hljs-function">printf(<span class="hljs-string">"The end!\n"</span>)</span>;
    <span class="hljs-function">gotoxy(LINE_MAX/<span class="hljs-number">2</span>-<span class="hljs-number">8</span>&lt;<span class="hljs-number">0</span>?<span class="hljs-number">0</span>:LINE_MAX/<span class="hljs-number">2</span>-<span class="hljs-number">8</span>, ROW_MAX/<span class="hljs-number">2</span>)</span>;
    <span class="hljs-function">printf(<span class="hljs-string">"Your score is %d\n"</span>, count)</span>;
    <span class="hljs-function">gotoxy(<span class="hljs-number">0</span>,ROW_MAX-<span class="hljs-number">1</span>)</span>;
}</code><ul class="pre-numbering"><li style="color: rgb(153, 153, 153);">1</li><li style="color: rgb(153, 153, 153);">2</li><li style="color: rgb(153, 153, 153);">3</li><li style="color: rgb(153, 153, 153);">4</li><li style="color: rgb(153, 153, 153);">5</li><li style="color: rgb(153, 153, 153);">6</li><li style="color: rgb(153, 153, 153);">7</li><li style="color: rgb(153, 153, 153);">8</li><li style="color: rgb(153, 153, 153);">9</li><li style="color: rgb(153, 153, 153);">10</li><li style="color: rgb(153, 153, 153);">11</li><li style="color: rgb(153, 153, 153);">12</li><li style="color: rgb(153, 153, 153);">13</li></ul></pre>

<p>解释: 将结果显示在图的中间, 最后将光标转至地图外.</p>

<h2 id="六-完善"><a name="t22"></a>六.  完善</h2>

<h3 id="1设置"><a name="t23"></a>1.设置</h3>

<p>由于不同的处理器, 蛇的移动速度也不一样; <br>
以及可以修改地图的大小;</p>

<pre class="prettyprint" name="code"><code class="language-c hljs  has-numbering"><span class="hljs-keyword">int</span> ROW = ROW_MAX;
<span class="hljs-keyword">int</span> LINE = LINE_MAX;
<span class="hljs-keyword">int</span> times = <span class="hljs-number">1</span>;<span class="hljs-comment">//均为全局变量</span>
<span class="hljs-comment">//若增加此函数, 要达到修改的目的, 须将之前所有函数体中的 _MAX 删去(函数名中的_MAX不必删除)</span>
<span class="hljs-comment">//或者等后面的源代码</span>

<span class="hljs-keyword">void</span> SetUp(<span class="hljs-keyword">void</span>){

    <span class="hljs-keyword">char</span> ch;
    <span class="hljs-keyword">int</span> row;
    <span class="hljs-keyword">int</span> line;
    <span class="hljs-keyword">int</span> speed;
    system(<span class="hljs-string">"cls"</span>);
    <span class="hljs-built_in">printf</span>(<span class="hljs-string">"\tSET UP\n"</span>);
    <span class="hljs-built_in">printf</span>(<span class="hljs-string">"1. speed\n"</span>);
    <span class="hljs-built_in">printf</span>(<span class="hljs-string">"2. area\n"</span>);
    <span class="hljs-built_in">printf</span>(<span class="hljs-string">"0. return\n"</span>);

    ch = getch();
    <span class="hljs-keyword">while</span>(<span class="hljs-number">1</span>){
        <span class="hljs-keyword">switch</span> (ch){

        <span class="hljs-keyword">case</span> <span class="hljs-string">'1'</span>:
            <span class="hljs-built_in">printf</span>(<span class="hljs-string">"The less the figure the faster speed level(1~8)\n"</span>);
            <span class="hljs-built_in">printf</span>(<span class="hljs-string">"Speed level: "</span>);
            <span class="hljs-built_in">scanf</span>(<span class="hljs-string">"%d"</span>, &amp;speed);
            times = speed&gt;<span class="hljs-number">8</span>? <span class="hljs-number">8</span>: speed&lt;<span class="hljs-number">1</span>? <span class="hljs-number">1</span>: speed;
            <span class="hljs-built_in">printf</span>(<span class="hljs-string">"The speed leve: %ld"</span>, times);
            <span class="hljs-keyword">break</span>;
        <span class="hljs-keyword">case</span> <span class="hljs-string">'2'</span>:
            <span class="hljs-built_in">printf</span>(<span class="hljs-string">"Update length and width(the max size is 80 x 80 and input 0 default)\n"</span>);
            <span class="hljs-built_in">printf</span>(<span class="hljs-string">"length: "</span>);
            <span class="hljs-built_in">scanf</span>(<span class="hljs-string">"%d"</span>, &amp;row);
            <span class="hljs-built_in">printf</span>(<span class="hljs-string">"width: "</span>);
            <span class="hljs-built_in">scanf</span>(<span class="hljs-string">"%d"</span>, &amp;line);

            <span class="hljs-keyword">if</span>(line != <span class="hljs-number">0</span> &amp;&amp; row != <span class="hljs-number">0</span>){

                ROW = row+<span class="hljs-number">2</span>;
                LINE = line+<span class="hljs-number">2</span>;
                Head_x = ROW/<span class="hljs-number">2</span>;
                Head_y = LINE/<span class="hljs-number">2</span>;
            }
            <span class="hljs-built_in">printf</span>(<span class="hljs-string">"After updating length: %d\twidth: %d\n"</span>, row, line);

            <span class="hljs-keyword">break</span>;

            <span class="hljs-keyword">default</span>:
                <span class="hljs-keyword">return</span>;
        }
        <span class="hljs-keyword">for</span>(<span class="hljs-keyword">long</span> i = <span class="hljs-number">0</span>; i &lt; <span class="hljs-number">400000000</span>; ++i);<span class="hljs-comment">//延时显示结果</span>
        <span class="hljs-comment">//fflush(stdin);</span>
        system(<span class="hljs-string">"cls"</span>);
        <span class="hljs-built_in">printf</span>(<span class="hljs-string">"\tSET UP\n"</span>);
        <span class="hljs-built_in">printf</span>(<span class="hljs-string">"1. speed\n"</span>);
        <span class="hljs-built_in">printf</span>(<span class="hljs-string">"2. area\n"</span>);
        <span class="hljs-built_in">printf</span>(<span class="hljs-string">"0. return\n"</span>);

        ch = getch();
    }

}</code><ul class="pre-numbering"><li style="color: rgb(153, 153, 153);">1</li><li style="color: rgb(153, 153, 153);">2</li><li style="color: rgb(153, 153, 153);">3</li><li style="color: rgb(153, 153, 153);">4</li><li style="color: rgb(153, 153, 153);">5</li><li style="color: rgb(153, 153, 153);">6</li><li style="color: rgb(153, 153, 153);">7</li><li style="color: rgb(153, 153, 153);">8</li><li style="color: rgb(153, 153, 153);">9</li><li style="color: rgb(153, 153, 153);">10</li><li style="color: rgb(153, 153, 153);">11</li><li style="color: rgb(153, 153, 153);">12</li><li style="color: rgb(153, 153, 153);">13</li><li style="color: rgb(153, 153, 153);">14</li><li style="color: rgb(153, 153, 153);">15</li><li style="color: rgb(153, 153, 153);">16</li><li style="color: rgb(153, 153, 153);">17</li><li style="color: rgb(153, 153, 153);">18</li><li style="color: rgb(153, 153, 153);">19</li><li style="color: rgb(153, 153, 153);">20</li><li style="color: rgb(153, 153, 153);">21</li><li style="color: rgb(153, 153, 153);">22</li><li style="color: rgb(153, 153, 153);">23</li><li style="color: rgb(153, 153, 153);">24</li><li style="color: rgb(153, 153, 153);">25</li><li style="color: rgb(153, 153, 153);">26</li><li style="color: rgb(153, 153, 153);">27</li><li style="color: rgb(153, 153, 153);">28</li><li style="color: rgb(153, 153, 153);">29</li><li style="color: rgb(153, 153, 153);">30</li><li style="color: rgb(153, 153, 153);">31</li><li style="color: rgb(153, 153, 153);">32</li><li style="color: rgb(153, 153, 153);">33</li><li style="color: rgb(153, 153, 153);">34</li><li style="color: rgb(153, 153, 153);">35</li><li style="color: rgb(153, 153, 153);">36</li><li style="color: rgb(153, 153, 153);">37</li><li style="color: rgb(153, 153, 153);">38</li><li style="color: rgb(153, 153, 153);">39</li><li style="color: rgb(153, 153, 153);">40</li><li style="color: rgb(153, 153, 153);">41</li><li style="color: rgb(153, 153, 153);">42</li><li style="color: rgb(153, 153, 153);">43</li><li style="color: rgb(153, 153, 153);">44</li><li style="color: rgb(153, 153, 153);">45</li><li style="color: rgb(153, 153, 153);">46</li><li style="color: rgb(153, 153, 153);">47</li><li style="color: rgb(153, 153, 153);">48</li><li style="color: rgb(153, 153, 153);">49</li><li style="color: rgb(153, 153, 153);">50</li><li style="color: rgb(153, 153, 153);">51</li><li style="color: rgb(153, 153, 153);">52</li><li style="color: rgb(153, 153, 153);">53</li><li style="color: rgb(153, 153, 153);">54</li><li style="color: rgb(153, 153, 153);">55</li><li style="color: rgb(153, 153, 153);">56</li><li style="color: rgb(153, 153, 153);">57</li><li style="color: rgb(153, 153, 153);">58</li><li style="color: rgb(153, 153, 153);">59</li><li style="color: rgb(153, 153, 153);">60</li><li style="color: rgb(153, 153, 153);">61</li><li style="color: rgb(153, 153, 153);">62</li></ul></pre>

<p>延时函数</p>

<pre class="prettyprint" name="code"><code class="hljs cpp has-numbering"><span class="hljs-keyword">void</span> dely (<span class="hljs-keyword">void</span>){

    <span class="hljs-keyword">for</span>(<span class="hljs-keyword">long</span> i = <span class="hljs-number">0</span>; i &lt;= <span class="hljs-built_in">pow</span>(<span class="hljs-number">16</span>, times); ++i)
        ;
}</code><ul class="pre-numbering"><li style="color: rgb(153, 153, 153);">1</li><li style="color: rgb(153, 153, 153);">2</li><li style="color: rgb(153, 153, 153);">3</li><li style="color: rgb(153, 153, 153);">4</li><li style="color: rgb(153, 153, 153);">5</li></ul></pre>

<p>将此代码插入到此位置即可.</p>

<pre class="prettyprint" name="code"><code class="hljs java has-numbering"><span class="hljs-comment">//处理按上下左右;</span>
<span class="hljs-keyword">if</span>(direct == <span class="hljs-string">'w'</span>){

    <span class="hljs-keyword">if</span>(sh == <span class="hljs-string">'P'</span>)
        <span class="hljs-keyword">continue</span>;
}
<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (direct == <span class="hljs-string">'s'</span>){

    <span class="hljs-keyword">if</span>(sh == <span class="hljs-string">'H'</span>)
        <span class="hljs-keyword">continue</span>;
}
<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (direct == <span class="hljs-string">'a'</span>){

    <span class="hljs-keyword">if</span>(sh == <span class="hljs-string">'M'</span>)
        <span class="hljs-keyword">continue</span>;
}
<span class="hljs-keyword">else</span>{

    <span class="hljs-keyword">if</span>(sh == <span class="hljs-string">'K'</span>)
        <span class="hljs-keyword">continue</span>;
}

<span class="hljs-comment">//处理按wasd;</span>
<span class="hljs-keyword">while</span>(<span class="hljs-number">1</span>){

        <span class="hljs-keyword">if</span>(JudgeWall()){
        <span class="hljs-javadoc">/**********判断键盘是否敲击***********/</span>

        <span class="hljs-javadoc">/************************************/</span>

        <span class="hljs-javadoc">/**************蛇的运动******************/</span>

        <span class="hljs-javadoc">/****************************************/</span>
        }
        <span class="hljs-keyword">else</span>
            <span class="hljs-keyword">return</span>;
        dely();
    }</code><ul class="pre-numbering"><li style="color: rgb(153, 153, 153);">1</li><li style="color: rgb(153, 153, 153);">2</li><li style="color: rgb(153, 153, 153);">3</li><li style="color: rgb(153, 153, 153);">4</li><li style="color: rgb(153, 153, 153);">5</li><li style="color: rgb(153, 153, 153);">6</li><li style="color: rgb(153, 153, 153);">7</li><li style="color: rgb(153, 153, 153);">8</li><li style="color: rgb(153, 153, 153);">9</li><li style="color: rgb(153, 153, 153);">10</li><li style="color: rgb(153, 153, 153);">11</li><li style="color: rgb(153, 153, 153);">12</li><li style="color: rgb(153, 153, 153);">13</li><li style="color: rgb(153, 153, 153);">14</li><li style="color: rgb(153, 153, 153);">15</li><li style="color: rgb(153, 153, 153);">16</li><li style="color: rgb(153, 153, 153);">17</li><li style="color: rgb(153, 153, 153);">18</li><li style="color: rgb(153, 153, 153);">19</li><li style="color: rgb(153, 153, 153);">20</li><li style="color: rgb(153, 153, 153);">21</li><li style="color: rgb(153, 153, 153);">22</li><li style="color: rgb(153, 153, 153);">23</li><li style="color: rgb(153, 153, 153);">24</li><li style="color: rgb(153, 153, 153);">25</li><li style="color: rgb(153, 153, 153);">26</li><li style="color: rgb(153, 153, 153);">27</li><li style="color: rgb(153, 153, 153);">28</li><li style="color: rgb(153, 153, 153);">29</li><li style="color: rgb(153, 153, 153);">30</li><li style="color: rgb(153, 153, 153);">31</li><li style="color: rgb(153, 153, 153);">32</li><li style="color: rgb(153, 153, 153);">33</li><li style="color: rgb(153, 153, 153);">34</li><li style="color: rgb(153, 153, 153);">35</li><li style="color: rgb(153, 153, 153);">36</li><li style="color: rgb(153, 153, 153);">37</li><li style="color: rgb(153, 153, 153);">38</li></ul></pre>

<h3 id="2-方向会冲突"><a name="t24"></a>2. 方向会冲突</h3>

<p>当方向为上时, 按下, 会结束游戏. 所以要增加一个条件, 防止冲突;</p>

<pre class="prettyprint" name="code"><code class="language-c hljs  has-numbering"><span class="hljs-keyword">if</span>(direct == <span class="hljs-string">'w'</span>){

    <span class="hljs-keyword">if</span>(ch == <span class="hljs-string">'s'</span> || ch == <span class="hljs-string">'S'</span>)
        <span class="hljs-keyword">continue</span>;
}
<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (direct == <span class="hljs-string">'s'</span>){

    <span class="hljs-keyword">if</span>(ch == <span class="hljs-string">'w'</span> || ch == <span class="hljs-string">'W'</span>)
        <span class="hljs-keyword">continue</span>;
}
<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (direct == <span class="hljs-string">'a'</span>){

    <span class="hljs-keyword">if</span>(ch == <span class="hljs-string">'d'</span> || ch == <span class="hljs-string">'D'</span>)
        <span class="hljs-keyword">continue</span>;
}
<span class="hljs-keyword">else</span>{

    <span class="hljs-keyword">if</span>(ch == <span class="hljs-string">'a'</span> || ch == <span class="hljs-string">'A'</span>)
        <span class="hljs-keyword">continue</span>;
}</code><ul class="pre-numbering"><li style="color: rgb(153, 153, 153);">1</li><li style="color: rgb(153, 153, 153);">2</li><li style="color: rgb(153, 153, 153);">3</li><li style="color: rgb(153, 153, 153);">4</li><li style="color: rgb(153, 153, 153);">5</li><li style="color: rgb(153, 153, 153);">6</li><li style="color: rgb(153, 153, 153);">7</li><li style="color: rgb(153, 153, 153);">8</li><li style="color: rgb(153, 153, 153);">9</li><li style="color: rgb(153, 153, 153);">10</li><li style="color: rgb(153, 153, 153);">11</li><li style="color: rgb(153, 153, 153);">12</li><li style="color: rgb(153, 153, 153);">13</li><li style="color: rgb(153, 153, 153);">14</li><li style="color: rgb(153, 153, 153);">15</li><li style="color: rgb(153, 153, 153);">16</li><li style="color: rgb(153, 153, 153);">17</li><li style="color: rgb(153, 153, 153);">18</li><li style="color: rgb(153, 153, 153);">19</li><li style="color: rgb(153, 153, 153);">20</li></ul></pre>

<h3 id="3-其它"><a name="t25"></a>3. 其它</h3>

<p>例如: <br>
&nbsp;&nbsp;&nbsp;更改颜色(蛇的颜色, 食物颜色) <br>
&nbsp;&nbsp;&nbsp;以及完善界面.等</p>

<h2 id="七-源代码"><a name="t26"></a>七.  源代码</h2>

<pre class="prettyprint" name="code"><code class="hljs java has-numbering"><span class="hljs-comment">//2017年5月19日 21:06:33</span>
<span class="hljs-comment">//2017年5月22日 20:42:40</span>
# include &lt;stdio.h&gt;
# include &lt;string.h&gt;
# include &lt;windows.h&gt;
# include &lt;stdlib.h&gt;
# include &lt;conio.h&gt;
# include &lt;time.h&gt;
# include &lt;math.h&gt;

# define de_lenth <span class="hljs-number">5</span><span class="hljs-comment">//蛇初始长度</span>
# define ROW_MAX <span class="hljs-number">20</span><span class="hljs-comment">//地图行</span>
# define LINE_MAX <span class="hljs-number">30</span><span class="hljs-comment">//地图列</span>

<span class="hljs-keyword">int</span> ROW = ROW_MAX;
<span class="hljs-keyword">int</span> LINE = LINE_MAX;
<span class="hljs-keyword">int</span> Head_x = ROW_MAX/<span class="hljs-number">2</span>, Head_y = LINE_MAX/<span class="hljs-number">2</span>;<span class="hljs-comment">//蛇的初始坐标</span>
<span class="hljs-keyword">int</span> Head_v = <span class="hljs-number">5</span>;<span class="hljs-comment">//判断是否为头</span>
<span class="hljs-keyword">int</span> Tail_x = <span class="hljs-number">0</span>, Tail_y = <span class="hljs-number">0</span>;<span class="hljs-comment">//蛇尾坐标</span>
<span class="hljs-keyword">int</span> count = <span class="hljs-number">0</span>;<span class="hljs-comment">//计数</span>
<span class="hljs-keyword">char</span> direct = <span class="hljs-string">'a'</span>;<span class="hljs-comment">//蛇移动的方向</span>
<span class="hljs-keyword">int</span> times = <span class="hljs-number">1</span>;

<span class="hljs-keyword">void</span> SetUp(<span class="hljs-keyword">void</span>);
<span class="hljs-keyword">void</span> CreateMap(<span class="hljs-keyword">char</span> map[ROW_MAX][LINE_MAX]);<span class="hljs-comment">//创建地图</span>
<span class="hljs-keyword">void</span> CreateSnake(<span class="hljs-keyword">int</span> snkae[ROW_MAX][LINE_MAX]);<span class="hljs-comment">//构造蛇的初始位置</span>
<span class="hljs-keyword">void</span> CreateFood(<span class="hljs-keyword">char</span> map[ROW_MAX][LINE_MAX], <span class="hljs-keyword">int</span> snake[ROW_MAX][LINE_MAX]);<span class="hljs-comment">//产生随机食物</span>
<span class="hljs-keyword">void</span> TraverseMap(<span class="hljs-keyword">char</span> map[ROW_MAX][LINE_MAX], <span class="hljs-keyword">int</span> snake[ROW_MAX][LINE_MAX]);<span class="hljs-comment">//输出地图以及蛇的全部</span>
<span class="hljs-keyword">int</span> JudgeWall(<span class="hljs-keyword">void</span>);<span class="hljs-comment">//判断蛇是否撞墙</span>
<span class="hljs-keyword">void</span> MoveTail(<span class="hljs-keyword">int</span> snake[ROW_MAX][LINE_MAX]);<span class="hljs-comment">//蛇尾部的移动</span>
<span class="hljs-keyword">int</span> EatFood(<span class="hljs-keyword">char</span> map[ROW_MAX][LINE_MAX]);<span class="hljs-comment">//蛇吃到食物的操作</span>
<span class="hljs-keyword">void</span> run(<span class="hljs-keyword">char</span> map[ROW_MAX][LINE_MAX], <span class="hljs-keyword">int</span> snake[ROW_MAX][LINE_MAX]);<span class="hljs-comment">//蛇的移动</span>
<span class="hljs-keyword">void</span> gotoxy(<span class="hljs-keyword">int</span> x, <span class="hljs-keyword">int</span> y);<span class="hljs-comment">//将光标定位到某一位置, 用于显示结果, 以及暂停是使用</span>
<span class="hljs-keyword">void</span> Result(<span class="hljs-keyword">void</span>);<span class="hljs-comment">//显示结果</span>
<span class="hljs-keyword">void</span> dely(<span class="hljs-keyword">void</span>);

<span class="hljs-keyword">int</span> main()
{
    <span class="hljs-keyword">char</span> map[ROW_MAX][LINE_MAX];
    <span class="hljs-keyword">int</span> snake[ROW_MAX][LINE_MAX];
    <span class="hljs-keyword">char</span> ch;
    srand(time(NULL));
<span class="hljs-javadoc">/************设置*********************/</span>   
    system(<span class="hljs-string">"cls"</span>);
    printf(<span class="hljs-string">"\tPress T/t to set up\n"</span>);
    printf(<span class="hljs-string">"Press any other key to start!\n"</span>);
    ch = getch();

    <span class="hljs-keyword">if</span>(ch == <span class="hljs-string">'T'</span> || ch == <span class="hljs-string">'t'</span>)
        SetUp();
<span class="hljs-javadoc">/*************************************/</span>

<span class="hljs-javadoc">/**************初始画面**************/</span>
    memset(map, <span class="hljs-number">0</span>, sizeof(map));
    memset(snake, <span class="hljs-number">0</span>, sizeof(snake));
    system(<span class="hljs-string">"cls"</span>);
    CreateMap(map); 
<span class="hljs-comment">//  gotoxy(1, 1);</span>
    CreateSnake(snake);
    CreateFood(map, snake);
    TraverseMap(map, snake);
<span class="hljs-javadoc">/**************初始画面**************/</span>

<span class="hljs-javadoc">/**********运动*****************/</span>
    run(map, snake);
<span class="hljs-javadoc">/*******************************/</span>

<span class="hljs-javadoc">/*************结果***************/</span>
    Result();
<span class="hljs-javadoc">/********************************/</span>
    <span class="hljs-keyword">return</span> <span class="hljs-number">0</span>;
}

<span class="hljs-keyword">void</span> SetUp(<span class="hljs-keyword">void</span>){

    <span class="hljs-keyword">char</span> ch;
    <span class="hljs-keyword">int</span> row;
    <span class="hljs-keyword">int</span> line;
    <span class="hljs-keyword">int</span> speed;
    system(<span class="hljs-string">"cls"</span>);
    printf(<span class="hljs-string">"\tSET UP\n"</span>);
    printf(<span class="hljs-string">"1. speed\n"</span>);
    printf(<span class="hljs-string">"2. area\n"</span>);
    printf(<span class="hljs-string">"0. return\n"</span>);

    ch = getch();
    <span class="hljs-keyword">while</span>(<span class="hljs-number">1</span>){
        <span class="hljs-keyword">switch</span> (ch){

        <span class="hljs-keyword">case</span> <span class="hljs-string">'1'</span>:
            printf(<span class="hljs-string">"The less the figure the faster speed level(1~8)\n"</span>);
            printf(<span class="hljs-string">"Speed level: "</span>);
            scanf(<span class="hljs-string">"%d"</span>, &amp;speed);
            times = speed&gt;<span class="hljs-number">8</span>? <span class="hljs-number">8</span>: speed&lt;<span class="hljs-number">1</span>? <span class="hljs-number">1</span>: speed;
            printf(<span class="hljs-string">"The speed leve: %ld"</span>, times);
            <span class="hljs-keyword">break</span>;
        <span class="hljs-keyword">case</span> <span class="hljs-string">'2'</span>:
            printf(<span class="hljs-string">"Update length and width(the max size is 80 x 80 and input 0 default)\n"</span>);
            printf(<span class="hljs-string">"length: "</span>);
            scanf(<span class="hljs-string">"%d"</span>, &amp;row);
            printf(<span class="hljs-string">"width: "</span>);
            scanf(<span class="hljs-string">"%d"</span>, &amp;line);

            <span class="hljs-keyword">if</span>(line != <span class="hljs-number">0</span> &amp;&amp; row != <span class="hljs-number">0</span>){

                ROW = row+<span class="hljs-number">2</span>;
                LINE = line+<span class="hljs-number">2</span>;
                Head_x = ROW/<span class="hljs-number">2</span>;
                Head_y = LINE/<span class="hljs-number">2</span>;
            }
            printf(<span class="hljs-string">"After updating length: %d\twidth: %d\n"</span>, row, line);

            <span class="hljs-keyword">break</span>;

            <span class="hljs-keyword">default</span>:
                <span class="hljs-keyword">return</span>;
        }
        <span class="hljs-keyword">for</span>(<span class="hljs-keyword">long</span> i = <span class="hljs-number">0</span>; i &lt; <span class="hljs-number">400000000</span>; ++i);
        <span class="hljs-comment">//fflush(stdin);</span>
        system(<span class="hljs-string">"cls"</span>);
        printf(<span class="hljs-string">"\tSET UP\n"</span>);
        printf(<span class="hljs-string">"1. speed\n"</span>);
        printf(<span class="hljs-string">"2. area\n"</span>);
        printf(<span class="hljs-string">"0. return\n"</span>);

        ch = getch();
    }

}

<span class="hljs-keyword">void</span> CreateMap(<span class="hljs-keyword">char</span> map[ROW_MAX][LINE_MAX]){
<span class="hljs-comment">//将行为0和ROW_MAX的位置赋值为'#', 以及列为0和LINE_MAX赋值为'#', 表示墙;</span>
    <span class="hljs-keyword">int</span> i, j;


    <span class="hljs-keyword">for</span>(i = <span class="hljs-number">0</span>; i &lt; ROW; ++i)
        map[i][<span class="hljs-number">0</span>] = <span class="hljs-string">'#'</span>;
    <span class="hljs-keyword">for</span>(j = <span class="hljs-number">1</span>; j &lt; LINE; ++j)
        map[<span class="hljs-number">0</span>][j] = <span class="hljs-string">'#'</span>;
    <span class="hljs-keyword">for</span>(i = ROW-<span class="hljs-number">1</span>, j = <span class="hljs-number">1</span>; j &lt; LINE; ++j)
        map[i][j] = <span class="hljs-string">'#'</span>;
    <span class="hljs-keyword">for</span>(j = LINE-<span class="hljs-number">1</span>, i = <span class="hljs-number">1</span>; i &lt; ROW; ++i)
        map[i][j] = <span class="hljs-string">'#'</span>;
}

<span class="hljs-keyword">void</span> CreateSnake(<span class="hljs-keyword">int</span> snake[ROW_MAX][LINE_MAX]){

    <span class="hljs-keyword">int</span> i, j;
    <span class="hljs-keyword">int</span> value = Head_v;
    snake[Head_x][Head_y] = value;

    <span class="hljs-keyword">for</span>(i = Head_x, j = Head_y+<span class="hljs-number">1</span>; j &lt; Head_y + de_lenth; ++j)
        snake[i][j] = --value;
    Tail_x = i;
    Tail_y = --j;
}

<span class="hljs-keyword">void</span> CreateFood(<span class="hljs-keyword">char</span> map[ROW_MAX][LINE_MAX], <span class="hljs-keyword">int</span> snake[ROW_MAX][LINE_MAX]){

    <span class="hljs-keyword">int</span> food_x = <span class="hljs-number">0</span>;
    <span class="hljs-keyword">int</span> food_y = <span class="hljs-number">0</span>;

    <span class="hljs-keyword">while</span> (map[food_x][food_y] == <span class="hljs-string">'#'</span> || snake[food_x][food_y] != <span class="hljs-number">0</span>){

        food_x = rand()%(ROW-<span class="hljs-number">3</span>) + <span class="hljs-number">1</span>;
        food_y = rand()%(LINE-<span class="hljs-number">3</span>) + <span class="hljs-number">1</span>;
    }

    map[food_x][food_y] = <span class="hljs-string">'O'</span>;
}

<span class="hljs-keyword">void</span> TraverseMap(<span class="hljs-keyword">char</span> map[ROW_MAX][LINE_MAX], <span class="hljs-keyword">int</span> snake[ROW_MAX][LINE_MAX]){

    <span class="hljs-keyword">int</span> i, j;

    <span class="hljs-keyword">for</span> (i = <span class="hljs-number">0</span>; i &lt; ROW; ++i){
        <span class="hljs-keyword">for</span> (j = <span class="hljs-number">0</span>; j &lt; LINE; ++j){
            <span class="hljs-keyword">if</span>(snake[i][j] == <span class="hljs-number">0</span>)
                printf(<span class="hljs-string">"%c"</span>, map[i][j]);
            <span class="hljs-keyword">else</span>{
                <span class="hljs-keyword">if</span>(snake[i][j] == Head_v)
                    putchar(<span class="hljs-string">'Q'</span>);
                <span class="hljs-keyword">else</span>
                    putchar(<span class="hljs-string">'a'</span>);               
            }
        }
        putchar(<span class="hljs-string">'\n'</span>);
    }
}

<span class="hljs-keyword">int</span> JudgeWall(<span class="hljs-keyword">void</span>){

    <span class="hljs-keyword">if</span>((Head_x == <span class="hljs-number">0</span> || Head_x == ROW-<span class="hljs-number">1</span>) || (Head_y == <span class="hljs-number">0</span> || Head_y == LINE-<span class="hljs-number">1</span>))
        <span class="hljs-keyword">return</span> <span class="hljs-number">0</span>;
    <span class="hljs-keyword">else</span> 
        <span class="hljs-keyword">return</span> <span class="hljs-number">1</span>;
}

<span class="hljs-keyword">void</span> MoveTail(<span class="hljs-keyword">int</span> snake[ROW_MAX][LINE_MAX]){

    <span class="hljs-keyword">if</span> (snake[Tail_x][Tail_y]+<span class="hljs-number">1</span> == snake[Tail_x-<span class="hljs-number">1</span>][Tail_y]){

        snake[Tail_x][Tail_y] = <span class="hljs-number">0</span>;
        Tail_x--;
    }
    <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (snake[Tail_x][Tail_y]+<span class="hljs-number">1</span> == snake[Tail_x+<span class="hljs-number">1</span>][Tail_y]){

        snake[Tail_x][Tail_y] = <span class="hljs-number">0</span>;
        Tail_x++;
    }
    <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (snake[Tail_x][Tail_y]+<span class="hljs-number">1</span> == snake[Tail_x][Tail_y-<span class="hljs-number">1</span>]){

        snake[Tail_x][Tail_y] = <span class="hljs-number">0</span>;
        Tail_y--;
    }
    <span class="hljs-keyword">else</span>{

        snake[Tail_x][Tail_y] = <span class="hljs-number">0</span>;
        Tail_y++;
    }
}

<span class="hljs-keyword">int</span> EatFood(<span class="hljs-keyword">char</span> map[ROW_MAX][LINE_MAX]){

    <span class="hljs-keyword">if</span>(map[Head_x][Head_y] == <span class="hljs-string">'O'</span>){

        map[Head_x][Head_y] = <span class="hljs-number">0</span>;
        count++;
        <span class="hljs-keyword">return</span> <span class="hljs-number">0</span>;
    }
    <span class="hljs-keyword">else</span>
        <span class="hljs-keyword">return</span> <span class="hljs-number">1</span>;
}

<span class="hljs-keyword">void</span> run(<span class="hljs-keyword">char</span> map[ROW_MAX][LINE_MAX], <span class="hljs-keyword">int</span> snake[ROW_MAX][LINE_MAX]){
<span class="hljs-comment">/*
上   -32 0xffffffe0 72 H
下   -32 0xffffffe0 80 P
左   -32 0xffffffe0 75 K
右   -32 0xffffffe0 77 M
*/</span>
    <span class="hljs-keyword">char</span> sh, ch;
    <span class="hljs-keyword">while</span>(<span class="hljs-number">1</span>){

        <span class="hljs-keyword">if</span>(JudgeWall()){
        <span class="hljs-javadoc">/**********判断键盘是否敲击***********/</span>
            <span class="hljs-keyword">if</span> (kbhit()){

                ch = getch();
                <span class="hljs-keyword">if</span> (ch == -<span class="hljs-number">32</span>){

                    sh = getch();
                    <span class="hljs-keyword">if</span>(direct == <span class="hljs-string">'w'</span>){

                        <span class="hljs-keyword">if</span>(sh == <span class="hljs-string">'P'</span>)
                            <span class="hljs-keyword">continue</span>;
                    }
                    <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (direct == <span class="hljs-string">'s'</span>){

                        <span class="hljs-keyword">if</span>(sh == <span class="hljs-string">'H'</span>)
                            <span class="hljs-keyword">continue</span>;
                    }
                    <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (direct == <span class="hljs-string">'a'</span>){

                        <span class="hljs-keyword">if</span>(sh == <span class="hljs-string">'M'</span>)
                            <span class="hljs-keyword">continue</span>;
                    }
                    <span class="hljs-keyword">else</span>{

                        <span class="hljs-keyword">if</span>(sh == <span class="hljs-string">'K'</span>)
                            <span class="hljs-keyword">continue</span>;
                    }

                    <span class="hljs-keyword">switch</span> (sh){

                        <span class="hljs-keyword">case</span> <span class="hljs-string">'H'</span>: direct = <span class="hljs-string">'w'</span>; <span class="hljs-keyword">break</span>;
                        <span class="hljs-keyword">case</span> <span class="hljs-string">'P'</span>: direct = <span class="hljs-string">'s'</span>; <span class="hljs-keyword">break</span>;
                        <span class="hljs-keyword">case</span> <span class="hljs-string">'K'</span>: direct = <span class="hljs-string">'a'</span>; <span class="hljs-keyword">break</span>;
                        <span class="hljs-keyword">case</span> <span class="hljs-string">'M'</span>: direct = <span class="hljs-string">'d'</span>; <span class="hljs-keyword">break</span>;              
                    }
                }
                <span class="hljs-keyword">else</span>{

                    <span class="hljs-keyword">if</span>(direct == <span class="hljs-string">'w'</span>){

                        <span class="hljs-keyword">if</span>(ch == <span class="hljs-string">'s'</span> || ch == <span class="hljs-string">'S'</span>)
                            <span class="hljs-keyword">continue</span>;
                    }
                    <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (direct == <span class="hljs-string">'s'</span>){

                        <span class="hljs-keyword">if</span>(ch == <span class="hljs-string">'w'</span> || ch == <span class="hljs-string">'W'</span>)
                            <span class="hljs-keyword">continue</span>;
                    }
                    <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (direct == <span class="hljs-string">'a'</span>){

                        <span class="hljs-keyword">if</span>(ch == <span class="hljs-string">'d'</span> || ch == <span class="hljs-string">'D'</span>)
                            <span class="hljs-keyword">continue</span>;
                    }
                    <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (direct == <span class="hljs-string">'d'</span>){

                        <span class="hljs-keyword">if</span>(ch == <span class="hljs-string">'a'</span> || ch == <span class="hljs-string">'A'</span>)
                            <span class="hljs-keyword">continue</span>;
                    }

                    <span class="hljs-keyword">switch</span> (ch){

                    <span class="hljs-keyword">case</span> <span class="hljs-string">'w'</span>:<span class="hljs-keyword">case</span> <span class="hljs-string">'W'</span>: direct = <span class="hljs-string">'w'</span>; <span class="hljs-keyword">break</span>;
                    <span class="hljs-keyword">case</span> <span class="hljs-string">'s'</span>:<span class="hljs-keyword">case</span> <span class="hljs-string">'S'</span>: direct = <span class="hljs-string">'s'</span>; <span class="hljs-keyword">break</span>;
                    <span class="hljs-keyword">case</span> <span class="hljs-string">'a'</span>:<span class="hljs-keyword">case</span> <span class="hljs-string">'A'</span>: direct = <span class="hljs-string">'a'</span>; <span class="hljs-keyword">break</span>;
                    <span class="hljs-keyword">case</span> <span class="hljs-string">'d'</span>:<span class="hljs-keyword">case</span> <span class="hljs-string">'D'</span>: direct = <span class="hljs-string">'d'</span>; <span class="hljs-keyword">break</span>;
                    <span class="hljs-keyword">case</span> <span class="hljs-number">27</span>:
                        <span class="hljs-keyword">int</span> i, j;
                        <span class="hljs-keyword">for</span>(i = ROW/<span class="hljs-number">2</span>-<span class="hljs-number">1</span>; i &lt;= ROW/<span class="hljs-number">2</span>+<span class="hljs-number">1</span>; ++i){
                                gotoxy(<span class="hljs-number">0</span>, i);
                                <span class="hljs-keyword">for</span>(j = <span class="hljs-number">0</span>; j &lt;= LINE; ++j)
                                    putchar(<span class="hljs-string">' '</span>);
                        }

                        gotoxy(LINE/<span class="hljs-number">2</span>-<span class="hljs-number">8</span>&lt;<span class="hljs-number">0</span>?<span class="hljs-number">0</span>:LINE/<span class="hljs-number">2</span>-<span class="hljs-number">8</span>, ROW/<span class="hljs-number">2</span>);
                        system(<span class="hljs-string">"pause"</span>);

                        <span class="hljs-keyword">break</span>;

                    }
                }               
            }
        <span class="hljs-javadoc">/************************************/</span>

        <span class="hljs-javadoc">/**************蛇的运动******************/</span>
            <span class="hljs-keyword">switch</span> (direct){

                <span class="hljs-keyword">case</span> <span class="hljs-string">'w'</span>:
                    <span class="hljs-keyword">if</span>(snake[Head_x-<span class="hljs-number">1</span>][Head_y] != <span class="hljs-number">0</span>)
                        <span class="hljs-keyword">return</span>;

                    snake[Head_x-<span class="hljs-number">1</span>][Head_y] = ++Head_v;
                    Head_x--;
                    <span class="hljs-keyword">if</span>(EatFood(map))
                        MoveTail(snake);
                    <span class="hljs-keyword">else</span>
                        CreateFood(map, snake);
                    <span class="hljs-keyword">break</span>;
                <span class="hljs-keyword">case</span> <span class="hljs-string">'a'</span>:
                    <span class="hljs-keyword">if</span>(snake[Head_x][Head_y-<span class="hljs-number">1</span>] != <span class="hljs-number">0</span>)
                        <span class="hljs-keyword">return</span>;

                    snake[Head_x][Head_y-<span class="hljs-number">1</span>] = ++Head_v;
                    Head_y--;
                    <span class="hljs-keyword">if</span>(EatFood(map))
                        MoveTail(snake);
                    <span class="hljs-keyword">else</span>
                        CreateFood(map, snake);
                    <span class="hljs-keyword">break</span>;
                <span class="hljs-keyword">case</span> <span class="hljs-string">'s'</span>:
                    <span class="hljs-keyword">if</span>(snake[Head_x+<span class="hljs-number">1</span>][Head_y] != <span class="hljs-number">0</span>)
                        <span class="hljs-keyword">return</span>;

                    snake[Head_x+<span class="hljs-number">1</span>][Head_y] = ++Head_v;
                    Head_x++;
                    <span class="hljs-keyword">if</span>(EatFood(map))
                        MoveTail(snake);
                    <span class="hljs-keyword">else</span>
                        CreateFood(map, snake);
                    <span class="hljs-keyword">break</span>;                  
                <span class="hljs-keyword">case</span> <span class="hljs-string">'d'</span>: 
                    <span class="hljs-keyword">if</span>(snake[Head_x][Head_y+<span class="hljs-number">1</span>] != <span class="hljs-number">0</span>)
                        <span class="hljs-keyword">return</span>;

                    snake[Head_x][Head_y+<span class="hljs-number">1</span>] = ++Head_v;
                    Head_y++;
                    <span class="hljs-keyword">if</span>(EatFood(map))
                        MoveTail(snake);
                    <span class="hljs-keyword">else</span>
                        CreateFood(map, snake);
                    <span class="hljs-keyword">break</span>;          
            }
            system(<span class="hljs-string">"cls"</span>);
            TraverseMap(map, snake);
        <span class="hljs-javadoc">/****************************************/</span>
        }
        <span class="hljs-keyword">else</span>
            <span class="hljs-keyword">return</span>;
        dely();
    }
}

<span class="hljs-keyword">void</span> gotoxy(<span class="hljs-keyword">int</span> x, <span class="hljs-keyword">int</span> y)
{
    CONSOLE_SCREEN_BUFFER_INFO    csbiInfo;                            
    HANDLE    hConsoleOut;
    hConsoleOut = GetStdHandle(STD_OUTPUT_HANDLE);
    GetConsoleScreenBufferInfo(hConsoleOut,&amp;csbiInfo);
    csbiInfo.dwCursorPosition.X = x;                                    
    csbiInfo.dwCursorPosition.Y = y;                                    
    SetConsoleCursorPosition(hConsoleOut,csbiInfo.dwCursorPosition); 
}

<span class="hljs-keyword">void</span> Result(<span class="hljs-keyword">void</span>){
    <span class="hljs-keyword">int</span> i, j;
    <span class="hljs-keyword">for</span>(i = ROW/<span class="hljs-number">2</span>-<span class="hljs-number">2</span>; i &lt;= ROW/<span class="hljs-number">2</span>+<span class="hljs-number">1</span>; ++i){
        gotoxy(<span class="hljs-number">0</span>, i);
        <span class="hljs-keyword">for</span>(j = <span class="hljs-number">0</span>; j &lt;= LINE; ++j)
            putchar(<span class="hljs-string">' '</span>);
    }
    gotoxy(LINE/<span class="hljs-number">2</span>-<span class="hljs-number">4</span>&lt;<span class="hljs-number">0</span>?<span class="hljs-number">0</span>:LINE/<span class="hljs-number">2</span>-<span class="hljs-number">4</span>, ROW/<span class="hljs-number">2</span>-<span class="hljs-number">1</span>);
    printf(<span class="hljs-string">"The end!\n"</span>);
    gotoxy(LINE/<span class="hljs-number">2</span>-<span class="hljs-number">8</span>&lt;<span class="hljs-number">0</span>?<span class="hljs-number">0</span>:LINE/<span class="hljs-number">2</span>-<span class="hljs-number">8</span>, ROW/<span class="hljs-number">2</span>);
    printf(<span class="hljs-string">"Your score is %d\n"</span>, count);
    gotoxy(<span class="hljs-number">0</span>,ROW);
    printf(<span class="hljs-string">"Press any key to quit\n"</span>);
    printf(<span class="hljs-string">"Thank you!\n"</span>);
    getch();
}

<span class="hljs-keyword">void</span> dely (<span class="hljs-keyword">void</span>){

    <span class="hljs-keyword">for</span>(<span class="hljs-keyword">long</span> i = <span class="hljs-number">0</span>; i &lt;= pow(<span class="hljs-number">16</span>, times); ++i)
        ;
}
</code><ul class="pre-numbering"><li style="color: rgb(153, 153, 153);">1</li><li style="color: rgb(153, 153, 153);">2</li><li style="color: rgb(153, 153, 153);">3</li><li style="color: rgb(153, 153, 153);">4</li><li style="color: rgb(153, 153, 153);">5</li><li style="color: rgb(153, 153, 153);">6</li><li style="color: rgb(153, 153, 153);">7</li><li style="color: rgb(153, 153, 153);">8</li><li style="color: rgb(153, 153, 153);">9</li><li style="color: rgb(153, 153, 153);">10</li><li style="color: rgb(153, 153, 153);">11</li><li style="color: rgb(153, 153, 153);">12</li><li style="color: rgb(153, 153, 153);">13</li><li style="color: rgb(153, 153, 153);">14</li><li style="color: rgb(153, 153, 153);">15</li><li style="color: rgb(153, 153, 153);">16</li><li style="color: rgb(153, 153, 153);">17</li><li style="color: rgb(153, 153, 153);">18</li><li style="color: rgb(153, 153, 153);">19</li><li style="color: rgb(153, 153, 153);">20</li><li style="color: rgb(153, 153, 153);">21</li><li style="color: rgb(153, 153, 153);">22</li><li style="color: rgb(153, 153, 153);">23</li><li style="color: rgb(153, 153, 153);">24</li><li style="color: rgb(153, 153, 153);">25</li><li style="color: rgb(153, 153, 153);">26</li><li style="color: rgb(153, 153, 153);">27</li><li style="color: rgb(153, 153, 153);">28</li><li style="color: rgb(153, 153, 153);">29</li><li style="color: rgb(153, 153, 153);">30</li><li style="color: rgb(153, 153, 153);">31</li><li style="color: rgb(153, 153, 153);">32</li><li style="color: rgb(153, 153, 153);">33</li><li style="color: rgb(153, 153, 153);">34</li><li style="color: rgb(153, 153, 153);">35</li><li style="color: rgb(153, 153, 153);">36</li><li style="color: rgb(153, 153, 153);">37</li><li style="color: rgb(153, 153, 153);">38</li><li style="color: rgb(153, 153, 153);">39</li><li style="color: rgb(153, 153, 153);">40</li><li style="color: rgb(153, 153, 153);">41</li><li style="color: rgb(153, 153, 153);">42</li><li style="color: rgb(153, 153, 153);">43</li><li style="color: rgb(153, 153, 153);">44</li><li style="color: rgb(153, 153, 153);">45</li><li style="color: rgb(153, 153, 153);">46</li><li style="color: rgb(153, 153, 153);">47</li><li style="color: rgb(153, 153, 153);">48</li><li style="color: rgb(153, 153, 153);">49</li><li style="color: rgb(153, 153, 153);">50</li><li style="color: rgb(153, 153, 153);">51</li><li style="color: rgb(153, 153, 153);">52</li><li style="color: rgb(153, 153, 153);">53</li><li style="color: rgb(153, 153, 153);">54</li><li style="color: rgb(153, 153, 153);">55</li><li style="color: rgb(153, 153, 153);">56</li><li style="color: rgb(153, 153, 153);">57</li><li style="color: rgb(153, 153, 153);">58</li><li style="color: rgb(153, 153, 153);">59</li><li style="color: rgb(153, 153, 153);">60</li><li style="color: rgb(153, 153, 153);">61</li><li style="color: rgb(153, 153, 153);">62</li><li style="color: rgb(153, 153, 153);">63</li><li style="color: rgb(153, 153, 153);">64</li><li style="color: rgb(153, 153, 153);">65</li><li style="color: rgb(153, 153, 153);">66</li><li style="color: rgb(153, 153, 153);">67</li><li style="color: rgb(153, 153, 153);">68</li><li style="color: rgb(153, 153, 153);">69</li><li style="color: rgb(153, 153, 153);">70</li><li style="color: rgb(153, 153, 153);">71</li><li style="color: rgb(153, 153, 153);">72</li><li style="color: rgb(153, 153, 153);">73</li><li style="color: rgb(153, 153, 153);">74</li><li style="color: rgb(153, 153, 153);">75</li><li style="color: rgb(153, 153, 153);">76</li><li style="color: rgb(153, 153, 153);">77</li><li style="color: rgb(153, 153, 153);">78</li><li style="color: rgb(153, 153, 153);">79</li><li style="color: rgb(153, 153, 153);">80</li><li style="color: rgb(153, 153, 153);">81</li><li style="color: rgb(153, 153, 153);">82</li><li style="color: rgb(153, 153, 153);">83</li><li style="color: rgb(153, 153, 153);">84</li><li style="color: rgb(153, 153, 153);">85</li><li style="color: rgb(153, 153, 153);">86</li><li style="color: rgb(153, 153, 153);">87</li><li style="color: rgb(153, 153, 153);">88</li><li style="color: rgb(153, 153, 153);">89</li><li style="color: rgb(153, 153, 153);">90</li><li style="color: rgb(153, 153, 153);">91</li><li style="color: rgb(153, 153, 153);">92</li><li style="color: rgb(153, 153, 153);">93</li><li style="color: rgb(153, 153, 153);">94</li><li style="color: rgb(153, 153, 153);">95</li><li style="color: rgb(153, 153, 153);">96</li><li style="color: rgb(153, 153, 153);">97</li><li style="color: rgb(153, 153, 153);">98</li><li style="color: rgb(153, 153, 153);">99</li><li style="color: rgb(153, 153, 153);">100</li><li style="color: rgb(153, 153, 153);">101</li><li style="color: rgb(153, 153, 153);">102</li><li style="color: rgb(153, 153, 153);">103</li><li style="color: rgb(153, 153, 153);">104</li><li style="color: rgb(153, 153, 153);">105</li><li style="color: rgb(153, 153, 153);">106</li><li style="color: rgb(153, 153, 153);">107</li><li style="color: rgb(153, 153, 153);">108</li><li style="color: rgb(153, 153, 153);">109</li><li style="color: rgb(153, 153, 153);">110</li><li style="color: rgb(153, 153, 153);">111</li><li style="color: rgb(153, 153, 153);">112</li><li style="color: rgb(153, 153, 153);">113</li><li style="color: rgb(153, 153, 153);">114</li><li style="color: rgb(153, 153, 153);">115</li><li style="color: rgb(153, 153, 153);">116</li><li style="color: rgb(153, 153, 153);">117</li><li style="color: rgb(153, 153, 153);">118</li><li style="color: rgb(153, 153, 153);">119</li><li style="color: rgb(153, 153, 153);">120</li><li style="color: rgb(153, 153, 153);">121</li><li style="color: rgb(153, 153, 153);">122</li><li style="color: rgb(153, 153, 153);">123</li><li style="color: rgb(153, 153, 153);">124</li><li style="color: rgb(153, 153, 153);">125</li><li style="color: rgb(153, 153, 153);">126</li><li style="color: rgb(153, 153, 153);">127</li><li style="color: rgb(153, 153, 153);">128</li><li style="color: rgb(153, 153, 153);">129</li><li style="color: rgb(153, 153, 153);">130</li><li style="color: rgb(153, 153, 153);">131</li><li style="color: rgb(153, 153, 153);">132</li><li style="color: rgb(153, 153, 153);">133</li><li style="color: rgb(153, 153, 153);">134</li><li style="color: rgb(153, 153, 153);">135</li><li style="color: rgb(153, 153, 153);">136</li><li style="color: rgb(153, 153, 153);">137</li><li style="color: rgb(153, 153, 153);">138</li><li style="color: rgb(153, 153, 153);">139</li><li style="color: rgb(153, 153, 153);">140</li><li style="color: rgb(153, 153, 153);">141</li><li style="color: rgb(153, 153, 153);">142</li><li style="color: rgb(153, 153, 153);">143</li><li style="color: rgb(153, 153, 153);">144</li><li style="color: rgb(153, 153, 153);">145</li><li style="color: rgb(153, 153, 153);">146</li><li style="color: rgb(153, 153, 153);">147</li><li style="color: rgb(153, 153, 153);">148</li><li style="color: rgb(153, 153, 153);">149</li><li style="color: rgb(153, 153, 153);">150</li><li style="color: rgb(153, 153, 153);">151</li><li style="color: rgb(153, 153, 153);">152</li><li style="color: rgb(153, 153, 153);">153</li><li style="color: rgb(153, 153, 153);">154</li><li style="color: rgb(153, 153, 153);">155</li><li style="color: rgb(153, 153, 153);">156</li><li style="color: rgb(153, 153, 153);">157</li><li style="color: rgb(153, 153, 153);">158</li><li style="color: rgb(153, 153, 153);">159</li><li style="color: rgb(153, 153, 153);">160</li><li style="color: rgb(153, 153, 153);">161</li><li style="color: rgb(153, 153, 153);">162</li><li style="color: rgb(153, 153, 153);">163</li><li style="color: rgb(153, 153, 153);">164</li><li style="color: rgb(153, 153, 153);">165</li><li style="color: rgb(153, 153, 153);">166</li><li style="color: rgb(153, 153, 153);">167</li><li style="color: rgb(153, 153, 153);">168</li><li style="color: rgb(153, 153, 153);">169</li><li style="color: rgb(153, 153, 153);">170</li><li style="color: rgb(153, 153, 153);">171</li><li style="color: rgb(153, 153, 153);">172</li><li style="color: rgb(153, 153, 153);">173</li><li style="color: rgb(153, 153, 153);">174</li><li style="color: rgb(153, 153, 153);">175</li><li style="color: rgb(153, 153, 153);">176</li><li style="color: rgb(153, 153, 153);">177</li><li style="color: rgb(153, 153, 153);">178</li><li style="color: rgb(153, 153, 153);">179</li><li style="color: rgb(153, 153, 153);">180</li><li style="color: rgb(153, 153, 153);">181</li><li style="color: rgb(153, 153, 153);">182</li><li style="color: rgb(153, 153, 153);">183</li><li style="color: rgb(153, 153, 153);">184</li><li style="color: rgb(153, 153, 153);">185</li><li style="color: rgb(153, 153, 153);">186</li><li style="color: rgb(153, 153, 153);">187</li><li style="color: rgb(153, 153, 153);">188</li><li style="color: rgb(153, 153, 153);">189</li><li style="color: rgb(153, 153, 153);">190</li><li style="color: rgb(153, 153, 153);">191</li><li style="color: rgb(153, 153, 153);">192</li><li style="color: rgb(153, 153, 153);">193</li><li style="color: rgb(153, 153, 153);">194</li><li style="color: rgb(153, 153, 153);">195</li><li style="color: rgb(153, 153, 153);">196</li><li style="color: rgb(153, 153, 153);">197</li><li style="color: rgb(153, 153, 153);">198</li><li style="color: rgb(153, 153, 153);">199</li><li style="color: rgb(153, 153, 153);">200</li><li style="color: rgb(153, 153, 153);">201</li><li style="color: rgb(153, 153, 153);">202</li><li style="color: rgb(153, 153, 153);">203</li><li style="color: rgb(153, 153, 153);">204</li><li style="color: rgb(153, 153, 153);">205</li><li style="color: rgb(153, 153, 153);">206</li><li style="color: rgb(153, 153, 153);">207</li><li style="color: rgb(153, 153, 153);">208</li><li style="color: rgb(153, 153, 153);">209</li><li style="color: rgb(153, 153, 153);">210</li><li style="color: rgb(153, 153, 153);">211</li><li style="color: rgb(153, 153, 153);">212</li><li style="color: rgb(153, 153, 153);">213</li><li style="color: rgb(153, 153, 153);">214</li><li style="color: rgb(153, 153, 153);">215</li><li style="color: rgb(153, 153, 153);">216</li><li style="color: rgb(153, 153, 153);">217</li><li style="color: rgb(153, 153, 153);">218</li><li style="color: rgb(153, 153, 153);">219</li><li style="color: rgb(153, 153, 153);">220</li><li style="color: rgb(153, 153, 153);">221</li><li style="color: rgb(153, 153, 153);">222</li><li style="color: rgb(153, 153, 153);">223</li><li style="color: rgb(153, 153, 153);">224</li><li style="color: rgb(153, 153, 153);">225</li><li style="color: rgb(153, 153, 153);">226</li><li style="color: rgb(153, 153, 153);">227</li><li style="color: rgb(153, 153, 153);">228</li><li style="color: rgb(153, 153, 153);">229</li><li style="color: rgb(153, 153, 153);">230</li><li style="color: rgb(153, 153, 153);">231</li><li style="color: rgb(153, 153, 153);">232</li><li style="color: rgb(153, 153, 153);">233</li><li style="color: rgb(153, 153, 153);">234</li><li style="color: rgb(153, 153, 153);">235</li><li style="color: rgb(153, 153, 153);">236</li><li style="color: rgb(153, 153, 153);">237</li><li style="color: rgb(153, 153, 153);">238</li><li style="color: rgb(153, 153, 153);">239</li><li style="color: rgb(153, 153, 153);">240</li><li style="color: rgb(153, 153, 153);">241</li><li style="color: rgb(153, 153, 153);">242</li><li style="color: rgb(153, 153, 153);">243</li><li style="color: rgb(153, 153, 153);">244</li><li style="color: rgb(153, 153, 153);">245</li><li style="color: rgb(153, 153, 153);">246</li><li style="color: rgb(153, 153, 153);">247</li><li style="color: rgb(153, 153, 153);">248</li><li style="color: rgb(153, 153, 153);">249</li><li style="color: rgb(153, 153, 153);">250</li><li style="color: rgb(153, 153, 153);">251</li><li style="color: rgb(153, 153, 153);">252</li><li style="color: rgb(153, 153, 153);">253</li><li style="color: rgb(153, 153, 153);">254</li><li style="color: rgb(153, 153, 153);">255</li><li style="color: rgb(153, 153, 153);">256</li><li style="color: rgb(153, 153, 153);">257</li><li style="color: rgb(153, 153, 153);">258</li><li style="color: rgb(153, 153, 153);">259</li><li style="color: rgb(153, 153, 153);">260</li><li style="color: rgb(153, 153, 153);">261</li><li style="color: rgb(153, 153, 153);">262</li><li style="color: rgb(153, 153, 153);">263</li><li style="color: rgb(153, 153, 153);">264</li><li style="color: rgb(153, 153, 153);">265</li><li style="color: rgb(153, 153, 153);">266</li><li style="color: rgb(153, 153, 153);">267</li><li style="color: rgb(153, 153, 153);">268</li><li style="color: rgb(153, 153, 153);">269</li><li style="color: rgb(153, 153, 153);">270</li><li style="color: rgb(153, 153, 153);">271</li><li style="color: rgb(153, 153, 153);">272</li><li style="color: rgb(153, 153, 153);">273</li><li style="color: rgb(153, 153, 153);">274</li><li style="color: rgb(153, 153, 153);">275</li><li style="color: rgb(153, 153, 153);">276</li><li style="color: rgb(153, 153, 153);">277</li><li style="color: rgb(153, 153, 153);">278</li><li style="color: rgb(153, 153, 153);">279</li><li style="color: rgb(153, 153, 153);">280</li><li style="color: rgb(153, 153, 153);">281</li><li style="color: rgb(153, 153, 153);">282</li><li style="color: rgb(153, 153, 153);">283</li><li style="color: rgb(153, 153, 153);">284</li><li style="color: rgb(153, 153, 153);">285</li><li style="color: rgb(153, 153, 153);">286</li><li style="color: rgb(153, 153, 153);">287</li><li style="color: rgb(153, 153, 153);">288</li><li style="color: rgb(153, 153, 153);">289</li><li style="color: rgb(153, 153, 153);">290</li><li style="color: rgb(153, 153, 153);">291</li><li style="color: rgb(153, 153, 153);">292</li><li style="color: rgb(153, 153, 153);">293</li><li style="color: rgb(153, 153, 153);">294</li><li style="color: rgb(153, 153, 153);">295</li><li style="color: rgb(153, 153, 153);">296</li><li style="color: rgb(153, 153, 153);">297</li><li style="color: rgb(153, 153, 153);">298</li><li style="color: rgb(153, 153, 153);">299</li><li style="color: rgb(153, 153, 153);">300</li><li style="color: rgb(153, 153, 153);">301</li><li style="color: rgb(153, 153, 153);">302</li><li style="color: rgb(153, 153, 153);">303</li><li style="color: rgb(153, 153, 153);">304</li><li style="color: rgb(153, 153, 153);">305</li><li style="color: rgb(153, 153, 153);">306</li><li style="color: rgb(153, 153, 153);">307</li><li style="color: rgb(153, 153, 153);">308</li><li style="color: rgb(153, 153, 153);">309</li><li style="color: rgb(153, 153, 153);">310</li><li style="color: rgb(153, 153, 153);">311</li><li style="color: rgb(153, 153, 153);">312</li><li style="color: rgb(153, 153, 153);">313</li><li style="color: rgb(153, 153, 153);">314</li><li style="color: rgb(153, 153, 153);">315</li><li style="color: rgb(153, 153, 153);">316</li><li style="color: rgb(153, 153, 153);">317</li><li style="color: rgb(153, 153, 153);">318</li><li style="color: rgb(153, 153, 153);">319</li><li style="color: rgb(153, 153, 153);">320</li><li style="color: rgb(153, 153, 153);">321</li><li style="color: rgb(153, 153, 153);">322</li><li style="color: rgb(153, 153, 153);">323</li><li style="color: rgb(153, 153, 153);">324</li><li style="color: rgb(153, 153, 153);">325</li><li style="color: rgb(153, 153, 153);">326</li><li style="color: rgb(153, 153, 153);">327</li><li style="color: rgb(153, 153, 153);">328</li><li style="color: rgb(153, 153, 153);">329</li><li style="color: rgb(153, 153, 153);">330</li><li style="color: rgb(153, 153, 153);">331</li><li style="color: rgb(153, 153, 153);">332</li><li style="color: rgb(153, 153, 153);">333</li><li style="color: rgb(153, 153, 153);">334</li><li style="color: rgb(153, 153, 153);">335</li><li style="color: rgb(153, 153, 153);">336</li><li style="color: rgb(153, 153, 153);">337</li><li style="color: rgb(153, 153, 153);">338</li><li style="color: rgb(153, 153, 153);">339</li><li style="color: rgb(153, 153, 153);">340</li><li style="color: rgb(153, 153, 153);">341</li><li style="color: rgb(153, 153, 153);">342</li><li style="color: rgb(153, 153, 153);">343</li><li style="color: rgb(153, 153, 153);">344</li><li style="color: rgb(153, 153, 153);">345</li><li style="color: rgb(153, 153, 153);">346</li><li style="color: rgb(153, 153, 153);">347</li><li style="color: rgb(153, 153, 153);">348</li><li style="color: rgb(153, 153, 153);">349</li><li style="color: rgb(153, 153, 153);">350</li><li style="color: rgb(153, 153, 153);">351</li><li style="color: rgb(153, 153, 153);">352</li><li style="color: rgb(153, 153, 153);">353</li><li style="color: rgb(153, 153, 153);">354</li><li style="color: rgb(153, 153, 153);">355</li><li style="color: rgb(153, 153, 153);">356</li><li style="color: rgb(153, 153, 153);">357</li><li style="color: rgb(153, 153, 153);">358</li><li style="color: rgb(153, 153, 153);">359</li><li style="color: rgb(153, 153, 153);">360</li><li style="color: rgb(153, 153, 153);">361</li><li style="color: rgb(153, 153, 153);">362</li><li style="color: rgb(153, 153, 153);">363</li><li style="color: rgb(153, 153, 153);">364</li><li style="color: rgb(153, 153, 153);">365</li><li style="color: rgb(153, 153, 153);">366</li><li style="color: rgb(153, 153, 153);">367</li><li style="color: rgb(153, 153, 153);">368</li><li style="color: rgb(153, 153, 153);">369</li><li style="color: rgb(153, 153, 153);">370</li><li style="color: rgb(153, 153, 153);">371</li><li style="color: rgb(153, 153, 153);">372</li><li style="color: rgb(153, 153, 153);">373</li><li style="color: rgb(153, 153, 153);">374</li><li style="color: rgb(153, 153, 153);">375</li><li style="color: rgb(153, 153, 153);">376</li><li style="color: rgb(153, 153, 153);">377</li><li style="color: rgb(153, 153, 153);">378</li><li style="color: rgb(153, 153, 153);">379</li><li style="color: rgb(153, 153, 153);">380</li><li style="color: rgb(153, 153, 153);">381</li><li style="color: rgb(153, 153, 153);">382</li><li style="color: rgb(153, 153, 153);">383</li><li style="color: rgb(153, 153, 153);">384</li><li style="color: rgb(153, 153, 153);">385</li><li style="color: rgb(153, 153, 153);">386</li><li style="color: rgb(153, 153, 153);">387</li><li style="color: rgb(153, 153, 153);">388</li><li style="color: rgb(153, 153, 153);">389</li><li style="color: rgb(153, 153, 153);">390</li><li style="color: rgb(153, 153, 153);">391</li><li style="color: rgb(153, 153, 153);">392</li><li style="color: rgb(153, 153, 153);">393</li><li style="color: rgb(153, 153, 153);">394</li><li style="color: rgb(153, 153, 153);">395</li><li style="color: rgb(153, 153, 153);">396</li><li style="color: rgb(153, 153, 153);">397</li><li style="color: rgb(153, 153, 153);">398</li><li style="color: rgb(153, 153, 153);">399</li><li style="color: rgb(153, 153, 153);">400</li><li style="color: rgb(153, 153, 153);">401</li><li style="color: rgb(153, 153, 153);">402</li><li style="color: rgb(153, 153, 153);">403</li><li style="color: rgb(153, 153, 153);">404</li><li style="color: rgb(153, 153, 153);">405</li><li style="color: rgb(153, 153, 153);">406</li><li style="color: rgb(153, 153, 153);">407</li><li style="color: rgb(153, 153, 153);">408</li><li style="color: rgb(153, 153, 153);">409</li><li style="color: rgb(153, 153, 153);">410</li><li style="color: rgb(153, 153, 153);">411</li><li style="color: rgb(153, 153, 153);">412</li><li style="color: rgb(153, 153, 153);">413</li><li style="color: rgb(153, 153, 153);">414</li><li style="color: rgb(153, 153, 153);">415</li><li style="color: rgb(153, 153, 153);">416</li><li style="color: rgb(153, 153, 153);">417</li><li style="color: rgb(153, 153, 153);">418</li><li style="color: rgb(153, 153, 153);">419</li><li style="color: rgb(153, 153, 153);">420</li><li style="color: rgb(153, 153, 153);">421</li><li style="color: rgb(153, 153, 153);">422</li><li style="color: rgb(153, 153, 153);">423</li><li style="color: rgb(153, 153, 153);">424</li></ul></pre>

<h2 id="八-总结"><a name="t27"></a>八.  总结</h2>

<p>看似复杂的程序, 实则思路理解了, 也变的简单化了; <br>
以及要学会多搜索, kbhit()函数, 以及如何表示上下左右, 之类的东西, 都是搜索出来的.</p>

<p>好的~~ <br>
谢谢~~(2017年5月25日)</p>            </div>
                        <link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-8cccb36679.css" rel="stylesheet">
                </div>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值