zoukankan      html  css  js  c++  java
  • 贪吃蛇.目前修改的最新版本(加入了音效)

      1 //Lee. 控制台 贪吃蛇
      2 //测试版本1.1
      3 //解决几个问题,1.为什么Map[79][24]  地图的横坐标都要用X * 2的形式,,
      4 //                                     而纵坐标的1却表示两个字节。
      5 /*                                    (即横坐标1表示一个宽度,但是纵坐标的1表示两个宽度)
      6                                 因为是字符游戏,地图并不是那么重要,只要有个标记能让玩家看清边界就行了. 但是
      7                                 根据我的经验,控制台中的一行的高度大约为一列的宽度的两倍. 换句话说,在控制台中,一
      8                                 个1×1的格子,其实是个长方形,它的高度为宽度的两倍. 因此,为了美观起见,我的横坐标
      9                                 (列值)一律使用双倍值,这样看上去就是一个匀称的方格子. ASCII 字符全都是一个字符宽
     10                                 度的,因此,我在本文接下来的部分中,统一使用中文宽字符来进行布局. 典型的中文布局符
     11                                 号有以下这些:
     12                                             ◆◇□■●●★☆▲△¤◎+┏┛┗┓━┃┫┣┳┻╋
     13 */                        
     14 //        2. 光标隐藏函数有什么用,好像不需要这个函数也没有影响。
     15 //        3. Key()函数
     16 下载地址:http://pan.baidu.com/share/link?shareid=405907771&uk=3325080974,包括pcc32库文件和源文件。
     17 
     18 #include<iostream> 
     19 #include<windows.h>
     20 #include<conio.h>
     21 #include<time.h>
     22 #include<stdlib.h>
     23 #include "mmsystem.h"
     24 #pragma comment(lib,"winmm.lib")
     25 #include"pcc32.h"
     26 #pragma comment(lib, "pcc32_vc6.lib")
     27 
     28 using namespace std;
     29 
     30 #define UP 72        //定义上下左右常量
     31 #define DOWN 80
     32 #define LEFT 75
     33 #define RIGHT 77
     34 #define ESC 27
     35 #define SPACE 32        //空格
     36 #define ENTER 13        //回车
     37 
     38 int X, Y;//食物坐标
     39 
     40 int Map[79][24]={{0}};         //地图尺寸,其实有食物记为1
     41 int over = 0;                 //用来标记游戏结束
     42 int score = 0;                 //记录分数
     43 int speed = 130;             //记录速度            
     44 int ColoArray[15]={15,1,2,3,4,5,6,7,8,9,10,11,12,13,14};    //自己定义的用来控制颜色的数组
     45 struct Snake
     46 {
     47     int x, y;                //坐标
     48     int direction;            //方向
     49 }Snake[100];                //蛇最多100个节点
     50 
     51 int length = 3;                //初始化蛇的长度为3
     52 int Key_Menu;                //开始菜单界面用的零时按键
     53 
     54 void GamePrint();            //游戏开始画面函数
     55 void Gameinit();            //游戏初始化函数
     56 void Sweep_Screem();        //清屏函数
     57 void Gotoxy(int , int);        //光标移动函数
     58 void Hid_Cursor();            //光标隐藏函数
     59 void Snake_Move();            //蛇运动函数
     60 int Create_Food();            //食物产生函数
     61 void Pwall();                //画墙函数
     62 void Key();                    //键盘操作和处理函数
     63 void Hit_Wall();            //判断是否撞墙
     64 void Eat_Itself();            //判断是否咬到自己
     65 void Whether_Eat();            //判断蛇是否吃到食物
     66 void GameRun();                //游戏运行函数
     67 void SurFace();
     68 void GameOver();
     69 void Pause();                //游戏暂停函数
     70 void MyCount1();            //提示边栏,用来做一些提示
     71 void MyCount2();            //统计边栏,用来做一些统计
     72 void Menu( int );           //开始界面
     73 void Inti_Data();            //初始化数据
     74 
     75 int main()                    //主函数
     76 {
     77 START:
     78     Inti_Data();
     79     fixConsoleSize(18,15);
     80     Hid_Cursor();
     81     SurFace();    
     82     PlaySound(TEXT("m22.wav"), NULL, SND_FILENAME | SND_ASYNC );    
     83     fixConsoleSize(105,25);
     84     GamePrint();
     85     Gameinit();        
     86     GameRun();
     87     while(over)                //如果游戏结束了,是否重新开始。按R键为重新开始
     88         {
     89             int t=getch();
     90             if(t == 'r'||t == 'R')
     91             {
     92                 system("cls");
     93                 goto START;
     94             }
     95         }
     96     return 0;
     97 }
     98 
     99 
    100 void GamePrint()        //游戏开始画面函数(先是欢迎界面,然后是游戏规则,然后是画墙)
    101 {
    102     Gotoxy(36,8);
    103     printf("┏┅┅┅┅┅┅┅┅┅┅┅┅┅┓");
    104     Gotoxy(36,9);
    105     printf("┠   Welcome to RedSnake.   ┨");
    106     Gotoxy(36,10);
    107     printf("┠         by_Lee.          ┨");
    108     Gotoxy(36,11);
    109     printf("┗┅┅┅┅┅┅┅┅┅┅┅┅┅┛");
    110     Sleep(2000);
    111     Sweep_Screem();
    112     Gotoxy(41, 7);
    113     printf("┏┯┯┯┯┯┯┯┓");
    114     Gotoxy(41, 8);
    115     printf("┠   Game Tips  ┨");
    116     Gotoxy(41, 9);
    117     printf("┠   ↑    Up   ┨");
    118     Gotoxy(41, 10);
    119     printf("┠   ↓   Down  ┨");
    120     Gotoxy(41, 11);
    121     printf("┠   ←   Left  ┨");
    122     Gotoxy(41, 12);
    123     printf("┠   →   Right ┨");
    124     Gotoxy(41, 13);
    125     printf("┠  ESC   Exit  ┨");
    126     Gotoxy(41, 14);
    127     printf("┠ SPACE  Pause ┨");
    128     Gotoxy(41, 15);
    129     printf("┗┷┷┷┷┷┷┷┛");
    130 
    131     Sleep(2200);   
    132     Sweep_Screem();
    133     Pwall();            //画墙函数
    134     MyCount1();            //画边栏1
    135     MyCount2();            //画边栏2
    136     Sleep(1100);
    137 }
    138 
    139 
    140 void Gameinit()                                //游戏初始化
    141 {
    142     Snake[0].x = 10;                        //  ■■□ 实际上是固定了初始蛇的位置
    143     Snake[0].y = 12;
    144     Snake[1].x = 8;
    145     Snake[1].y = 12;
    146     Snake[2].x = 6;
    147     Snake[2].y = 12;
    148     Snake[0].direction = RIGHT;                //默认蛇的初始状态为向右运动
    149     Gotoxy(10, 12);                            //根据蛇的位置跳转,并打印蛇头和蛇身
    150     printf("");    
    151     Gotoxy(8, 12);
    152     printf("");
    153     Gotoxy(6, 12);
    154     printf("");
    155 }
    156 
    157 
    158 void Sweep_Screem()//清屏函数
    159 {
    160     int i;
    161     Gotoxy(0, 0);
    162     for(i = 0;i < 25; i++)
    163     {
    164         printf("                                                                                ");
    165     }
    166 }
    167 
    168 void Gotoxy(int x, int y)//移动光标
    169 {
    170     COORD coord; 
    171     coord.X=x;
    172     coord.Y=y;
    173     SetConsoleCursorPosition( GetStdHandle( STD_OUTPUT_HANDLE ), coord );
    174 }
    175 
    176 void Hid_Cursor()        //光标隐藏函数
    177 {
    178     HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
    179     CONSOLE_CURSOR_INFO cci;
    180     GetConsoleCursorInfo(hOut,&cci);
    181     cci.bVisible=0;//赋1为显示,赋0为隐藏
    182     SetConsoleCursorInfo(hOut,&cci);
    183 }
    184 
    185 
    186 void Snake_Move()        //蛇运动函数
    187 {
    188     int i;
    189     srand(time(NULL));
    190     Gotoxy(Snake[0].x, Snake[0].y);
    191     setTextColor(ColoArray[rand()%14]);
    192     printf("");
    193     Gotoxy(Snake[1].x, Snake[1].y);
    194     setTextColor(ColoArray[rand()%14]);
    195     printf("");    
    196     Whether_Eat();    //检查是否吃到食物,如果吃到食物,蛇头坐标Map[Snake[0].x][Snake[0].y] = 0;
    197     setTextColor(ColoArray[rand()%14]);
    198     Create_Food();            //重新随机出一个食物,并且蛇的长度增加1,且新的蛇头产生
    199     Gotoxy(Snake[length].x, Snake[length].y);
    200     printf(" ");                        //消除原来的蛇尾。
    201         //判断蛇是否吃到食物,如果吃到,则再Create一个食物
    202 //    Gotoxy(0, 0);        //有BUG ,不知道怎么回事
    203 //    printf("■");        //有BUG ,不知道怎么回事
    204 
    205     Eat_Itself();                            //判断蛇是否咬到自己
    206     for(i = length; i > 0; i--)                //移动蛇的坐标
    207         Snake[i] = Snake[i-1];
    208 
    209     Key();                                    //判断用户的键盘输入并进行处理
    210 }
    211 
    212 int Create_Food()    //食物产生函数
    213 {
    214     if(length >= 40 )
    215         return 0;
    216     int i;
    217     if(Map[X][Y] == 0)
    218     {
    219         srand((unsigned int)time(0) + X);//等同于srand(time(0))或者srand(time(NULL))或者srand((int)time(0)),因为最终都要被强制转换为unsigned int;
    220         X = (rand() % 38 + 1) * 2;
    221         //X = rand() % 76 ;错误为什么?
    222         
    223         srand((unsigned int)time(0) + Y + rand());
    224         Y = rand() % 23 + 1;
    225         for(i = 0; i < length; i++)
    226             if(Snake[i].x == X && Snake[i].y == Y)
    227             {
    228                 i = -1;
    229                 break;
    230             }
    231             if(i != -1)
    232             {
    233                 Map[X][Y] = 1;
    234                 Gotoxy(X, Y);
    235                 srand(time(NULL));
    236                 setTextColor(ColoArray[rand()%14]);
    237                 printf("");
    238             }
    239     }
    240  return 0;
    241 }
    242 
    243 void Whether_Eat()                        //判断蛇是否吃到食物
    244 {
    245     if(Map[Snake[0].x][Snake[0].y] == 1)
    246     {    
    247         length++;
    248         score += 10;
    249         if(speed>45)
    250         {
    251             speed -= length/4;
    252         }
    253         setTextColor(WHITE);
    254         Gotoxy(80,16);
    255         printf("┠    Score:  %4d    ┨", score);
    256         Gotoxy(80,15);
    257         printf("┠    length:  %3d    ┨",length);
    258         Gotoxy(80,17);
    259         printf("┠    Speed:   %3d    ┨", speed);
    260         Map[Snake[0].x][Snake[0].y] = 0;
    261     }
    262 }
    263 
    264 void Eat_Itself()                        //判断蛇是否咬到自己
    265 {
    266     int i;
    267     for(i = 3; i < length; i++)
    268     {
    269         if(Snake[0].x == Snake[i].x && Snake[0].y == Snake[i].y)
    270         {
    271             over=1;
    272             break;
    273         }
    274     }
    275 }
    276 
    277 void Hit_Wall()                    //判断是否撞墙    
    278 {
    279     if(Snake[0].x == 0)            Snake[0].x = 76;
    280     if(Snake[0].x == 78)        Snake[0].x = 2;
    281     if(Snake[0].y == 0)            Snake[0].y = 23;
    282     if(Snake[0].y == 24)        Snake[0].y = 1;
    283 }
    284 
    285 
    286 void Key()                        
    287 {
    288     if(_kbhit())//判断是否按键
    289     {              
    290         int ch = _getch();
    291         if(ch == 224)//判断按的是不是方向键
    292         {
    293             ch = _getch();
    294             if(ch+Snake[0].direction != 152)//判断按键是否是反方向
    295                 Snake[0].direction = ch;//如果不是就改变蛇头方向
    296         }
    297         else if(ch == 27)//判断用户是否退出
    298         {
    299 
    300             Gotoxy(30,12);
    301             setTextColor(WHITE);
    302             printf(" Successful Exit!
                               ");
    303             exit(0);
    304         }
    305         else if(ch == 32)
    306         {
    307             Pause();
    308         }
    309     }
    310     switch(Snake[0].direction)
    311     {
    312     case 72: Snake[0].y-=1; break;
    313     case 80: Snake[0].y+=1; break;
    314     case 75: Snake[0].x-=2; break;
    315     case 77: Snake[0].x+=2; break;
    316     }    
    317 }
    318 
    319 /*void Key() //同方向将会出现问题
    320 {
    321 if(kbhit() != 0)
    322 {
    323     while(kbhit() != 0)
    324     {
    325         Snake[0].direction = getch();
    326     }
    327     }
    328     switch(Snake[0].direction)
    329     {
    330     case 72: Snake[0].y-=1; break;
    331     case 80: Snake[0].y+=1; break;
    332     case 75: Snake[0].x-=2; break;
    333     case 77: Snake[0].x+=2; break;
    334     }    
    335 }
    336 */
    337 
    338 void Pwall()                    //画墙函数
    339 {
    340     srand(time(NULL));
    341     int i, j;
    342     for(i = 39,j = 0; j < 39; i--, j++)
    343     {
    344         setTextColor(ColoArray[rand()%14]);
    345         Gotoxy(j*2, 0);
    346         printf("");
    347         if(j < 24)
    348         {
    349             setTextColor(ColoArray[rand()%14]);
    350             Gotoxy(78, j);
    351             printf("");
    352         }
    353         Gotoxy(i*2, 24);
    354         printf("");
    355         if(i > 15)
    356         {
    357             setTextColor(ColoArray[rand()%14]);
    358             Gotoxy(0, i-15);
    359             printf("");
    360         }
    361         Sleep(40);
    362     }
    363     Gotoxy(52,24);
    364     setTextColor(WHITE);
    365     printf("RedSnake v1.1 by_Lee");
    366 }
    367 
    368 void GameRun()                    //游戏运行函数
    369 {
    370     while(!over)
    371     {
    372         Snake_Move();            //控制蛇的运动
    373         Hit_Wall();                //判断是否撞墙
    374         GameOver();
    375         Sleep(speed);            //控制身的运动速度
    376         
    377     }
    378 }
    379 
    380 void SurFace()//18,15
    381 {
    382     Menu(1);
    383     int keytemp = 0;
    384         while(1)
    385         {
    386             
    387             int temp1 = getch();
    388             if(temp1 != UP && temp1 != DOWN && temp1 != ENTER)
    389                 continue;
    390             else
    391             {
    392                 if(temp1 == UP)
    393                 {
    394                     keytemp -= 1;
    395                     if(keytemp < 0)
    396                         keytemp += 4;
    397                 }
    398                 else if(temp1 == DOWN)
    399                 {
    400                     keytemp += 1;
    401                     if(keytemp > 3)
    402                     {
    403                         keytemp %= 4;
    404                     }
    405                 }
    406                 else if(temp1 == ENTER)
    407                 {
    408                     if(keytemp == 0)
    409                     {
    410                         system("cls");
    411                         break;
    412                     }
    413                     if(keytemp == 1)
    414                     {
    415                         Menu(5);
    416                         while(getch() == ENTER)
    417                         {
    418                             break;
    419                         }
    420                     }
    421                     if(keytemp == 2)
    422                     {
    423                         Menu(6);
    424                         while(getch() == ENTER)
    425                         {
    426                             break;
    427                         }
    428                     }
    429                     if(keytemp == 3)
    430                         exit(0);
    431                 }
    432                 switch (keytemp)
    433                 {
    434                 case 0: Menu(1); break;
    435                 case 1: Menu(2); break;
    436                 case 2: Menu(3); break;
    437                 case 3: Menu(4); break;
    438                 }
    439             }
    440         }
    441 }
    442 
    443 /*void Snake_Auto_Move(char temp)
    444 {
    445 int i;
    446 Gotoxy(Snake[0].x, Snake[0].y);
    447 printf("□");
    448 Gotoxy(Snake[1].x, Snake[1].y);
    449 printf("■");
    450 Gotoxy(Snake[length].x, Snake[length].y);
    451 printf(" ");
    452 do
    453 {
    454 Whether_Eat();                            //判断蛇是否吃到食物
    455 Eat_Itself();                            //判断蛇是否咬到自己
    456 for(i = length; i > 0; i--)                //移动蛇的坐标
    457 Snake[i] = Snake[i-1];
    458 Create_Food();
    459 switch(temp)
    460 {
    461 case 72: Snake[0].y-=1; break;
    462 case 80: Snake[0].y+=1; break;
    463 case 75: Snake[0].x-=2; break;
    464 case 77: Snake[0].x+=2; break;
    465 }
    466 }while((!kbhit() )&& (!over));
    467 }
    468 */
    469 
    470 void GameOver()
    471 {
    472     if(length == 40)
    473     {
    474         system("cls");
    475         Gotoxy(28, 12);
    476         setTextColor(WHITE);        
    477         PlaySound(TEXT("hali.WAV"), NULL, SND_FILENAME | SND_ASYNC );
    478         Gotoxy(38, 8);
    479         printf("┏┯┯┯┯┯┯┯┯┯┯┯┓");
    480         Gotoxy(38, 9);
    481         printf("┠   Congratulations.   ┨");
    482         Gotoxy(38, 10);
    483         printf("┠       You  win.      ┨");
    484         Gotoxy(38, 11);
    485         printf("┠   Enter R to Return  ┨");
    486         Gotoxy(38, 12);
    487         printf("┗┷┷┷┷┷┷┷┷┷┷┷┛");
    488         over = 1;
    489     }
    490     else if(over)
    491     {
    492         system("cls");
    493         PlaySound(TEXT("gameover.wav"), NULL, SND_FILENAME | SND_ASYNC );    
    494         setTextColor(WHITE);
    495         Gotoxy(38, 8);
    496         printf("┏┯┯┯┯┯┯┯┯┯┯┯┓");
    497         Gotoxy(38, 9);
    498         printf("┠      Game Over.      ┨");
    499         Gotoxy(38, 10);
    500         printf("┠  Your score is %4d  ┨", score);
    501         Gotoxy(38, 11);
    502         printf("┠ Enter R to try again ┨");
    503         Gotoxy(38, 12);
    504         printf("┗┷┷┷┷┷┷┷┷┷┷┷┛");
    505     }
    506 }
    507 
    508 void Pause()                //用于暂停的函数
    509 {   
    510     setTextColor(WHITE);
    511     Gotoxy(35,12);
    512     printf("  Pause.  ");
    513     while(1)
    514     {
    515         
    516         int c = getch();
    517         if(c == 32)
    518         {
    519         Gotoxy(35,12);
    520         printf("           ");
    521         break;
    522         }
    523     }
    524 }
    525 
    526 void MyCount1()
    527 {
    528     setTextColor(WHITE);
    529     Gotoxy(80,1);
    530     printf("┏┅┅┅┅┅┅┅┅┅┅┓");
    531     Gotoxy(80,2);
    532     printf("┠                    ┨");
    533     Sleep(25);
    534     Gotoxy(80,3);
    535     printf("┠    ↑     Up       ┨");    
    536     Sleep(25);
    537     Gotoxy(80,4);
    538     printf("┠    ↓     Down     ┨");
    539     Sleep(25);
    540     Gotoxy(80,5);
    541     printf("┠    ←     Left     ┨");
    542     Sleep(25);
    543     Gotoxy(80,6);
    544     printf("┠    →     Right    ┨");
    545     Sleep(25);
    546     Gotoxy(80,7);
    547     printf("┠    ESC    Exit     ┨");
    548     Sleep(25);
    549     Gotoxy(80,8);
    550     printf("┠    SPACE  Pause    ┨");
    551     Sleep(25);
    552     Gotoxy(80,9);
    553     printf("┠    R      Restart  ┨");
    554     Sleep(25);
    555     Gotoxy(80,10);
    556     printf("┠                    ┨");
    557     Gotoxy(80,11);
    558     printf("┗┅┅┅┅┅┅┅┅┅┅┛");
    559 
    560 
    561 }
    562 
    563 void MyCount2()
    564 {
    565     setTextColor(WHITE);
    566     Gotoxy(80,13);
    567     printf("┏┅┅┅┅┅┅┅┅┅┅┓");
    568     Gotoxy(80,14);
    569     printf("┠     Statistics     ┨");
    570     Sleep(25);
    571     Gotoxy(80,15);
    572     printf("┠    length:  %3d    ┨",length);    
    573     Sleep(25);
    574     Gotoxy(80,16);
    575     printf("┠    Score:  %4d    ┨", score);
    576     Sleep(25);
    577     Gotoxy(80,17);
    578     printf("┠    Speed:   %3d    ┨",speed);
    579     Sleep(25);
    580     Gotoxy(80,18);
    581     printf("┠     Just do it.    ┨");
    582     Sleep(25);
    583     Gotoxy(80,19);
    584     printf("┠       Author :     ┨");
    585     Sleep(25);
    586     Gotoxy(80,20);
    587     printf("┠      China_Lee     ┨");
    588     Sleep(25);
    589     Gotoxy(80,21);
    590     printf("┠    shijie  Weng    ┨");
    591     Sleep(25);
    592     Gotoxy(80,22);
    593     printf("┠                    ┨");
    594     Gotoxy(80,23);
    595     printf("┗┅┅┅┅┅┅┅┅┅┅┛");
    596 }
    597 
    598 void Menu( int n)
    599 {
    600     if(n==1)
    601     {
    602     
    603         system("cls");
    604         Gotoxy(5,0);
    605         printf("RedSnake!");
    606         PlaySound(TEXT("m1.wav"), NULL, SND_FILENAME | SND_ASYNC );
    607         Gotoxy(2,2);
    608         setTextColor(WHITE);
    609         printf("┏┯┯┯┯┯┓");
    610         Gotoxy(2,3);
    611         printf("┠ 开始游戏 ┨");
    612         Gotoxy(2,4);
    613         printf("┗┷┷┷┷┷┛");
    614         Gotoxy(2,5);
    615         setTextColor(DARKGRAY);
    616         printf("┌─————┐");
    617         Gotoxy(2,6);
    618         printf("├   帮助   ┤");
    619         Gotoxy(2,7);
    620         printf("└—————┘");
    621         Gotoxy(2,8);
    622         printf("┌─————┐");
    623         Gotoxy(2,9);
    624         printf("├   关于   ┤");
    625         Gotoxy(2,10);
    626         printf("└—————┘");
    627         Gotoxy(2,11);
    628         printf("┌─————┐");
    629         Gotoxy(2,12);
    630         printf("├ 退出游戏 ┤");
    631         Gotoxy(2,13);
    632         printf("└—————┘");
    633     }
    634     if(n==2)
    635     {
    636         system("cls");
    637         PlaySound(TEXT("m1.wav"), NULL, SND_FILENAME | SND_ASYNC );
    638         Gotoxy(5,0);
    639         setTextColor(DARKGRAY);
    640         printf("RedSnake!");
    641         Gotoxy(2,2);
    642         printf("┌─————┐");
    643         Gotoxy(2,3);
    644         printf("├ 开始游戏 ┤");
    645         Gotoxy(2,4);
    646         printf("└—————┘");
    647         Gotoxy(2,5);
    648         setTextColor(WHITE);
    649         printf("┏┯┯┯┯┯┓");
    650         Gotoxy(2,6);
    651         printf("┠   帮助   ┨");
    652         Gotoxy(2,7);
    653         printf("┗┷┷┷┷┷┛");
    654         Gotoxy(2,8);
    655         setTextColor(DARKGRAY);
    656         printf("┌─————┐");
    657         Gotoxy(2,9);
    658         printf("├   关于   ┤");
    659         Gotoxy(2,10);
    660         printf("└—————┘");
    661         Gotoxy(2,11);
    662         printf("┌─————┐");
    663         Gotoxy(2,12);
    664         printf("├ 退出游戏 ┤");
    665         Gotoxy(2,13);
    666         printf("└—————┘");
    667     }
    668     if(n==3)
    669     {
    670         system("cls");
    671         PlaySound(TEXT("m1.wav"), NULL, SND_FILENAME | SND_ASYNC );
    672         Gotoxy(5,0);
    673         setTextColor(DARKGRAY);
    674         printf("RedSnake!");
    675         Gotoxy(2,2);
    676         printf("┌─————┐");
    677         Gotoxy(2,3);
    678         printf("├ 开始游戏 ┤");
    679         Gotoxy(2,4);
    680         printf("└—————┘");
    681         Gotoxy(2,5);
    682         printf("┌─————┐");
    683         Gotoxy(2,6);
    684         printf("├   帮助   ┤");
    685         Gotoxy(2,7);
    686         printf("└—————┘");
    687         Gotoxy(2,8);
    688         setTextColor(WHITE);
    689         printf("┏┯┯┯┯┯┓");
    690         Gotoxy(2,9);
    691         printf("┠   关于   ┨");
    692         Gotoxy(2,10);
    693         printf("┗┷┷┷┷┷┛");
    694         Gotoxy(2,11);
    695         setTextColor(DARKGRAY);
    696         printf("┌─————┐");
    697         Gotoxy(2,12);
    698         printf("├ 退出游戏 ┤");
    699         Gotoxy(2,13);
    700         printf("└—————┘");        
    701     }
    702     if(n==4 )
    703     {
    704         system("cls");
    705         PlaySound(TEXT("m1.wav"), NULL, SND_FILENAME | SND_ASYNC );
    706         setTextColor(DARKGRAY);
    707         Gotoxy(5,0);
    708         printf("RedSnake!");
    709         Gotoxy(2,2);
    710         printf("┌─————┐");
    711         Gotoxy(2,3);
    712         printf("├ 开始游戏 ┤");
    713         Gotoxy(2,4);
    714         printf("└—————┘");
    715         Gotoxy(2,5);
    716         printf("┌─————┐");
    717         Gotoxy(2,6);
    718         printf("├   帮助   ┤");
    719         Gotoxy(2,7);
    720         printf("└—————┘");
    721         Gotoxy(2,8);
    722         printf("┌─————┐");
    723         Gotoxy(2,9);
    724         printf("├   关于   ┤");
    725         Gotoxy(2,10);
    726         printf("└—————┘");
    727         Gotoxy(2,11);
    728         setTextColor(WHITE);    
    729         printf("┏┯┯┯┯┯┓");
    730         Gotoxy(2,12);
    731         printf("┠ 退出游戏 ┨");
    732         Gotoxy(2,13);
    733         printf("┗┷┷┷┷┷┛");
    734     }
    735     if(n==5)
    736     {
    737         system("cls");
    738         PlaySound(TEXT("m1.wav"), NULL, SND_FILENAME | SND_ASYNC );
    739         Gotoxy(1,3);
    740         printf("┏┯┯┯┯┯┯┓");
    741         Gotoxy(1,4);
    742         printf("┠  Game Tips ┨");
    743         Gotoxy(1,5);
    744         printf("┠   ↑  Up   ┨");
    745         Gotoxy(1,6);
    746         printf("┠   ↓ Down  ┨");
    747         Gotoxy(1,7);
    748         printf("┠   ← Left  ┨");
    749         Gotoxy(1,8);
    750         printf("┠   → Right ┨");
    751         Gotoxy(1,9);
    752         setTextColor(WHITE);
    753         printf("┠   Return   ┨");
    754         Gotoxy(1,10);
    755         printf("┗┷┷┷┷┷┷┛");
    756         setTextColor(DARKGRAY);
    757     }
    758     if(n==6)
    759     {
    760         system("cls");
    761         PlaySound(TEXT("m1.wav"), NULL, SND_FILENAME | SND_ASYNC );
    762         Gotoxy(1,3);
    763         printf("┏┯┯┯┯┯┯┓");
    764         Gotoxy(1,4);
    765         printf("┠  RedSnake  ┨");
    766         Gotoxy(1,5);
    767         printf("┠   By Lee.  ┨");
    768         Gotoxy(1,6);
    769         printf("┠  版权所有  ┨");
    770         Gotoxy(1,7);
    771         printf("┠  盗版必究  ┨");
    772         Gotoxy(1,8);
    773         printf("┠    版本:   ┨");
    774         Gotoxy(1,9);
    775         setTextColor(WHITE);
    776         printf("┠    1.1V    ┨");
    777         Gotoxy(1,10);
    778         printf("┗┷┷┷┷┷┷┛");
    779         setTextColor(DARKGRAY);
    780     }
    781 }
    782 
    783  void Inti_Data()
    784  {
    785     over = 0;                            //初始化over
    786     length = 3;                            //初始化长度
    787     speed = 130;                        //初始化速度
    788     score = 0;                            //初始化分数
    789     memset( Map , 0 ,sizeof(Map));        //初始化地图食物
    790  }
  • 相关阅读:
    python 文件读写操作(转抄)
    kubernetes之kubeadmin安装部署
    bash之字符串处理(核心重点)
    blocking and nonblocking
    文件格式转换
    解压.asar
    Cocos Creator Editor 编辑器扩展记录
    CocosCreator 警告:Please set node's active instead of rigidbody's enabled
    Unity 垂直翻转位图颜色数据
    CocosCreator 动态设置属性在Properties面板显示/隐藏
  • 原文地址:https://www.cnblogs.com/Lee-geeker/p/3147288.html
Copyright © 2011-2022 走看看