个酒柜各行业uhygyhyuhnmjib'ld【被屏蔽了吧‘ ' ghh vbjbh jjhhgff’fugyhuyfhu n uyuvhuhjbhjhh ' 你试试????????

19 条评论

  • @ 2024-11-20 19:23:00

    #include <stdio.h> #include <stdlib.h> #include <windows.h> #include <time.h> #include <conio.h>

    #define frame_height 30//地图尺寸 #define frame_width 50 #define UP 'w'//移动 #define DOWN 's' #define LEFT 'a' #define RIGHT 'd'

    int i,j,k,sp,score; char ch=UP,state=UP,choo,n;//初始化方向 int grow=0;

    struct Food//食物 {

    int x;//横坐标
    int y;//纵坐标
    

    } food;

    struct Snake//蛇 {

    /*用数组储存蛇的每一部分的坐标*/
    int x[100];
    int y[100];
    int len;//长度
    int speed;//速度
    

    } snake;

    void map(void);//地图 void update_food(void);//更新食物 void move_snake(void);//蛇的移动 int alive(void);//判断蛇是否死亡 void get_speed(void);//更新速度 void gotoxy(int x,int y);//移动光标,进行游戏界面的打印

    int main() {

    do
    { 
    
        score=0;//初始化分数为0
        /*让用户进行难度选择,有彩蛋*/
        printf("Choose the degree of difficulty:\n1:easy\t2:middle 3:difficult\n");
        n=getch();
        switch(n)
        { 
    
        case '1':
        { 
    
            sp=300;
            break;
        }
        case '2':
        { 
    
            sp=230;
            break;
        }
        case '3':
        { 
    
            sp=180;
            break;
        }
        default:
        { 
    
            printf("Congratulations!Welcome to Devil's difficulty\n");
            sp=120;
            break;
        }
        }
        system("cls");//每次新一局游戏先清屏,包含在<stdlib.h>
        map();//打印地图
        /*开始游戏*/
        while(1)
        { 
    
            update_food();//生产食物
            get_speed();//获取速度
            move_snake();//移动
            Sleep(snake.speed);//延时函数,speed数值越大延时越长
            if(!(alive()))//判断蛇是否死亡
            { 
    
                break;//死亡则退出循环
            }
        }
        printf("Game Over!\n");
        printf("1:Restart\t2:exit");
        choo=getch();
    }
    while(choo=='1');
    return 0;
    

    }

    void map() {

    srand(time(NULL));
    /*打印第一个食物*/
    /*Attention!此处留了一个bug:可能食物 的位置与初始的蛇重合,然后食物就会消 失,读者可以加以改进*/
    food.x=rand()%(frame_height-2)+1;
    food.y=rand()%(frame_width-2)+1;//在框内
    gotoxy(food.x,food.y);//把光标移动到该坐标
    printf("$");//打印食物
    
    /*snake的初始化*/
    snake.x[0]=frame_height/2;
    snake.y[0]=frame_width/2;
    gotoxy(snake.x[0],snake.y[0]);
    printf("@");
    snake.len=3;
    snake.speed=200;
    for(k=1; k<snake.len; k++)
    { 
    
        snake.x[k]=snake.x[k-1]+1;
        snake.y[k]=snake.y[k-1];
        gotoxy(snake.x[k],snake.y[k]);
        printf("@");
    }
    /*墙壁*/
    for(j=0; j<frame_width; j++)
    { 
    
        gotoxy(0,j);
        printf("#");
        gotoxy(frame_height-1,j);
        printf("#");
    }
    for(i=0; i<frame_height-1; i++)
    { 
    
        gotoxy(i,0);
        printf("#");
        gotoxy(i,frame_width-1);
        printf("#");
    }
    gotoxy(2,frame_width+3);
    if(n=='1') printf("Difficulty: easy");
    else if(n=='2') printf("Difficulty: middle");
    else if(n=='3') printf("Difficulty: difficult");
    else printf("Welcome to the Devil's difficulty");
    gotoxy(4,frame_width+3);
    printf("UP: w");
    gotoxy(6,frame_width+3);
    printf("DOWN: s");
    gotoxy(8,frame_width+3);
    printf("LEFT: a");
    gotoxy(10,frame_width+3);
    printf("RIGHT:d");
    gotoxy(12,frame_width+3);
    printf("Your score:%d",score);
    gotoxy(28,frame_width+3);
    printf("Made by Zhao Hejie");
    

    } /食物/ void update_food() {

    if(snake.x[0]==food.x&&snake.y[0]==food.y)//吃到食物
    { 
    
        score+=10;
        gotoxy(12,frame_width+3);
        printf("Your score:%d",score);
        srand(time(NULL));
        /*以下是更新食物的代码,里面排除了 食物与蛇重合的情况,读者可以参考以 下代码完成对上述bug的改进*/
        int flag=1;//标记变量
        do
        { 
    
        food.x=rand()%(frame_height-2)+1;
        food.y=rand()%(frame_width-2)+1;//在框内
        for(i=0; i<snake.len; i++)
        { 
    
            if(food.x==snake.x[i]&&food.y==snake.y[i])
            { 
    
                flag=0;//有重合
                break;
            }
        }
        }
        while(flag==0);
        /*打印食物*/
        gotoxy(food.x,food.y);
        printf("$");
        snake.len++;
        grow=1;//表明长了,在move_snake函数中有用到
    }
    

    } /移动蛇/ void move_snake() {

    while(kbhit())//键盘有输入
    { 
    
        ch=getch();
    }
    if(!grow)//没有长
    { 
    
        gotoxy(snake.x[snake.len-1],snake.y[snake.len-1]);
        printf(" ");//走了,在数组的最后打印空格,清除原有的蛇尾
    }
    for(k=snake.len-1; k>0; k--)//更新蛇的坐标,除了蛇头,其余位置继承上一个点的坐标
    { 
    
        snake.x[k]=snake.x[k-1];
        snake.y[k]=snake.y[k-1];//移动位置
    }
    switch(ch)//改变方向
    { 
    
    case UP:
    { 
    
        if(state==DOWN)//如果此时方向向下,输入向上的作用要被无视
        { 
    
            snake.x[0]++;
            break;
        }
        else
        { 
    
            snake.x[0]--;
            state=UP;//其余的改变状态为向上
            break;
        }
    }
    case DOWN:
    { 
    
        if(state==UP)
        { 
    
            snake.x[0]--;
            break;
        }
        else
        { 
    
            snake.x[0]++;
            state=DOWN;
            break;
        }
    }
    case LEFT:
    { 
    
        if(state==RIGHT)
        { 
    
            snake.y[0]++;
            break;
        }
        else
        { 
    
            snake.y[0]--;
            state=LEFT;
            break;
        }
    }
    case RIGHT:
    { 
    
        if(state==LEFT)
        { 
    
            snake.y[0]--;
            break;
        }
        else
        { 
    
            snake.y[0]++;
            state=RIGHT;
            break;
        }
    }
    /*摁其余键,保持原有状态*/
    default:
    { 
    
        if(state==DOWN)
        { 
    
            snake.x[0]++;
            break;
        }
        else if(state==UP)
        { 
    
            snake.x[0]--;
            break;
        }
        else if(state==LEFT)
        { 
    
            snake.y[0]--;
            break;
        }
        else if(state==RIGHT)
        { 
    
            snake.y[0]++;
            break;
        }
    
    }
    }
    gotoxy(snake.x[0],snake.y[0]);
    printf("@");//打印蛇头
    grow=0;//初始成长状态为0
    gotoxy(frame_height,0);//光标移动到地图左下角下方
    

    } /存活状态/ int alive(void) {

    if(snake.x[0]==0||snake.x[0]==frame_height-1||snake.y[0]==0||snake.y[0]==frame_width-1)//撞墙
        return 0;
    for(k=1; k<snake.len; k++) //咬到自己
    { 
    
        if(snake.x[0]==snake.x[k]&&snake.y[0]==snake.y[k])
            return 0;
    }
    return 1;
    

    } /加速/ /speed越大,蛇的速度越小/ void get_speed() {

    if(snake.len<=6)
        snake.speed=sp;
    else if(snake.len<=10)
        snake.speed=sp-20;
    else if(snake.len<=20)
        snake.speed=sp-50;
    else if(snake.len<=30)
        snake.speed=sp-60;
    else
        snake.speed=sp-70;
    

    } /移动光标/ void gotoxy(int x,int y) {

    HANDLE hout;
    COORD cor;
    /* typedef struct _COORD { SHORT X; // horizontal coordinate SHORT Y; // vertical coordinate } COORD; 用该结构体来储存坐标 */
    hout=GetStdHandle(STD_OUTPUT_HANDLE);//从标准输出设备中取得一个句柄
    /*这其中x,y的赋值对象要注意,不懂的好好想想*/
    cor.X=y;
    cor.Y=x;
    SetConsoleCursorPosition(hout,cor);//定位光标的函数
    

    }

    • @ 2024-11-10 21:03:38

      bsbbsbdbdsgvbhbad

      • @ 2024-5-19 11:29:48

        fityfytftftftftftftftftftftftftftftfftfluyfuyflyfougouluy

        • @ 2024-5-15 19:18:15

          • @ 2024-5-12 10:34:11

            我饿问问

            🤡 5
            👍 4
            • @ 2024-5-11 20:44:28

              👎 👎 👎 👎 👎 👎 👎 👎 👎 😕

              • @ 2024-3-29 18:21:59

                傻逼

                • @ 2024-3-23 10:15:34

                  我操你妈

                  • @ 2024-3-15 15:42:47

                    😕 😕

                    👍 1
                    • @ 2024-3-9 10:47:47

                      👎 👎 👎 👎

                      👎 1
                      • @ 2024-3-2 10:48:17

                        sbsbsbsbsbsbsbsbsbsbsbsb

                        • @ 2024-2-18 16:08:40

                          69

                          • @ 2024-2-17 11:08:55

                            👎 👎 👎

                            👎 1
                            • @ 2024-1-31 16:42:03

                              👎 👎 👎

                              👎 1
                              • @ 2024-1-31 12:14:24

                                👎

                                • @ 2024-1-7 17:39:31

                                  你bbb

                                  • @ 2023-12-23 15:26:39

                                    太xxxx了

                                    • @ 2023-12-14 19:33:38

                                      👎 👎 👎 👀️

                                      • @ 2023-12-9 15:34:19

                                        ...............................................................................................................................................................................................................................................................................................................................................................................................................

                                        • 1

                                        信息

                                        ID
                                        700
                                        时间
                                        1000ms
                                        内存
                                        256MiB
                                        难度
                                        6
                                        标签
                                        递交数
                                        26
                                        已通过
                                        12
                                        上传者