资源简介
m0_37845686_11026319.zip

代码片段和文件信息
#include
#include
#define uint unsigned int
#define uchar unsigned char
//基本功能部分变量
sbit k0=P3^7; //下面的开关,锁定用 和k1同时按下时解锁
sbit k1=P3^5; //中间的开关,左移(回移)用 和k0同时按下时解锁
sbit k2=P3^6; //左边的开关,右移(顺移)用
sbit g1=P3^0; //重力感应1
sbit g2=P3^1; //重力感应2
sbit ksnack=P3^4; //自锁式按键 贪吃蛇开关
uchar *p; //指向table的指针
uchar code X[]={0x000x010x020x030x040x050x060X07};//选列
uchar code Y[]={0x800x400x200x100x080x040x020X01};//选行
uint n=0; // 指针使用(选行)
uint num=0; // 中断计数使用
uint j=0; // 每次左右移计数停止时使用
uint t=0; // 重力选定使用
uint s1=0; // 锁定
uint s2=0; // 解锁
uint s3=0; // 左移(回移)
uint s4=0; // 右移(顺移)
uint s5=0; // 待机
uint s6=0; // 贪吃蛇
uint s7=0; //
//贪吃蛇部分
#define MAX_LENGTH 33 //蛇的最大长度
struct Point
{
uchar x y;
};
struct Snake
{
struct Point nodes[MAX_LENGTH];
uchar length;
uchar direction;
uchar live;
} snake;
struct Food
{
struct Point position;
uchar exist;
} food;
uint left=0top=0right=15bottom=15jfood=0;
int lastxlasty;
void delay_ms(uint xms) //延时程序
{
uint ij;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
void delay()
{
uint i;
for(i=160;i>0;i--);
}
//贪吃蛇
void init() {
snake.nodes[0].x=3;
snake.nodes[0].y=3;
snake.nodes[1].x=4;
snake.nodes[1].y=3;
snake.length=2;
snake.live=1;
snake.direction=0;
food.exist=0;
}
int oppositeDirection(int t) {
if(t==0&&snake.direction==2){
return 1;
}
else if(t==2&&snake.direction==0) {
return 1;
}
else if(t==1&&snake.direction==3){
return 1;
}
else if(t==3&&snake.direction==1){
return 1;
}
else
return 0;
}
void gameOver()
{
uint im;
while(1)
{
for(i=0;i<8;i++)
{
P2=0xff;
P1=0xff;
P0=X[i]|0x40;
m++;
}
for(i=0;i<8;i++)
{
P2=0xff;
P1=0xff;
P0=X[i]|0x80;
m++;
}
}
}
void createFood()
{
int i;
label:
jfood+=3;
if(jfood>=500) jfood=0;
srand(jfood);
food.position.x=((int)rand()%16);
food.position.y=((int)rand()%16);
for(i=0;i<=snake.length-1;i++){
if(snake.nodes[i].x==food.position.x&&snake.nodes[i].y==food.position.y)
goto label;
}
}
void draw()
{
uint ij;
for(j=0;j<8;j++)
{
P1=0x00;
P2=0x00;
if(food.position.x==j)
{
if(food.position.y<8) P2=Y[food.position.y];
else P1=Y[food.position.y-8];
}
for(i=0;i if(snake.nodes[i].x==j)
{
if(snake.nodes[i].y<8) P2=P2|Y[snake.nodes[i].y];
else P1=P1|Y[snake.nodes[i].y-8];
}
P0=X[j]|0x40;
delay();
}
for(j=0;j<8;j++)
{
P1=0x00;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5725 2019-03-16 20:24 \贪吃蛇.c
文件 36 2019-03-16 20:24 \no.txt
- 上一篇:zw_wolfe.zip
- 下一篇:zw_DS1302.zip
相关资源
- PID_AutoTune_v0.rar
- vspd7.2.308.zip
- 价值2k的H漫画小说系统
- Pythonamp;课堂amp;笔记(高淇amp;400;集第
- ddos压力测试工具99657
- UML建模大全
- 开源1A锂电池充电板TP4056原理图+PCB
- m1卡 ic卡可选择扇区初始化加密软件
- TSCC.exe
- FTP课程设计(服务端+客户端)
- 计算机图形学 边填充算法实现代码
- 电力系统潮流计算程序集合
- oracle数据迁移项目实施方案
- Web Api 通过文件流 文件到本地
- Visio图标-最新最全的网络通信图标库
- Spire API文档
- OpenGL参考手册
- Python中Numpy库最新教程
- SPD博士V5.3.exe
- 直流无刷电机方波驱动 stm32 例程代码
- layui后台管理模板
- 仿知乎界面小程序源代码
- 云平台-阿里云详细介绍
- photoshop经典1000例
- scratch垃圾分类源码(最终版本).sb
- IAR ARM 7.8破解
- TI CCS V5.4 安装步骤及破解文件
- 松下plc FP-XH的驱动
- 局域网硬件信息收集工具
- 加快Windows XP操作系统开机速度
评论
共有 条评论