0
点赞
收藏
分享

微信扫一扫

全国2023年自学考试下半年报考专业一览表

M4Y 2023-05-30 阅读 77

关于蛇的实现代码

#include "snake.h"
#include "globalvar.h"
#include <graphics.h>

int fangXiang = 1;//方向 0 右 1 上 2 左 3 下
int snakeHang[100] = { 10,11,12,13,14 };//蛇 每节所在行
int snakeLie[100] = { 10,10,10,10,10 };//蛇 每节所在列
int snakeLength = 5;//当前的长度

IMAGE imgHead[4];
IMAGE imgBody;

void snakeMove()
{
    //身体爬行
    for (int j = snakeLength - 1; j >= 1; j--)
    {
        snakeHang[j] = snakeHang[j - 1];
        snakeLie[j] = snakeLie[j - 1];
    }

    //头爬行
    switch (fangXiang)
    {
    case 0:
        snakeLie[0]++;//右
        break;
    case 1:
        snakeHang[0]--;//上
        break;
    case 2:
        snakeLie[0]--;//左
        break;
    case 3:
        snakeHang[0]++;//下
        break;
    }
}


int enabledEat()
{
    return  snakeHang[0] == appleHang && snakeLie[0] == appleLie;
}

void snakeGrow()
{
    snakeLength++;
}


int enabledOver()
{
    return snakeHang[0] == 0 || snakeHang[0] == 19 || snakeLie[0] == 0 || snakeLie[0] == 19;
}


int enabledEatSelf()
{
    //状态思维:
    int yes = 0;
    //检查
    for (int i = 1; i < snakeLength; i++)
    {
        if (snakeHang[0] == snakeHang[i] && snakeLie[0] == snakeLie[i])
        {
            yes = 1;
            break;
        }
    }
    return yes;
}

void snakeDown()
{
    if (fangXiang != 1)
    {
        fangXiang = 3;
    }
}

void snakeUp()
{
    fangXiang = 1;
}

void snakeRight()
{
    fangXiang = 0;
}

void snakeLeft()
{
    fangXiang = 2;
}

void snakegraph()
{
    putimage(snakeLie[0] * 30, snakeHang[0] * 30, &imgHead[fangXiang]);
    for (int j = 1; j < snakeLength; j++)
    {
        putimage(snakeLie[j] * 30, snakeHang[j] * 30, &imgBody);
    }
}

void snakegraphHead()
{
    TCHAR str[100];
    for (int i = 0; i < 4; i++)
    {
        _stprintf(str, L".\\she\\head%d.bmp", i);
        loadimage(&imgHead[i], str);
    }
    loadimage(&imgBody, L".\\she\\body.bmp");
}

举报

相关推荐

0 条评论