wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4534|回復: 5
打印 上一主題 下一主題
收起左側

C語言 貪吃蛇游戲源碼

[復制鏈接]
跳轉到指定樓層
樓主
ID:812063 發表于 2020-8-10 18:25 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
    #include<stdio.h>
    #include<time.h>
    #include<windows.h>
    #include<stdlib.h>
    #define U 1
    #define D 2
    #define L 3
    #define R 4 //蛇的狀態,U:上 ;D:下;L:左 R:右
    typedef struct SNAKE //蛇身的一個節點
    {
    int x;
    int y;
    struct SNAKE *next;
    }snake;
    //全局變量//
    int score=0,add=10;//總得分與每次吃食物得分。
    int status,sleeptime=200;//每次運行的時間間隔
    snake *head, *food;//蛇頭指針,食物指針
    snake *q;//遍歷蛇的時候用到的指針
    int endgamestatus=0; //游戲結束的情況,1:撞到墻;2:咬到自己;3:主動退出游戲。
    //聲明全部函數//
    void Pos();
    void creatMap();
    void initsnake();
    int biteself();
    void createfood();
    void cantcrosswall();
    void snakemove();
    void pause();
    void gamecircle();
    void welcometogame();
    void endgame();
    void gamestart();
    void Pos(int x,int y)//設置光標位置
    {
    COORD pos;
    HANDLE hOutput;
    pos.X=x;
    pos.Y=y;
    hOutput=GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleCursorPosition(hOutput,pos);
    }
    void creatMap()//創建地圖
    {
    int i;
    for(i=0;i<58;i+=2)//打印上下邊框
    {
    Pos(i,0);
    printf("■");
    Pos(i,26);
    printf("■");
    }
    for(i=1;i<26;i++)//打印左右邊框
    {
    Pos(0,i);
    printf("■");
    Pos(56,i);
    printf("■");
    }
    }
    void initsnake()//初始化蛇身
    {
    snake *tail;
    int i;
    tail=(snake*)malloc(sizeof(snake));//從蛇尾開始,頭插法,以x,y設定開始的位置//
    tail->x=24;
    tail->y=5;
    tail->next=NULL;
    for(i=1;i<=4;i++)
    {
    head=(snake*)malloc(sizeof(snake));
    head->next=tail;
    head->x=24+2*i;
    head->y=5;
    tail=head;
    }
    while(tail!=NULL)//從頭到為,輸出蛇身
    {
    Pos(tail->x,tail->y);
    printf("■");
    tail=tail->next;
    }
    }
    int biteself()//判斷是否咬到了自己
    {
    snake *self;
    self=head->next;
    while(self!=NULL)
    {
    if(self->x==head->x && self->y==head->y)
    {
    return 1;
    }
    self=self->next;
    }
    return 0;
    }
    void createfood()//隨機出現食物
    {
    snake *food_1;
    srand((unsigned)time(NULL));
    food_1=(snake*)malloc(sizeof(snake));
    while((food_1->x%2)!=0) //保證其為偶數,使得食物能與蛇頭對其
    {
    food_1->x=rand()%52+2;
    }
    food_1->y=rand()%24+1;
    q=head;
    while(q->next==NULL)
    {
    if(q->x==food_1->x && q->y==food_1->y) //判斷蛇身是否與食物重合
    {
    free(food_1);
    createfood();
    }
    q=q->next;
    }
    Pos(food_1->x,food_1->y);
    food=food_1;
    printf("■");
    }
    void cantcrosswall()//不能穿墻
    {
    if(head->x==0 || head->x==56 ||head->y==0 || head->y==26)
    {
    endgamestatus=1;
    endgame();
    }
    }
    void snakemove()//蛇前進,上U,下D,左L,右R
    {
    snake * nexthead;
    cantcrosswall();
    nexthead=(snake*)malloc(sizeof(snake));
    if(status==U)
    {
    nexthead->x=head->x;
    nexthead->y=head->y-1;
    if(nexthead->x==food->x && nexthead->y==food->y)//如果下一個有食物//
    {
    nexthead->next=head;
    head=nexthead;
    q=head;
    while(q!=NULL)
    {
    Pos(q->x,q->y);
    printf("■");
    q=q->next;
    }
    score=score+add;
    createfood();
    }
    else //如果沒有食物//
    {
    nexthead->next=head;
    head=nexthead;
    q=head;
    while(q->next->next!=NULL)
    {
    Pos(q->x,q->y);
    printf("■");
    q=q->next;
    }
    Pos(q->next->x,q->next->y);
    printf(" ");
    free(q->next);
    q->next=NULL;
    }
    }
    if(status==D)
    {
    nexthead->x=head->x;
    nexthead->y=head->y+1;
    if(nexthead->x==food->x && nexthead->y==food->y) //有食物
    {
    nexthead->next=head;
    head=nexthead;
    q=head;
    while(q!=NULL)
    {
    Pos(q->x,q->y);
    printf("■");
    q=q->next;
    }
    score=score+add;
    createfood();
    }
    else //沒有食物
    {
    nexthead->next=head;
    head=nexthead;
    q=head;
    while(q->next->next!=NULL)
    {
    Pos(q->x,q->y);
    printf("■");
    q=q->next;
    }
    Pos(q->next->x,q->next->y);
    printf(" ");
    free(q->next);
    q->next=NULL;
    }
    }
    if(status==L)
    {
    nexthead->x=head->x-2;
    nexthead->y=head->y;
    if(nexthead->x==food->x && nexthead->y==food->y)//有食物
    {
    nexthead->next=head;
    head=nexthead;
    q=head;
    while(q!=NULL)
    {
    Pos(q->x,q->y);
    printf("■");
    q=q->next;
    }
    score=score+add;
    createfood();
    }
    else //沒有食物
    {
    nexthead->next=head;
    head=nexthead;
    q=head;
    while(q->next->next!=NULL)
    {
    Pos(q->x,q->y);
    printf("■");
    q=q->next;
    }
    Pos(q->next->x,q->next->y);
    printf(" ");
    free(q->next);
    q->next=NULL;
    }
    }
    if(status==R)
    {
    nexthead->x=head->x+2;
    nexthead->y=head->y;
    if(nexthead->x==food->x && nexthead->y==food->y)//有食物
    {
    nexthead->next=head;
    head=nexthead;
    q=head;
    while(q!=NULL)
    {
    Pos(q->x,q->y);
    printf("■");
    q=q->next;
    }
    score=score+add;
    createfood();
    }
    else //沒有食物
    {
    nexthead->next=head;
    head=nexthead;
    q=head;
    while(q->next->next!=NULL)
    {
    Pos(q->x,q->y);
    printf("■");
    q=q->next;
    }
    Pos(q->next->x,q->next->y);
    printf(" ");
    free(q->next);
    q->next=NULL;
    }
    }
    if(biteself()==1) //判斷是否會咬到自己
    {
    endgamestatus=2;
    endgame();
    }
    }
    void pause()//暫停
    {
    while(1)
    {
    Sleep(300);
    if(GetAsyncKeyState(VK_SPACE))
    {
    break;
    }
    }
    }
    void gamecircle()//控制游戲
    {
    Pos(64,15);
    printf("不能穿墻,不能咬到自己\n");
    Pos(64,16);
    printf("用↑.↓.←.→分別控制蛇的移動.");
    Pos(64,17);
    printf("F1 為加速,F2 為減速\n");
    Pos(64,18);
    printf("ESC :退出游戲.space:暫停游戲.");
    Pos(64,20);
    printf("c語言研究中心 www.dotcpp.com");
    status=R;
    while(1)
    {
    Pos(64,10);
    printf("得分:%d ",score);
    Pos(64,11);
    printf("每個食物得分:%d分",add);
    if(GetAsyncKeyState(VK_UP) && status!=D)
    {
    status=U;
    }
    else if(GetAsyncKeyState(VK_DOWN) && status!=U)
    {
    status=D;
    }
    else if(GetAsyncKeyState(VK_LEFT)&& status!=R)
    {
    status=L;
    }
    else if(GetAsyncKeyState(VK_RIGHT)&& status!=L)
    {
    status=R;
    }
    else if(GetAsyncKeyState(VK_SPACE))
    {
    pause();
    }
    else if(GetAsyncKeyState(VK_ESCAPE))
    {
    endgamestatus=3;
    break;
    }
    else if(GetAsyncKeyState(VK_F1))
    {
    if(sleeptime>=50)
    {
    sleeptime=sleeptime-30;
    add=add+2;
    if(sleeptime==320)
    {
    add=2;//防止減到1之后再加回來有錯
    }
    }
    }
    else if(GetAsyncKeyState(VK_F2))
    {
    if(sleeptime<350)
    {
    sleeptime=sleeptime+30;
    add=add-2;
    if(sleeptime==350)
    {
    add=1; //保證最低分為1
    }
    }
    }
    Sleep(sleeptime);
    snakemove();
    }
    }
    void welcometogame()//開始界面
    {
    Pos(40,12);
    system("title c語言研究中心 www.dotcpp.com");
    printf("歡迎來到貪食蛇游戲!");
    Pos(40,25);
    system("pause");
    system("cls");
    Pos(25,12);
    printf("用↑.↓.←.→分別控制蛇的移動, F1 為加速,2 為減速\n");
    Pos(25,13);
    printf("加速將能得到更高的分數。\n");
    system("pause");
    system("cls");
    }
    void endgame()//結束游戲
    {
    system("cls");
    Pos(24,12);
    if(endgamestatus==1)
    {
    printf("對不起,您撞到墻了。游戲結束.");
    }
    else if(endgamestatus==2)
    {
    printf("對不起,您咬到自己了。游戲結束.");
    }
    else if(endgamestatus==3)
    {
    printf("您的已經結束了游戲。");
    }
    Pos(24,13);
    printf("您的得分是%d\n",score);
    exit(0);
    }
    void gamestart()//游戲初始化
    {
    system("mode con cols=100 lines=30");
    welcometogame();
    creatMap();
    initsnake();
    createfood();
    }
    int main()
    {
    gamestart();
    gamecircle();
    endgame();
    return 0;
    }
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:1042173 發表于 2023-11-4 01:18 | 只看該作者
有拖尾景象
回復

使用道具 舉報

板凳
ID:736988 發表于 2024-8-7 02:06 | 只看該作者
功能有一定的缺失,可以進行學習,值得去學習。
回復

使用道具 舉報

地板
ID:1131130 發表于 2024-8-31 16:03 | 只看該作者
可以進行學習,值得去學習。
回復

使用道具 舉報

5#
ID:1152839 發表于 2025-6-5 15:39 | 只看該作者
有意思
回復

使用道具 舉報

6#
ID:1153069 發表于 2025-6-27 14:43 | 只看該作者
可以進行學習,值得去學習。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
欧美羞羞免费网站| 亚洲精品高清视频| 欧美精品粉嫩高潮一区二区| 国产综合色视频| 欧美激情99| 四季久久免费一区二区三区四区| 黄色网页大全| 亚洲毛片在线播放| 91精品啪aⅴ在线观看国产| 亚洲福利视频专区| 午夜精品久久久久久久99樱桃 | 欧美日韩国产免费| 综合色天天鬼久久鬼色| 免费看欧美女人艹b| 久久99久久人婷婷精品综合| 在线观看福利电影| 国产三区四区在线观看| 狠狠色丁香婷婷| 男女猛烈无遮挡午夜视频| 国产成人一级片| 国产精品免费无码| 三级黄色片免费观看| 小泽玛利亚av在线| 精品国产一区二区三| 欧美又大又粗又长| 日韩中文在线中文网三级| 91精品国产综合久久蜜臀| 亚洲国产美女搞黄色| 久久久久久毛片| 国产一区二区三区久久久| 国产欧美日韩综合一区在线播放 | 超碰97免费在线| 日本成人一区| 国产青青视频| 黄网视频午夜青春| 国产精品美女视频免费观看软件| 亚洲av无码国产综合专区| 亚洲男人第一av| 国产午夜手机精彩视频| 男女做爰猛烈刺激| 久久人人爽人人人人片| 无码人妻少妇色欲av一区二区| 免费黄色福利视频| 精品少妇在线视频| 女女同性女同一区二区三区按摩| 国产精品美女黄网| 亚洲xxxx18| 国产日本欧美在线观看| 日本精品性网站在线观看| 欧美老妇交乱视频| 久久精品国产2020观看福利| 一本色道久久88综合亚洲精品ⅰ| 日韩av在线一区二区| 精品国内二区三区| 日韩欧美一二区| 欧美一区二区三区思思人| 欧美日韩中文字幕一区| 欧美日韩五月天| 欧美美女一区二区三区| 91精品啪在线观看国产60岁| 91精品国产色综合久久| 日韩欧美激情一区| 亚洲国产日韩欧美在线动漫| 日韩精品在线免费观看| www.国产二区| 成人免费福利在线| 国产精品精品国产| 国产精品久久久久久亚洲调教| 98视频在线噜噜噜国产| 91成人精品网站| 欧美一区二区视频97| 欧洲精品久久久| 国产精品福利在线| 91精品一区二区| 动漫精品视频| 欧美日韩精品免费观看视一区二区| 久久精品一卡二卡| 疯狂做受xxxx欧美肥白少妇| 亚洲欧美日韩一区| 亚洲欧洲精品成人久久奇米网| 欧美极品美女视频| 1024国产精品| 亚洲电影一级黄| 日本黄色一区二区| 这里只有精品99re| 亚洲精品97久久| 一色桃子一区二区| 欧美贵妇videos办公室| 欧美又大又粗又长| 久久精品二区亚洲w码| 精品一区二区国语对白| 成人一区二区三区视频| 欧美激情在线一区二区| 亚洲一区影音先锋| 欧美日韩成人综合| 亚洲欧洲av一区二区| 欧美日韩国产成人高清视频| 国产精品国产亚洲伊人久久| 国产精品二区三区| 久久免费视频2| 老司机午夜av| 亚洲欧美日本一区| 久久精品免费av| 国产一区二区网站| 久久久久久久久久久久网站| 中国xxxx自拍视频| 浪潮av在线| 国产高清一区二区三区视频| 嫩草伊人久久精品少妇av杨幂| 9国产精品午夜| 亚洲天堂一区二区三区四区| 久久精品国产99| 中文字幕一区二区三区不卡| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 日韩电影中文字幕在线| 97精品国产97久久久久久免费| 国产高清自拍一区| 日韩欧美不卡在线| 深爱五月激情网| 久久狠狠高潮亚洲精品| 亚洲人成电影在线观看网| 超污黄色软件| 国产精品麻豆成人av电影艾秋| 在线观看黄色网| 少妇一级淫片免费看| 人人干人人干| 免费在线国产| 久久精品女人天堂av免费观看| 亚洲传媒在线| 六月丁香综合在线视频| 一区二区三区精品| 精品亚洲一区二区三区| 国产精品久久久久久久久久新婚| 亚洲精品日韩精品| 永久av免费在线观看| 国产精品白浆一区二小说| 强开小嫩苞一区二区三区视频| 91传媒视频在线观看| 黄色高清视频网站| 中文字幕第3页| 69视频免费看| 免费观看的黄色网址| 国产福利在线播放麻豆| 久久久免费毛片| 麻豆精品国产传媒mv男同| 亚洲福利一二三区| 日韩一区二区在线视频| 久久精品一区二区三区不卡免费视频| 男女无套免费视频网站动漫| 免费麻豆国产一区二区三区四区| 在线亚洲精品自拍| 9色在线观看| 美女久久久久| 99天天综合性| 精品三级av在线| 91久久在线播放| 九色91popny| 日韩手机在线视频| www.超级碰| 欧美精品高清| 视频一区视频二区中文| 欧美日韩免费看| 久久人人爽人人| 国产 欧美 日本| 国产精品老熟女一区二区| 欧美性猛交xxxx免费看蜜桃| 美女国产在线| 91av精品| 亚洲综合图片区| 久久久久国产精品免费网站| 欧洲金发美女大战黑人| 亚洲色婷婷一区二区三区| 国产免费av网站| 福利影院在线看| 一道本一区二区| 欧美小视频在线观看| 欧美诱惑福利视频| 777米奇影视第四色| 久久国产视频一区| 成片免费观看视频| 国产精品午夜av| 91丨porny丨在线| 亚洲色图欧美制服丝袜另类第一页| 麻豆av一区二区| 国产精品无码无卡无需播放器| 欧美日溪乱毛片| 末成年女av片一区二区下载| 日韩av一区二区在线影视| 欧美日韩激情在线| 国产精品久久久久久久久久久久冷| www.四虎精品| 一区二区三区四区在线不卡高清 | 中文字幕av高清片| 日韩经典av| 国产精品呻吟| 欧美精品久久久久久久多人混战| 91免费看网站| 娇妻被老王脔到高潮失禁视频| 精品麻豆国产| 国产精品一区二区免费福利视频| 国产精品1区二区.| 一区二区成人av| 人妻少妇精品久久| 国产免费av电影| 欧美极品另类| 久久久青草婷婷精品综合日韩| 欧美另类videos死尸| 国产乱码精品一区二区三区日韩精品| 中文字幕黄色网址| 能看av的网址| 宅男在线一区| 精品色蜜蜜精品视频在线观看| 国产精品自产拍在线观看| 中文字幕三级电影| 女同性互吃奶乳免费视频| 亚洲视频国产| 亚洲欧美日韩在线| 92看片淫黄大片欧美看国产片| xxx在线播放| 免费看一级毛片| 全国精品免费看| 午夜视黄欧洲亚洲| 国产精品久久精品国产| 免费在线观看一级片| 久草热久草在线频| 国内精品久久久久久久影视蜜臀| 欧美最猛性xxxxx直播| 极品尤物一区二区三区| 国产精品成人aaaa在线| 成人精品一区| 狠狠色丁香婷婷综合| 精品久久久999| 中文字幕国产高清| 一个人看的日本免费视频| 好吊妞国产欧美日韩免费观看网站| 亚洲欧美另类综合偷拍| 成人av资源网| 久久免费激情视频| 麻豆传媒视频在线观看| 韩国成人在线视频| 久久久久久久国产| 黄色性生活一级片| 91大神影片| 欧美日韩精选| 亚洲欧美成人网| 亚洲18在线看污www麻豆| 色在线视频免费| 国产精品久久久久久久久久10秀| 欧美一级高清大全免费观看| 国产婷婷一区二区三区| 黄网站在线观看永久免费| 日本一区影院| 色婷婷亚洲一区二区三区| 影音先锋在线亚洲| 成人免费公开视频| 日韩成人在线观看视频| 日本久久一区二区| 妺妺窝人体色www看人体| 综合图区欧美| 亚洲丝袜啪啪| 日韩欧美久久一区| 国产av人人夜夜澡人人爽| 日本三级视频网站| 亚洲欧美综合国产精品一区| 亚洲性生活视频| 91丝袜在线观看| 一区二区三区视频国产日韩| 精品一区二区综合| 国产精品老牛影院在线观看| 久久精品国产亚洲av麻豆色欲| 福利网站在线观看| 亚洲色图清纯唯美| 亚洲五月六月| 亚洲欧美综合图片| 91麻豆精品国产91久久久平台 | 中文字幕国内自拍| 天天操夜夜操天天射| 国产日韩欧美三区| 国外成人在线视频| 久久国产露脸精品国产| 成人福利影视| 亚洲va在线va天堂| 欧美啪啪免费视频| 九九夜夜操妹子| 中文亚洲免费| 欧美亚洲视频一区二区| 色网站在线播放| 九七电影院97理论片久久tvb| 欧美在线视频日韩| 日本黄色福利视频| 在线观看午夜看亚太视频| 91在线视频免费91| 日本一区二区三不卡| 户外露出精品视频国产| 国产丝袜控视频在线观看| 欧美1—12sexvideos| 国产精品高潮久久久久无| 亚洲欧美电影在线观看| 欧美顶级xxxxbbbb| 欧美成人日本| 久久人人爽人人| 无码人妻aⅴ一区二区三区有奶水| 韩日精品一区| 欧美一卡二卡三卡四卡| 免费高清视频在线观看| 六十路在线观看| 中文字幕在线一区| www.18av.com| 成人女性文胸| 成人黄色a**站在线观看| 鲁丝一区鲁丝二区鲁丝三区| 欧美久草视频| 麻豆久久婷婷| 96sao精品视频在线观看| 天天干天天草天天射| 综合视频在线| 国产成人91久久精品| 97人妻精品一区二区三区视频| 亚洲欧洲av| 精品国模在线视频| 狠狠躁夜夜躁人人爽天天高潮| 久久久91麻豆精品国产一区| 亚洲福利在线视频| 成人做爰视频网站| 欧美高清免费| 亚洲国产成人在线播放| 国产在线一区不卡| 亚洲视频资源在线| 日韩中文字幕亚洲精品欧美| av先锋影音资源站| 成人午夜短视频| 亚洲欧美日韩精品久久久| 成网站在线观看人免费| 成人黄色a**站在线观看| 99热都是精品| 日日噜噜噜夜夜爽爽狠狠视频 | 日韩在线黄色| 麻豆成人在线看| 亚洲国产无线乱码在线观看| 国产日产一区 | 精品福利在线导航| 日韩精品123区| 麻豆国产一区| 日韩成人伦理电影在线观看| 国产一区二区在线免费| 亚洲欧美小说国产图片| 捆绑调教一区二区三区| 青青草原亚洲| 春暖花开亚洲| 伊人色综合久久天天人手人婷| 亚洲xxx在线观看| 欧美人体视频xxxxx| 日韩一区二区在线免费观看| 日本一级二级视频| 亚洲都市激情| 国产精品99久久久久久白浆小说| 影音先锋中文字幕影院| 国产乱码精品一区二区三区忘忧草 | 一区二区三区在线免费看| 欧美日韩成人黄色| 日本激情一区二区三区| 麻豆精品一区二区三区| 成人高清dvd| 国产小视频免费在线观看| 在线观看欧美精品| 老司机深夜福利网站| 欧亚精品一区| 国产精品无av码在线观看| www.91视频| 国产精品久久久久久久久免费丝袜| www.51色.com| 韩国理伦片久久电影网| 久久久免费av| 久久精品亚洲7777影院| 国产亚洲人成网站| 91人人澡人人爽| 国产一区二区三区免费观看在线| 午夜精品久久久久久久99热浪潮| 一日本道久久久精品国产| 99久久久国产精品| 妖精视频在线观看| 美国十次综合久久| 日韩av电影院| 美女喷水网站| 亚洲成人自拍一区| 少妇高潮一区二区三区喷水| 日韩精品91| 久久资源亚洲| 国产在线三区| 日韩不卡中文字幕| 性生交生活影碟片| 成人激情免费电影网址| 一起草最新网址| 国产精品超碰| caoporen国产精品| 日本韩国一区| 亚洲片在线观看| 综合区小说区图片区在线一区| 久久综合视频网| 800av在线播放|