登录 注册
当前位置:主页 > 资源下载 > 10 > 带有详细注释和文档的51单片机数码管实现贪食蛇程序

带有详细注释和文档的51单片机数码管实现贪食蛇程序

  • 更新:2024-09-11 23:25:44
  • 大小:453KB
  • 推荐:★★★★★
  • 来源:网友上传分享
  • 类别:C - 后端
  • 格式:RAR

资源介绍

一.程序功能 利用数码管的动态显示,以模拟贪食蛇。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() 入口函数 ********************************************************************/