使用esp8266作为主板,max7219cng作为显示屏,adkeybord作为按键 用mixly做一个贪吃蛇小游戏


实现思路 在Mixly中使用ESP8266主板、MAX7219CNG显示屏和ADKeyboard按键来制作贪吃蛇小游戏,需要完成以下几个主要步骤:初始化硬件,包括ESP8266、MAX7219CNG显示屏和ADKeyboard按键;实现贪吃蛇的基本逻辑,如移动、吃食物等;处理按键输入以控制贪吃蛇的方向;在MAX7219CNG显示屏上显示游戏画面。 代码实现步骤及代码片段 1. 初始化硬件 在Mixly中,我们需要使用相应的库来初始化ESP8266、MAX7219CNG显示屏和ADKeyboard按键。以下是一个基本的初始化代码示例: ```python # 导入必要的库 from machine import Pin, SPI import max7219 import time # 初始化SPI接口 spi = SPI(1, baudrate=10000000, polarity=0, phase=0) # 初始化MAX7219显示屏 cs = Pin(15, Pin.OUT) display = max7219.Matrix8x8(spi, cs, 1) display.brightness(0) # 设置亮度 # 初始化ADKeyboard按键 ad_key = Pin(0, Pin.IN) ``` 2. 实现贪吃蛇基本逻辑 定义贪吃蛇的初始位置、方向和食物的位置,实现贪吃蛇的移动和吃食物的逻辑。 ```python # 定义贪吃蛇的初始位置 snake = [(2, 2)] # 定义贪吃蛇的初始方向 direction = (1, 0) # 生成初始食物位置 import random food = (random.randint(0, 7), random.randint(0, 7)) # 贪吃蛇移动函数 def move_snake(): global snake, direction, food head = snake[0] new_head = (head[0] + direction[0], head[1] + direction[1]) # 检查是否吃到食物 if new_head == food: snake.insert(0, new_head) # 生成新的食物位置 food = (random.randint(0, 7), random.randint(0, 7)) else: snake.insert(0, new_head) snake.pop() # 检查是否撞到墙壁或自己 if new_head[0] < 0 or new_head[0] > 7 or new_head[1] < 0 or new_head[1] > 7 or new_head in snake[1:]: # 游戏结束 return False return True ``` 3. 处理按键输入 根据按键输入改变贪吃蛇的方向。 ```python # 处理按键输入函数 def handle_key_input(): global direction # 读取按键值 key_value = ad_key.value() if key_value < 100: # 上 if direction != (0, 1): direction = (0, -1) elif key_value < 200: # 下 if direction != (0, -1): direction = (0, 1) elif key_value < 300: # 左 if direction != (1, 0): direction = (-1, 0) elif key_value < 400: # 右 if direction != (-1, 0): direction = (1, 0) ``` 4. 显示游戏画面 在MAX7219显示屏上显示贪吃蛇和食物。 ```python # 显示游戏画面函数 def show_game(): display.fill(0) # 显示贪吃蛇 for pixel in snake: display.pixel(pixel[0], pixel[1], 1) # 显示食物 display.pixel(food[0], food[1], 1) display.show() ``` 5. 主循环 在主循环中不断调用上述函数,实现游戏的运行。 ```python # 主循环 while True: handle_key_input() if not move_snake(): # 游戏结束 display.fill(0) display.text("GAME OVER", 0, 0, 1) display.show() break show_game() time.sleep(0.2) # 控制游戏速度 ``` 额外注意的逻辑点 1. 边界检查:在贪吃蛇移动时,要确保它不会超出显示屏的边界,否则游戏应该结束。 2. 方向控制:贪吃蛇不能直接反转方向,例如不能从向上突然变为向下,需要进行方向限制。 3. 食物生成:新生成的食物位置不能与贪吃蛇的身置重叠,需要进行位置检查。 [2025-07-22 20:53:42 | AI写代码神器 | 1116点数解答]
- 年会 1.热场视频:工会2024年度活动集锦 2.馆领导新春致辞 3.串场游戏:听前奏猜歌曲 4.钢琴演奏《我爱你中国》 独舞 (待定) 5.小游戏:每轮6个人。主持人提一个问题,每个人按顺序回答,答案必须是三个字,接不上来或答错的人淘汰,最终留下的人获胜。 6.新职工亮相+拜年 7.合唱表演《星辰大海》 8.串场游戏:听前奏猜歌 9.小游戏:以心传心:每组两人搭档,每轮3组共上场6人。游戏开始时每组的书写者转身看大屏幕显示词。书写者需通过写字或简笔画的方式用手指在搭档后背传达看到的内容,不能出声、不能用手势比划其他多余动作。搭档(画画者)要凭借后背感受到的笔画轨迹,尽可能精准地把对应的词语画出来。绘画过程中,不可询问,独立完成。 10.快板儿表演《战马超》 贯口《小孩子》 11.串场游戏:听前奏猜歌 12.小游戏:改名换姓:每轮8个人。参与者每人给自己想一个昵称(5个字以内)。游戏开始后大家从1-8喊数字,喊到相同数字的要尽快说出对方昵称,说错的人淘汰。 13.本命年职工送祝福 字数:200字(270点数解答 | 2025-01-16 14:21:53)173
- 年会 1.热场视频:工会2024年度活动集锦 2.馆领导新春致辞 3.串场游戏:听前奏猜歌曲 4.钢琴演奏《我爱你中国》 独舞 (待定) 5.小游戏:每轮6个人。主持人提一个问题,每个人按顺序回答,答案必须是三个字,接不上来或答错的人淘汰,最终留下的人获胜。 6.新职工亮相+拜年 7.合唱表演《星辰大海》 8.串场游戏:听前奏猜歌 9.小游戏:以心传心:每组两人搭档,每轮3组共上场6人。游戏开始时每组的书写者转身看大屏幕显示词。书写者需通过写字或简笔画的方式用手指在搭档后背传达看到的内容,不能出声、不能用手势比划其他多余动作。搭档(画画者)要凭借后背感受到的笔画轨迹,尽可能精准地把对应的词语画出来。绘画过程中,不可询问,独立完成。 10.快板儿表演《战马超》 贯口《小孩子》 11.串场游戏:听前奏猜歌 12.小游戏:改名换姓:每轮8个人。参与者每人给自己想一个昵称(5个字以内)。游戏开始后大家从1-8喊数字,喊到相同数字的要尽快说出对方昵称,说错的人淘汰。 13.本命年职工送祝福 (392点数解答 | 2025-01-16 14:34:56)133
- 商品展示模块 前端页面:productlist.jsp、productdetail.jsp 后端逻辑:productservlet 处理获取商品列表与详情请求 实现商品分页显示、按类别或关键词搜索功能 前端页面渲染与交互 使用 jsp、el、jstl 渲染商品数据 使用 css 优化页面样式,确保用户界面美观统一 使用 javascript 实现简单的前端交互,如商品图片切换、下拉菜单 搜索与过滤功能 在 productlist.jsp 实现搜索栏,允许用户输入关键词进行搜索 后端根据搜索条件查询数据库,返回符合条件的商品列表 使用 jstl 循环输出商品数据,并实现价格或类别过滤选项(19点数解答 | 2024-12-13 15:00:43)227
- 贪吃蛇。(57点数解答 | 2025-04-17 20:33:23)92
- 贪吃蛇(1352点数解答 | 2025-06-06 20:22:46)71
- 题目:按照以下步骤在 pycharm 中进行自动化测试脚本编写,并执行脚本。 步骤: (1)从 selenium 中引入 webdriver; (2)使用 selenium 模块的 webdriver 打开谷歌浏览器; (3)在谷歌浏览器中通过 get 方法发送网址eshop测试平台登录页面; (4)增加智能时间等待 5 秒; (5)查看登录页面中的用户名输入框元素,通过 css_selector 属性定位用户名输入框,并输入用户名(用自己注册的用户); (6)查看登录页面中的密码输入框元素,通过 xpath 属性定位密码输入框,并输入密码(用自己注册的用户对应密码) ; (7)查看登录页面中的登录按钮元素,通过 class_name 方法定位登录按钮,使用 click()方法点击登录按钮进入eshop测试平台首页; (8)在eshop测试平台首页通过 link_text 方法对“我的订单”按钮进行定位,使用 click()方法点击“我的订单”(304点数解答 | 2024-11-06 15:38:30)311
- 一、建造者模式练习1、电脑组装工厂可以将cpu、主板、显卡、显示器等硬件设备组装在一起构成一台完整的电脑, 且构成的电脑可以是笔记本, 也可以是台式机。对于用户而言, 无须关心电脑的组成设备和组装过程, 工厂返回给用户的是完整的电脑对象。使用建造者模式实现电脑组装过程, 要求编程实现。builderdirectorbuildcpu ()voidbuildmotherboard 0voidconstruct ( ) : productbuildgrapgics ()voidbuilddisplay 0voidgetproduct ()productconcretebuilder1contretebuilder2buildcpu (): voidbuildcpu ()voidbuildmotherboard0: voidbuildmotherboard0voidbuildgrapgics (): voidbuildgrapgics 0void+ builddisplay 0: voidbuilddisplay (): voidgetproduct (): productgetproduct(1205点数解答 | 2024-10-31 16:20:44)303
- java写一、建造者模式练习1、电脑组装工厂可以将cpu、主板、显卡、显示器等硬件设备组装在一起构成一台完整的电脑, 且构成的电脑可以是笔记本, 也可以是台式机。对于用户而言, 无须关心电脑的组成设备和组装过程, 工厂返回给用户的是完整的电脑对象。使用建造者模式实现电脑组装过程, 要求编程实现。builderdirectorbuildcpu ()voidbuildmotherboard 0voidconstruct ( ) : productbuildgrapgics ()voidbuilddisplay 0voidgetproduct ()productconcretebuilder1contretebuilder2buildcpu (): voidbuildcpu ()voidbuildmotherboard0: voidbuildmotherboard0voidbuildgrapgics (): voidbuildgrapgics 0void+ builddisplay 0: voidbuilddisplay (): voidgetproduct (): productgetpr(909点数解答 | 2024-10-31 16:21:50)125
- 建造者模式练习1、电脑组装工厂可以将cpu、主板、显卡、显示器等硬件设备组装在一起构成一台完整的电脑, 且构成的电脑可以是笔记本, 也可以是台式机。对于用户而言, 无须关心电脑的组成设备和组装过程, 工厂返回给用户的是完整的电脑对象。要求E-R图实现 (179点数解答 | 2025-03-19 16:23:03)74
- 实现周期可调的方波信号发生器设计,输出的周期是0.5hz-1khz,通过4个按键对频率和方波信号发生器的工作原理进行设置。设置的方式如下: (1)共**1-**4个按钮,对频率进行调整(0.5-1000.0hz),4个按键的功能定义如下表 序号 按键 按键功能 1000 1 **1 调整选择,在正常显示状态时,按一下该按钮进入调整小数位,如果再按一下调整个位,再按一下调整十位,再按一下调整百位,当频率大于100后,不对小数位进行调整,即显示的参数为整数。 选择到频率调节的最高位后,再按一下进入方波发生原理选择,默认为0,采用软件查询及软件计数的方式实现方波发生器功能,调整为1,表示采用定时器中断。完成方波发生器的功能,再按一下调整的参数生效,最终显示调整好的数据。 2 **2 增调整,按一下将被调整的值增加1 3 **3 减调整,按一下将被调整的值减1 4 **4 调整退出,开始调整的数据不生效,显示调整之前的数据。 (2)调整过程的数据不能作为最终生效参数,只有经过**1最终退出才生效,这是作为设备操控的安全确认,防止调整过程设置不当引起安全事故,设置不合适可以经过**4直接退出,设(42点数解答 | 2024-10-21 11:00:16)286
- 51单片机 综合gpio应用的led灯、按键,设计实现基于stc51单片机如图电路结构(无关结构可自行删除),其中led灯8个,独立按键3个,编程实现按键控制流水灯功能。具体功能如下:(1)开机进入初始状态,led灯全灭。 (2)按下key1按键,流水灯左移循环点亮。 (3)按下key2按键,流水灯右移循环点亮。 (5)按下key3按键,所有灯的状态取反。(2358点数解答 | 2024-12-15 21:04:55)194
- 任务要求: (1)本项目由电位器、按键、LED灯、舵机及电机组成,模拟摆头风扇效果; (2)控制板上电,LED灯保持熄灭状态,舵机角度为0度,电机不转动; (3)按下按键(按下后手从按键上松开),装置执行(4)~(7)条所描述的任务。(4)舵机角度在30~150度之间反复摆动,模拟风扇摆头装置; (5)电机开始转动,模拟风扇开始工作; (6)LED灯保持点亮状态,模拟风扇指示灯; (7)旋转电位器调节电机的转速,模拟风扇调节器;(8)再次按下按键,舵机转到0度,LED灯熄灭,电机停止转动; (9)可使用任意结构件搭建,建议根据以上要求搭建风扇模型(模型结构便于评分时作品的展示,但不作为计分项目); (10)电机程序不可使用库函数;(638点数解答 | 2025-03-14 16:48:12)107