贪吃蛇.目前修改的最新版本(加入了音效)

  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!\n                           ");
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  }

 

posted @ 2013-06-20 21:57  Geekers  阅读(1404)  评论(2编辑  收藏  举报