标题:我在百度里搜索到贪食蛇的源代码,但输入后无法运行,请大师和各位前辈指点
只看楼主
菜鸟娜
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2017-10-28
结帖率:0
已结贴  问题点数:20 回复次数:10 
我在百度里搜索到贪食蛇的源代码,但输入后无法运行,请大师和各位前辈指点
/* 贪食蛇程序 by champking */

#define N 200

#include'graphics.h'

#include <stdlib.h>

#include <dos.h>


#define LEFT 0x4b00

#define RIGHT 0x4d00

#define DOWN 0x5000

#define UP 0x4800

#define ESC 0x011b

int i, key;

int score = 0;/*得分*/

int gamespeed = 100000;/*游戏速度自己调整*/

struct Food

{
    int x;/*食物的横坐标*/
    int y;/*食物的纵坐标*/
    int yes;/*判断是否要出现食的变量*/

}food;/*食物的结构体*/


struct Snake

{
  int x [N];
  int y [N];

  int node;/*蛇的节数*/
  int direction;/*蛇移动方向*/
  int life;/*蛇的生命,0活着,1死亡*/
}snake;

  void Init(void);/*图形驱动*/
  void Close(void);/*图形结束*/
  void Drawk(void);/*开始画面*/
  void GameOver(void);/*结束游戏*/
  void GamePlay(void);/*玩游戏具体过程*/
  void PrScore(void);/*输出成绩*/
  /*主函数*/

   void main(void);


   {

       Init();/*图形驱动*/

       DrawK();/*开始画面*/
      
       GamePlay();/*玩游戏具体过程*/

       Close();/*图形结束*/
   
   }

   /*图形驱动*/

   void Init(void);

   {
    int gd = DETECT,gm;

    initgraph(&gd,&gm,"c:\\tc");

    cleardevice();


   
   }
   /*开始画面,左上角坐标为(50,40),右下角坐标为(610,460)的围墙*/

   void DrawK(void);

   {

    /*setbkcolor(LIGHTGREEN);*/

       setcolor(11);

       setlinestyle(SOLID_LINE,0,THICK_WIDTH);/*设置线型*/

      
       for(i = 50; i<=600; i+=10);/*画围墙*/

       {
        rectangle(i,40, i + 10, 49);/*上边*/
        
        rectangle(i,451, i + 10,460);/*下边*/
      
      
       }

       for(i = 40; i <=450; i+=10);

       {
       rectangle(50,i,59,i+10);/*左边*/

       rectangle(601,i,610,i + 10);/*右边*/
      
       }

   }


  /*玩游戏具体过程*/

   void GamePlay(void);
   {
   

    randomize();/*随机数发生器*/

    food.yes = 1;/*1表示需要出现新食物,0表示已经存在食物*/

    snake.life = 0; /*活着*/

    snake.direction = 1; /*方向往右*/

    snake.x[0] = 100; snake.y [0] =100; /*蛇头*/
   
    snake.x[1] = 110; snake.y [1] =100;

    snake.node = 2; /*节数*/

    PrScore();/*输出得分*/

   
    while(1)/*可以重复玩游戏,压ESC键结束*/

    {
   
   while(!kbhit());/*在没有按键的情况下,蛇自己移动身体*/

   {
       if(food.yes = = 1);/*需要出现新食物*/
       {
           food.x = rand()%400 + 60;

           food.y = rand()%350 + 60;

           while(food.x % 10)! = 0)/*食物随机出现后必须让食物能够在整格内,这样才可以让蛇吃到*/

               food.x ++;

           while(food.y % 10)! = 0)

               food.y ++;

           food.yes = 0 ;/*画面上有食物了*/
           
       }
 
       if(food.yes == 0);/*画面上有食物了就要显示*/

       {
           setcolor(GREEN);

           rectangle(food.x,food.y,food.x +10, food.y -10);

       }


       for(i = snake.node -1; i>0; i--);/*蛇的每个环节往前移动,也就是贪吃蛇的关键算法*/


       {
           snake.x[i] = snake.x[i-1];

           snake.y[i] = snake.y[i-1];
      
      
       }

/*1,2,3,4表示右,左,上,下四个方向,通过这个判断来移动蛇头 */

       switch(snake.direction);

       {

       case 1: snake.x[0]+= 10; break;
     
       case 2: sanke.x[0]-= 10; break;
  
       case 3: snake.y[0]-= 10; break;

       case 4: snake.y[0]+= 10; break;

       }

       for(i = 3; i < snake.node; i++);/*从蛇的第四节开始判断是否撞到自己了,因为蛇头为两节,第三节不可能拐过来*/

       {

           if(snake.x[i] = = snake.x[0]&& snake.y[i] = = snake.y[0]);

           {

        GameOver();/*显示失败*/

        snake.life = 1 ;

        break;

           }

       }

        if(snake.x[0]<55||snake.x[0]>595||snake.y[0]<55||snake.y[0]>455);/*蛇是否撞到墙壁*/

        {

        GameOver();/*本次游戏结束*/

        snake.life=1; /*蛇死*/

        }

        if(snake.life = = 1);/*以上两种判断以后,如果蛇死就出内循环不,重新开始*/

        break;

        
        if(snake.x [0] == food.x && snake.y [0] == food.y);/*吃到食物以后*/
        
        {

        setcolor(0);/*把画面上的食物东西去掉*/

        rectangle(food.x,food.y,food.x +10,food.y -10);
        
        snake.x[snake.node] =- 20; snake.y[snake.node]=-20;

        /*新的一节先放在看不见的位置,下次循环就取前一节的位置*/

        snake.node++;/*蛇的身体长一节*/

        food.yes =1; /*画面上需要出现新的食物*/

        score + = 10 ;

        PrScore();/*输出新得分*/

        }



        setcolor(4);/*画出蛇*/

        for(i = 0; i<snake.node; i++);

        rectangle(snake.x[i],snake.y[i],snake.x[i] + 10,snake.y[i]-10);


        delay(gamespeed);


        setcolor(0);/*用黑色去除蛇的最后一节*/

        rectangle(snake.x[snake.node-1],snake.y[snake.node-1],snake.x[snake.node-1]+10,snake.y[snake.node-1]-10);

        }

        /*endwhile(!kbhit)*/

        if(snake.life == 1);/*如果蛇死就跳出循环*/

        break;


        key = bioskey (0);/*接收按键*/


        if(key == ESC)/*按ESC键退出*/

        break;

        else

        if(key == UP&& snake.direction)! =4)

        /*判断是否往相反的方向移动*/

        snake.direction =3;

        else

        if(key == RIGHT && snake.direction! = 2)

        snake.direction=1;

        else

        if(key == LEFT && snake.direction! =1)

        snake.direction =2;

        else

        if(key == DOWN && snake.direction! =3)

        snake.direction = 4 ;

        }

        /*endwhile(1)*/

        }

        /*游戏结束*/

        void GameOver(void);

        {
        cleardevice();

        PrScore();
        
        setcolor(RED);

        settextstyle(0,0,4);

        outtextxy(200,200,"GAME OVER");

        getch();

        }

        /*输出成绩*/

        void PrScore(void);

        {
        char str[10];

        setfillstyle (SOLID_FILL,YELLOW);

        bar(50,15,220,35);

        setcolor(6);

        settextstyle(0,0,2);

        sprintf(str,"score:%d",score);

        outtextxy (55,20,str);

        }

        /*图形结束*/

        void Close(void);

        {

        getch();

        closegraph();

        }
搜索更多相关主题的帖子: int 游戏 node void break 
2017-10-28 15:13
菜鸟娜
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2017-10-28
得分:0 
--------------------Configuration: Greedy snake - Win32 Debug--------------------
Compiling...
Greedy snake.cpp
e:\vc++\msdev98\myprojects\snake\greedy snake.cpp(5) : error C2015: too many characters in constant
e:\vc++\msdev98\myprojects\snake\greedy snake.cpp(5) : error C2006: #include expected a filename, found 'constant'
e:\vc++\msdev98\myprojects\snake\greedy snake.cpp(60) : error C2447: missing function header (old-style formal list?)
e:\vc++\msdev98\myprojects\snake\greedy snake.cpp(76) : error C2447: missing function header (old-style formal list?)
e:\vc++\msdev98\myprojects\snake\greedy snake.cpp(90) : error C2447: missing function header (old-style formal list?)
e:\vc++\msdev98\myprojects\snake\greedy snake.cpp(124) : error C2447: missing function header (old-style formal list?)
e:\vc++\msdev98\myprojects\snake\greedy snake.cpp(329) : error C2447: missing function header (old-style formal list?)
e:\vc++\msdev98\myprojects\snake\greedy snake.cpp(348) : error C2447: missing function header (old-style formal list?)
e:\vc++\msdev98\myprojects\snake\greedy snake.cpp(369) : error C2447: missing function header (old-style formal list?)
执行 cl.exe 时出错.

Greedy snake.exe - 1 error(s), 0 warning(s)


以上错误的提示内容,请各位过目
2017-10-28 15:30
pydlq
Rank: 6Rank: 6
等 级:侠之大者
威 望:1
帖 子:129
专家分:488
注 册:2017-9-5
得分:7 
提示上说没有头文件
#include'graphics.h'
2017-10-28 17:50
菜鸟娜
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2017-10-28
得分:0 
回复 3楼 pydlq
那应该怎么处理呢?
2017-10-28 18:56
炎天
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:桃花岛
等 级:贵宾
威 望:29
帖 子:1218
专家分:4986
注 册:2016-9-15
得分:7 
网上下载'graphics.h',  然后把下载的东东放到你安装编译器的文件里的名为include的文件中,  include可能在lib中, 你仔细找找

早知做人那么辛苦!  当初不应该下凡
2017-10-28 23:26
菜鸟娜
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2017-10-28
得分:0 
回复 5楼 炎天
谢谢,版主
2017-10-29 19:11
菜鸟娜
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2017-10-28
得分:0 
回复 5楼 炎天
请看我的操作,我也不知道这样对不对!?
2017-10-29 21:14
炎天
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:桃花岛
等 级:贵宾
威 望:29
帖 子:1218
专家分:4986
注 册:2016-9-15
得分:0 
回复 7楼 菜鸟娜
是的,你试试现在可以运行了么?

早知做人那么辛苦!  当初不应该下凡
2017-10-29 21:17
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
得分:7 
从2楼的错误提示看:
error C2015是说输入太多的字符常量,error C2006是说包含的文件格式不对,error C2447是函数定义头部的形参列表有问题!
不知高手们是从哪看出缺少graphics.h?

能编个毛线衣吗?
2017-10-30 10:01
菜鸟娜
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2017-10-28
得分:0 
回复 8楼 炎天
版主试过了,不能运行!
2017-10-30 16:28



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-481874-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.928888 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved