基本信息
源码名称:DevC++贪吃蛇
源码大小:0.11M
文件格式:.zip
开发语言:C/C++
更新时间:2020-11-01
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 6 元 
   源码介绍

自己用DevC 编写的贪吃蛇小游戏,带难度选择、计时、加速、暂停功能。


int play(HANDLE hout) {
 system("cls");
    unsigned char ch = 77;
    struct Snake s, *snake = &s;
    struct Food  f, *food = &f;
    selectcover(hout, snake);
    makeframe(snake);
    initsnake(snake);
    printfood(hout, snake, food);
    Sleep(500);
    CLK = 0;
    HANDLE hThread;
 DWORD ThreadID;
 hThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)gettime, NULL, 0, &ThreadID); 
    while (1) {
        infor(hout, snake);
        //保存蛇尾横纵坐标
        a[0] = snake->x[0];
        a[1] = snake->y[0];
        j = 0;
        //如果用户敲击键盘
        if (kbhit()) {
            //用ch接收输入 ,注意是getch(),不需敲击回车
            ch = getch();
            if (kbhit()) {
            //长按时间
                Sleep(20);
                j = 1;
            }
        }
        switch(ch) {
            //向上移动
            case 'W':
            case 'w':
            case 72: {
                movesnake(hout, snake);
                //蛇头纵坐标减一
                snake->y[snake->length - 1] -= 1;
                break;
            }
            //向下移动
            case 'S':
            case 's':
            case 80: {
                movesnake(hout, snake);
                //蛇头纵坐标加一
                snake->y[snake->length - 1] = 1;
                break;
            }
            //向左移动
            case 'A':
            case 'a':
            case 75: {
                movesnake(hout, snake);
                //蛇头横坐标减二
                snake->x[snake->length - 1] -= 2;
                break;
            }
            //向右移动
            case 'D':
            case 'd':
            case 77: {
                movesnake(hout, snake);
                //蛇头横坐标加二
                snake->x[snake->length - 1] = 2;
                break;
            }
            //主菜单
            case 'E':
            case 'e': {
             system("cls");
             return 1;
             break;
            }
            default: {
    break;
   }
        }