-
带有详细注释和文档的51单片机数码管实现贪食蛇程序
资源介绍
一.程序功能
利用数码管的动态显示,以模拟贪食蛇。S1、S2、S3、S4分别控制蛇的上、下、左、右的移动,当蛇吃到随机点亮的dp时,则态显示的数码管的亮点个数自动加一,同时作为蛇食物的dp点重新随机点亮一个(注意这里只考虑0~2号前三个数码管的dp点作为食物。第四个数码管的dp点若作为食物,蛇吃后必定撞墙,为了确保蛇能不断长长的可能性,所以第四个数码管的dp不考虑作为食物)。当出现蛇越过数码管的边缘、蛇首尾重合或者蛇的长度(已点亮的数码管点的个数)超过定义的最大长度(程序定义的是6,可以改动)时,游戏结束。
二.程序原理
》》》》》》》》》》》》》》》》
三.关键代码
/*******************************************************************
* Copyright (C),2012-2014,764 Studio.
* File name: segsnake.c
* Author: zzb Version: v1.0
* Date: Mar 30.2012
* Description: 数码管模拟的贪食蛇
* Function List: init(void) 初始化
* gamePlay(void) 游戏启动控制
* createFood(void) 随机选择要点亮的dp
* drawFood(void) 点亮已选择的dp作为食物
* drawSnake(void) 点亮蛇身
* touchWall(void) 越过数码管的边缘
* touchSelf(void) 碰到已点亮的点
* gameOver(void) 游戏结束
* moveSnake(void) 按设定的方向移动已亮的点
* oppositeDirection(i16 keyCode) 输入方向与原来方向相反时,不做处理
* foodEat(void) 点亮的dp被吃到
* expandSnake(void) 吃到dp后的蛇变长
* getKey(void) 获取按键信息
* main() 入口函数
********************************************************************/