资源简介
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
相关资源
- zw_DS1302.zip
- zw_wolfe.zip
- zw_MLX90620_Example-master.zip
- zw_GPS_INS组合导航程序.zip
- 5071zw_第三方登录.zip
- zw_worldAddress.zip
- zw_输入捕获模式测量频率.zip
- zw_伺服电机(电流环速度环位置环)
- zw_arcengine属性表操作.zip
- 实现Cache模拟器.zip
- unity3d插件-脚本-图像识别OpenCVforUnit
- TIA链接密码.txt
- C窗体局域网、广域网斗地主游戏.ra
- js 翻翻乐使用js书写的翻番乐初学js有
- usbviewer.rar
- DropDown.rar
- QmlBarGraphShow.zip
-
Mapob
jects2.4Crack.rar - 模式识别-中科院.txt
- v1.2.txt
- Qt异或实现文件加解密.rar
- EncryptQtDemo.rar
- smallpdf1.20.0无限时间版.rar
- 383C开发大全(提高卷)源码.rar
- IsoHeightCtrl.zip
- 0145、低成本可调数显稳压电源(1.3
- refined_Lee_fliter.rar
- shadowsocks-libev_2.5.5-1_amd64_Ubuntu14.04.de
- 普林斯顿微积分读本视频列表.txt
- WannaCry勒索病毒一键加固脚本v1.05by叉
评论
共有 条评论