2048
操作方式:使用键盘的上、下、左、右键来控制方块的移动: W键:向上移动方块 S键:向下移动方块 A键:向左移动方块 D键:向右移动方块 游戏规则: 游戏开始时,屏幕上会出现两个数字方块(2或4)。 使用键盘上、下、左、右键移动所有方块,所有的方块会同时移动,并在每次移动时生成一个新的数字方块。 当两个相同数字的方块碰撞在一起时,它们会合并成一个数字方块,数字值为它们的和。 每次移动,如果有方块合并,则得分增加。 游戏结束条件: 没有可以移动的空格,并且没有可以合并的相邻方块时,游戏结束。 达到2048的方块时,游戏胜利。 2048 Game body { font-family: Arial, sans-serif; margin: 0; padding: 0; } .container { width: 480px; position:...
C语言设计_智能五子棋
C语言棋类游戏项目笔记一、项目概述本项目使用 C 语言编写了一个棋类游戏,支持玩家对战、玩家与 AI 对战以及电脑与电脑对战三种模式。借助图形库实现了游戏界面的绘制,包含棋盘绘制、棋子落子特效等功能,同时具备判断胜负和计分的逻辑。 二、代码结构与功能模块(一)头文件与宏定义引入了多个标准库和图形库相关的头文件,定义了游戏窗口的宽度、高度、棋盘大小、玩家标识等常量。这些宏定义方便后续代码的编写和修改,例如通过修改 width 和 heigth 可以轻松调整游戏窗口的大小。 (二)全局变量定义了一系列全局变量,用于存储游戏的关键信息,如棋盘状态、当前玩家、棋子数量、得分等。全局变量的使用使得不同函数之间可以方便地共享数据,提高了代码的交互性。 (三)函数实现1. chesscomputer2() 功能:实现电脑下棋的逻辑。根据当前棋盘状态计算每个可落子位置的得分,选择得分最高的位置落子。若为初始状态,将棋子放在棋盘中心。 逻辑: 若当前轮到 p2 且棋子数量为...
C语言学习笔记
一、C语言基础C语言一经出现就以其功能丰富、表达能力强、灵活方便、应用面广等特点迅速在全世界普及和推广。C语言不但执行效率高而且可移植性好,可以用来开发应用软件、驱动、操作系统等。C语言也是其它众多高级语言的鼻祖语言,所以说学习C语言是进入编程世界的必修课。 1、程序:Hello World. 运行结果如下: 注:在最新的C标准中,main函数前的类型为int而不是void 2、C语言的具体结构简单来说,一个C程序就是由若干头文件和函数组成。 #include <stdio.h>...
基于ESP32移动环境与位置云端记录仪
移动环境与位置云端记录仪 项目笔记一、项目简介本项目基于 ESP32 微控制器,整合温湿度、光照、GPS定位等多种传感器,实现本地环境与位置信息的采集,并通过 MQTT 协议定时上传至华为云 IoTDA 平台。后端服务器可通过华为云北向API定时拉取设备属性数据,并通过 WebSocket 推送给网页前端,最终实现实时可视化展示。适合环境监测、物联网课程实践、小型物联云端数据展示等应用场景。 二、主要软硬件组件 主控板:ESP32开发板 温湿度传感器:DHT11(或DS18B20温度模块) 光敏电阻传感器:模拟光照传感器,AO口接ESP32 ADC引脚 GPS模块:NEO-6M,串口TTL通讯 云平台:华为云IoTDA,支持MQTT直连、属性上报、设备影子 Web服务器/前端:uni-app H5网页(或Android、微信小程序) 后端:Node.js (Express + WebSocket),定时通过北向API拉取设备属性并推送 三、硬件连接说明 DHT11数据引脚 → ESP32 GPIO4 光敏AO引脚 → ESP32 GPIO34...
Markdown学习笔记
1.Markdown语法自带格式1.1 代码块 示例源码 1234567891011# VSCode终端hexo clean; hexo shexo clean; hexo g; hexo dgit add .; git commit -m "npm publish"; npm version patch; git push# Cmder终端hexo clean && hexo shexo clean && hexo g && hexo dgit add . && git commit -m "npm publish" && npm version patchgit push 1.2 多级标题 示例源码 123456# H1## H2### H3#### H4##### H5###### H6 1.3...
PWM学习笔记
深入理解PWM(脉宽调制)1. 什么是PWM?PWM,即脉宽调制(Pulse Width Modulation),是一种电子技术,通过调节电信号的高电平持续时间和低电平持续时间来控制输出信号的强度或表现形式。它是一种周期性的波形,周期内包含了高电平和低电平两种状态。 2. PWM的重要参数是什么?在PWM中,有两个非常重要的参数: 周期(T):表示PWM波形一个完整周期所持续的时间长度。 占空比(Duty Cycle):指高电平在一个周期内所占的比例,通常用百分比表示。 3. PWM的应用场景有哪些?PWM技术被广泛应用于各种领域,包括: 通信领域的脉宽调制技术。 LED照明领域中,可以通过PWM波形来调节LED灯的亮度,实现调光效果。 控制蜂鸣器、电机等设备,控制其工作状态和频率。 4. PWM波形是如何产生的?4.1 基本原理PWM波形的生成基于定时器和GPIO引脚。通过配置定时器产生高低电平信号,并通过GPIO引脚输出,从而形成PWM波形。 4.2...
基于ESP8266将健康数据上传华为云平台进行实时监控
一、基于ESP8266的健康数据上传项目(1)项目目标与背景本项目旨在搭建一个实时健康数据监测系统,通过传感器采集数据,利用ESP8266主控板传输数据至华为云平台,并开发前端界面实现数据可视化。随着人们对健康管理的重视,此类实时、便捷的健康监测系统需求日益增长。 (2)项目整体架构项目由硬件采集端、数据传输链路、后端服务和前端展示四部分构成。硬件采集端负责收集数据,数据传输链路依托ESP8266的Wi-Fi功能,后端服务采用nodejs搭建,前端使用uniapp开发。 二、硬件搭建(1)ESP8266主控板① 选型原因ESP8266以其低成本、低功耗及强大的网络功能,成为本项目主控板的理想选择。它能够轻松实现数据的处理与网络传输,满足项目需求。 ② 连接与配置通过USB转TTL模块连接电脑,用于程序烧录与调试。在开发环境中,需配置好对应的端口和通信参数。 (2)MAX30102传感器① 功能作用MAX30102用于精确采集心率和血氧饱和度数据,为健康监测提供关键指标。 ②...
github上传文件过大时遇到的问题解决方法
在 Windows‑Git Bash 环境下解决 git push 报错 SSL_ERROR_SYSCALL (errno 10054) 并成功推送到 GitHub 适用场景:仓库大小 < 100 MB,HTTPS 推送频繁中断,需要切换到 SSH流程经过实测可行,如有差异请自行调整 master/main 分支名。 1. 现象与错误信息1234Enumerating objects: 1858, done.Compressing objects: 100% (1720/1720), done.error: RPC failed; curl 7 OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054fatal: the remote end hung up unexpectedly WinSock 10054 ⇒ 连接被远端或中间网络设备强制重置 最常见原因:网络/代理不稳、HTTPS 长连接被中断 解决思路:改用 SSH 推送,彻底绕过 HTTPS/SSL 2. 生成 SSH...