贪吃蛇源代码







#include <stdio.h>
#include <conio.h>
#include <windows.h>
#include <time.h>
#define FrameX  4
#define FrameY  4
#define Frame_width  20
#define Frame_height 20


struct Snack
{
    int x[100];
    int y[100];
    int length;
    int speed;
};

struct Food
{
    int x;
    int y;
};

int islong;
int pos[2];

void MakeFrame();
void PrintSnack(struct Snack *snack);
void Gotoxy(int x,int y);
void NewFood(struct Snack *snack,struct Food *food);


///随机生成食物
void NewFood(struct Snack *snack,struct Food *food)
{
    while(1)
    {
        srand((unsigned)time(NULL));
        food->x = rand()%(Frame_width-1);
        food->y = rand()%(Frame_height);
        if(food->x == 0||food->y == 0)
            continue;
        food->x = 2*food->x+FrameX;
        food->y = food->y+FrameY;
        int i;
        for(i = 0;i < snack->length;i++)
        {
            if(food->x == snack->x[i]&&food->y == snack->y[i])
                break;
        }
        if(i == snack->length)
        {
            Gotoxy(food->x,food->y);
            printf("◎");
            break;
        }
    }

}
///设置窗口大小
void setWindowsSize(int w,int h)
{
    ///声明一个句柄
    HANDLE hout;
    ///获得标准输出句柄
    hout = GetStdHandle(STD_OUTPUT_HANDLE);
    ///定义了一个矩形 结构体
    SMALL_RECT rc = {0,0,w-1,h-1};
    ///定义一个等高 机构体
    COORD size = {w,h};
    SetConsoleWindowInfo(hout,TRUE,&rc);
    SetConsoleScreenBufferSize(hout,size);
}

///移动光标到指定位置
void Gotoxy(int x,int y)
{

    HANDLE hout = GetStdHandle(STD_OUTPUT_HANDLE);
    COORD pos; pos.X = x;
    pos.Y = y;
    SetConsoleCursorPosition(hout,pos);
}
///隐藏光标
void Hide()
{

    HANDLE hout = GetStdHandle(STD_OUTPUT_HANDLE);
    CONSOLE_CURSOR_INFO cursor_info = {1,0};
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值