签到

05月06日
尚未签到

共有回帖数 0

    霜晨守候

    等级:
    #include graphics.h //显示第一行错了
    #include stdlib.h
    #include dos.h
    #include conio.h
    #define LEFT 0x4b00
    #define RIGHT 0x4d00
    #define DOWN 0x5000
    #define UP 0x4800
    #define ESC 0x011b
    #define N 100


    int i,key,speed;
    void GameOver();
    void Play();
    void dwall();
    void wall(int x,int y);
    int Speed();


    struct FOOD
    {
    int x;
    int y;
    int flag;
    }food;
    struct Snake
    {
    int x[N];
    int y[N];
    int node;
    int dir;
    int life;
    }snake;


    void wall(int x,int y)
    {
    int sizx=9;
    int sizy=9;
    setcolor(15);
    line(x,y,x+sizx,y);
    line(x,y+1,x=sizx-1,y+1);
    line(x,y,x,y+sizy);
    line(x+1,y,x+1,y+sizy-1);
    setcolor(4);
    line(x+1,y+sizy,x+sizx,y+sizy);
    line(x+2,y+sizy-1,x+sizx,y+sizy-1);
    line(x+sizx,y+2,x+sizx-1,y+sizy-1);
    line(x+sizx,y+1,x+sizx,y+sizy);
    setfillstyle(1,12);
    bar(x+2,y+2,x+sizx-2,y+sizy-2);
    }


    void dwall()
    {
    int j;
    for(j=50;j=600;j+=10)
    {
    wall(j,40);
    wall(j,451);
    }
    for (j=40;j=450;j+=10)
    {
    wall(50,j);
    wall(601,j);
    }
    }


    int Speed()
    {
    int m;
    gotoxy(20,10);
    printf("level1n");
    gotoxy(20,12);
    printf("level2n");
    gotoxy(20,14);
    printf("level3nttplease choose:");
    scanf("%d,&m");
    switch(m)
    {
    case 1:
    return 60000;
    case 2:
    return 40000;
    case 3:
    return 20000;
    default:
    cleardevice();
    Speed;
    }
    }


    void Play(void)
    {
    srand((unsigned long)time(0));
    food.flag=1;
    snake.life=0;
    snake.dir=1;
    snake.x[0]=300;
    snake.y[0]=240;
    snake.x[1]=290;
    snake.y[1]=240;
    snake.node=2;
    do
    {
    while (!kbhit())
    {
    if (food.flag==1)
    do
    {
    food.x=rand()%520+60;
    food.y=rand()%370+60;
    food.flag==0;
    }
    while(food.x%10!=0||food.y%10!=0);
    if (food.flag==0)
    {
    setcolor(GREEN); //这里的GREEN
    setlinestyle(3,0,3);
    rectangle(food.x,food.y,food.x+10,food.y+10);
    }
    for(i=snake.node-1;i0;i--)
    {
    snake.x=snake.x[i-1];
    snake.y=snake.y[i-1];
    }


    switch(snake.dir)
    {
    case 1:
    snake.x[0]+=10;
    case 2:
    snake.x[0]-=10;
    case 3:
    snake.y[0]-=10;
    case 4:
    snake.y[0]+=10;
    break;
    }
    for(i=3;isnake.node;i++)
    {
    if(snake.x==snake.x[0]&&snake.y==snake.y[0])
    {
    GameOver();
    snake.life=1;
    break;
    }
    }
    if(snake.x[0]60||snake.x[0]590||snake.y[0]50||snake.y[0]440)
    {
    GameOver();
    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.node++;
    food.flag=1;
    }
    setcolor(4);
    for(i=0;isnake.node;i++)
    {
    setlinestyle(0,0,1);
    rectangle(snake.x,snake.y,snake.x+10,snake.y+10);


    }
    delay(speed);
    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);
    }
    if(snake.life==1)
    break;
    key=bioskey(0);
    if (key==UP&&snake.dir!=4)
    snake.dir=3;
    else
    if(key==DOWN&&snake.dir!=3)
    snake.dir=4;
    else
    if(RIGHT&&snake.dir!=2)
    snake.dir=1;
    else
    if(key==LEFT&&snake.dir!=1)
    snake.dir=2;


    }
    while(key!=ESC);
    }


    void GameOver(void)
    {
    cleardevice();
    setcolor(RED); // 还有这里的RED
    settexstyle(0,0,4);
    outtextxy(50,200,"GAME OVER,BYE BYE!");
    sleep(3);
    }

    //最后一段main也有错误
    main()
    {
    int gdriver=DETECT,gmode;
    initgraph(&gdriver,&gmode,"");
    speed=Speed();
    cleardevice();
    dwall();
    Play();
    getch();
    closegraph();
    }

    楼主 2015-10-10 13:47 回复

共有回帖数 0
  • 回 帖
  • 表情 图片 视频
  • 发表

登录直线网账号

Copyright © 2010~2015 直线网 版权所有,All Rights Reserved.沪ICP备10039589号 意见反馈 | 关于直线 | 版权声明 | 会员须知