Arduino单片机—— 迷你游戏机 13307130217 王睿涵 13307110483 杨梦迪
需要的元件
需要的元件 Arduino 开源硬件开发平台 硬件(Arduino UNO) 软件(Arduino IDE) 传感器 -> 微处理器 -> 计算机 计算机 -> 微处理器 -> 输出
需要的元件 LCD12864 带中文字库的液晶显示屏,共128×64 象素,其内核为ST7920芯片 英文字符、数字、中文汉字、图片 并行模式(11个IO) 串行模式(3个IO) <U8glib.h>
需要的元件 按键 输入元件 digitalRead() 信号电压在0~1.16V时返回0,输入信 号在1.83~3.3V时返回1 按键去抖动 松手检测
需要的元件 时钟模块(DS1307) 低功耗实时时钟模块 年、月、日、星期、时、分、秒 内置电源检测电路和电池 <RTClib.h>
主界面 系统名称 选择游戏 贪吃蛇 俄罗斯方块 日期和时间
俄罗斯方块 界面设置 选取96×64区域作为游戏区域,以4×4像素 为一个俄罗斯方块方格。 选取96×64区域作为游戏区域,以4×4像素 为一个俄罗斯方块方格。 上方32×64区域显示游戏信息,包括分数和 下一个方块图形类型。
俄罗斯方块 数据结构 Now[4][2] 坐标 Dot[24][16] bool
俄罗斯方块 参数 int NowType int NowStatu int NextType
俄罗斯方块 主要函数 1、生成: RandNext():随机生成方块种类 RandNow():在顶部随机位置生成对应方块
俄罗斯方块 主要函数 2、检查: CheckBottom():与下方方块接触 or 到底边 CheckOverlap():数组Now中所存坐标在Dot中已经为true FullLine():检查某行方块全满则消去 整体下移 GameOver():新生成方块Overlap则游戏结束
俄罗斯方块 主要函数 3、移动: MoveBottom() (check bottom) MoveLeft() (check border、overlap) MoveRight() (check border、overlap)
俄罗斯方块 运行流程(单次刷新) While not GameOver: While not Bottom: 刷新(根据speed判断是否下移) 读取按键进行移动 加分 Fullline() randnext() 更新speed
贪吃蛇 界面设置
贪吃蛇 数据结构 Now[][2] 坐标 Food[2] 坐标
贪吃蛇 参数 int direction
贪吃蛇 主要函数 1、移动: 平移:根据direction确定0号方块移动方向 转向:根据按键确定0号方块移动方向并更 新direction
贪吃蛇 主要函数 2、增长:
贪吃蛇 主要函数 3、死亡: Now[0][]与Now[i>0][]重合 超出边界
贪吃蛇 运行流程(单次刷新) While not GameOver: 根据speed判断是否平移 读取按键进行转向 判断是否获得食物: 加分
Thank You!