Discuz! Board

 找回密码
 立即注册
查看: 404|回复: 0

贪吃蛇

[复制链接]

49

主题

70

帖子

23万

积分

论坛元老

Rank: 8Rank: 8

积分
232976

大王燕 Lv:51
发表于 2023-2-1 15:05:30 | 显示全部楼层 |阅读模式
[C++] 纯文本查看 复制代码
#include<bits/stdc++.h>
#include <graphics.h>             //包含EGE的头文件
#include<time.h>
using namespace std;
int width=800;
int hight=600;
int number;
int count1=1,count2;
char ch;
int score,score_flag;
int f_x,f_y;
float inx(int min,int max)
{
    float t=rand()%(max-min)+min;
    return t;
}
void foodset()
{
	f_x=inx(1,39);
	f_y=inx(1,20);
}
struct snake_body
{
	int x;
	int y;
};
struct snake
{
    int len;
    int v;
    snake_body s_b[100];
    char dir;
}s[1];

void start()
{
    s[0].len = 4;
    s[0].v = 20;
    s[0].dir = 'd';
    for(int i=0;i<4;i++)
    {
    	s[0].s_b[i].x=20-i;
    	s[0].s_b[i].y=15;
	}
	initgraph(width, hight);//初始化图形界面
    setcolor(RED);//设置画图线为红色
    setbkcolor(WHITE);//设置背景颜色为白色
    setfillcolor(RED);//设置填充颜色为红色
}
void move_snake()
{
	for(int i=s[0].len;i>0;i--)
	{
		s[0].s_b[i].x=s[0].s_b[i-1].x;
		s[0].s_b[i].y=s[0].s_b[i-1].y;
	}
	switch(s[0].dir)
	{
		case 'w': s[0].s_b[0].y-=1;
		break;
		case 'a': s[0].s_b[0].x-=1;
		break;
		case 's': s[0].s_b[0].y+=1;
		break;
		case 'd': s[0].s_b[0].x+=1;
		break;
	}
}
void update()
{
    
    if(kbhit())
    {
        s[0].dir = getch();
        move_snake();
    }//按键响应
}
void  draw()
{
	for(int i=0;i<s[0].len;i++)
    {
    	setfillcolor(hsv2rgb(10*i%360, 1, 1));//设置填充颜色  参数(颜色,饱和度,明亮度)
    	bar(20*s[0].s_b[i].x,20*s[0].s_b[i].y,20*s[0].s_b[i].x+20,20*s[0].s_b[i].y+20);
	}
    Sleep(10);
    cleardevice();//绘制球体     
}
/*bool gameover()
{
    if((ball[0].x>w.xl)&&(ball[0].x<w.xr))//w.xl<w.xr+ball[0].r&&w.yr+ball[0].r<w.yr
    {
        if((ball[0].y-ball[0].r<w.yr)||(ball[0].y+ball[0].r>w.yr+wall_pass))
        {
            return 1;
        }
    } 
    return 0;
}*/
int main()
{
   start();
   while(1)
   {
        draw();
		update();
        //if(gameover()) break;
   }
   
	getch();                            //暂停,等待键盘按键
    closegraph();        //关闭图形界面   
    return 0;
}

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|DiscuzX

GMT+8, 2025-2-13 02:07 , Processed in 0.049466 second(s), 28 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.. 技术支持 by 巅峰设计

快速回复 返回顶部 返回列表