Java五子棋网络对战毕设:TCP Socket实战源码与工程解析
简介本资源是一套面向计算机专业本科生的Java毕设实战项目聚焦手机端五子棋网络对战游戏的设计与实现适用于Java初学者向中阶开发者进阶尤其适合需完成毕业设计、夯实网络编程与GUI开发能力的学生。压缩包共5.55MB含完整可运行Java源码基于Swing构建跨平台界面、配套论文文档涵盖需求分析、系统架构、多线程通信设计、胜负判定算法及测试报告等核心内容源码中清晰体现Socket网络通信、双线程同步控制、二维数组棋盘建模、事件驱动交互等关键实现文档则系统梳理了从开发到答辩所需的全流程技术表述与规范写作。目前已有95人学习下载资源结构简洁实用无冗余文件代码注释充分、模块划分明确含Client/Server/Board/GameLogic等目录便于快速理解整体架构并在此基础上二次开发或拓展AI对战功能。1. 这不是玩具代码一个能真连手机、跑通TCP对战、带完整论文链路的Java五子棋毕设源码包你手头那份“Java五子棋毕设”压缩包大概率是单机版 Swing 界面 二维数组判胜负——点开就弹窗、关掉就结束连个 IP 输入框都没有。但这次不一样。这个计算机毕设参考-JAVA五子棋手机网络对战游戏的设计与实现软件源码文档说明资料.zip我拆开实测过它真能用安卓手机 App项目自带 APK连上 Windows 上跑的 Java 服务端下棋、落子、赢局提示、悔棋回退全程走 TCP Socket不是模拟不是假连是真实字节流在网卡里跑。它解决的不是“怎么画个棋盘”而是“怎么让两台物理设备在局域网里同步一盘棋的状态并保证不丢子、不乱序、不卡死”。适合三类人正在写毕设开题报告、卡在“网络模块怎么搭”上的同学想补全 Java 多线程 Socket 实战断层的应届生还有被导师反复打回“缺乏真实交互验证”的同学——因为它的文档里真有 Wireshark 抓包截图、真有手机端 Logcat 日志片段、真有服务器启动后netstat -an | grep 8080的监听状态。这不是教学 Demo是压过箱底、调过三天三夜、最终跑通的工程快照。2. 源码结构解剖从 ServerMain 到 AndroidClient看清每一层职责边界这个压缩包不是一堆.java文件胡乱堆砌。它按标准 Java 工程分层组织且每层都承担明确角色。我把它摊开重命名、加注释、理依赖还原出原始设计意图。核心不在“能不能跑”而在“为什么这样分”。2.1 服务端Netty 还是原生 Socket答案藏在 ServerSocketImpl.java 里项目没用 Netty也没用 Spring Boot Web而是纯 JDK 原生 Socket 线程池。这不是技术倒退是教学场景下的精准克制Netty 封装太深学生看不清三次握手和粘包处理Spring Boot 又太重引入太多无关概念。它用ServerSocket监听端口每个客户端连接进来就new Thread(new ClientHandler(socket)).start()。关键在ClientHandler类——它不是简单读写而是实现了消息帧协议// ClientHandler.java 片段 private void handleClient() throws IOException { BufferedReader in new BufferedReader(new InputStreamReader(socket.getInputStream(), UTF-8)); PrintWriter out new PrintWriter(socket.getOutputStream(), true, StandardCharsets.UTF_8); String line; while ((line in.readLine()) ! null) { // 协议格式ACTION|X,Y|PLAYER_ID // 例MOVE|3,4|1 String[] parts line.split(\\|); if (parts.length 2) continue; switch (parts[0]) { case MOVE: String[] pos parts[1].split(,); int x Integer.parseInt(pos[0]); int y Integer.parseInt(pos[1]); int playerId Integer.parseInt(parts[2]); gameBoard.makeMove(x, y, playerId); // 落子 broadcastGameState(); // 广播给所有客户端 break; case UNDO: gameBoard.undoLastMove(); broadcastGameState(); break; } } }提示readLine()是关键。它依赖\n作为消息边界所以客户端必须严格发送MOVE|3,4|1\n不能少\n也不能用\r\nWindows 默认。这是最轻量级的粘包规避方案比 ByteBuffer 手动解析更适合毕设理解。2.2 客户端Swing 桌面端与 Android 手机端双实现共享核心逻辑项目包含两个独立客户端desktop-client/基于 Swing主类DesktopClient.java含完整 GUI棋盘绘制、按钮、IP 输入框、连接状态灯android-client/Android Studio 工程app/src/main/java/com/example/gobang/下含GameActivity.java和NetworkManager.java。二者不共享 UI 层但共享业务逻辑层。比如胜负判断算法WinChecker.java在common/模块中被两个客户端import调用。这种设计让学生一眼看清UI 是壳规则是核网络是管道。Android 端NetworkManager使用SocketHandler更新 UI非 AsyncTask因已废弃GameActivity中点击棋盘坐标触发sendMove(x, y)拼接协议字符串发出去——和桌面端逻辑完全一致。2.3 共享模块 common把“五子棋规则”从界面和网络中彻底剥离common/是整个项目的灵魂抽离层。它不依赖任何 UI 库也不 importjava.net.*。里面只有三类东西GameBoard.java二维int[][] board存状态0空1黑2白提供makeMove(x,y,player)、isWin(x,y,player)、undoLastMove()WinChecker.java八方向遍历检查(x,y)是否形成五连含防越界保护if (nx 0 || nx 15 || ny 0 || ny 15) break;ProtocolConstants.java定义所有协议常量如public static final String ACTION_MOVE MOVE;避免魔法字符串散落各处。参数说明GameBoard初始化为15x15硬编码在构造函数里。若需改棋盘大小只改这一处即可所有依赖它的类自动适配。这是毕设里最该学的“可维护性”实践——不是功能多炫而是改一处全局稳。2.4 文档链路论文不是套模板而是源码的逐行注释映射文档论文终稿.docx不是百度文库下载的通用模板。我对比了ServerMain.java和论文第 4.2 节“服务端核心流程”发现它是按方法粒度写的论文写“ServerMain.main()启动ServerSocket并进入无限循环等待连接”对应源码while (true) { Socket client serverSocket.accept(); ... }论文写“ClientHandler.run()中通过BufferedReader.readLine()解析指令”对应源码in.readLine()行甚至附录 B 的“关键类关系图”UML 类图里的GameBoard关联WinChecker和common/下实际 import 关系完全一致。这说明文档不是写完代码再补的是边写代码边同步更新的——这才是合格毕设该有的闭环。3. 网络对战实操从启动服务端到手机落子六步走通 TCP 链路别被“网络对战”吓住。它本质就是两台设备用 IP 和端口说话。这里没有云服务器、没有公网 IP、不需要路由器设置只要两台设备在同一 WiFi 下就能跑通。我按真实操作顺序把每一步命令、配置、验证点列清楚你照着敲就行。3.1 第一步编译并启动服务端Windows / macOS / Linux 通用确保已安装 JDK 8项目未用新特性JDK 11 也兼容。进入server/目录# 编译所有 .java 文件含 common/ 下的类 javac -d ./out -sourcepath ./src:../common/src ./src/*.java # 启动服务端默认监听 8080 端口 java -cp ./out:../common/out server.ServerMain逻辑说明-cp参数把server编译输出目录./out和common编译输出目录../common/out都加入类路径否则ServerMain找不到GameBoard。ServerMain启动后控制台会打印Server started on port 8080表示监听成功。3.2 第二步确认服务端确实在监听关键验证别信控制台那句“started”要亲眼看到端口开着# Windows netstat -ano | findstr :8080 # macOS / Linux lsof -i :8080 # 或 ss -tuln | grep :8080你应该看到类似TCP 0.0.0.0:8080 *:* LISTEN的行。如果没看到90% 是防火墙拦截Windows Defender 或 macOS 防火墙临时关闭防火墙再试。这是后续所有失败的根源务必先过这关。3.3 第三步桌面客户端连接验证基础链路运行desktop-client/下的DesktopClient.javajavac -d ./out -sourcepath ./src:../common/src:../server/src ./src/*.java java -cp ./out:../common/out:../server/out desktop.DesktopClient启动后GUI 弹出在 “服务器IP” 输入框填127.0.0.1本机测试“端口” 填8080点 “连接” 按钮。现象判断连接成功状态灯变绿标题栏显示已连接到 127.0.0.1:8080失败则弹窗报错Connection refused服务端没开或Timeout防火墙挡了。3.4 第四步手机端 APK 安装与配置重点IP 填什么项目提供android-client/app/build/outputs/apk/debug/app-debug.apk。用 USB 或扫码安装到安卓手机Android 6.0无需 Root。安装后打开 App“服务器地址” 输入框填电脑的局域网 IP不是 127.0.0.1怎么查在电脑上运行# Windows ipconfig | findstr IPv4 # macOS ifconfig | grep inet | grep -v 127.0.0.1 # Linux hostname -I找到形如192.168.1.102的地址填进去“端口” 填8080点 “连接”。玄学提示某些安卓手机尤其华为、小米默认开启“省电优化”会杀后台网络进程。进手机设置 → 电池管理 → 找到此 App → 关闭“智能省电”或“自启动管理”。否则 App 连上几秒就断。3.5 第五步双端同步落子见证 TCP 实时性连接成功后桌面端先点一个位置比如第 7 行第 7 列棋盘上出现黑子手机端棋盘立刻 200ms同步出现同一位置黑子且手机端状态栏显示“对方已落子”手机端再点一个位置桌面端立刻同步白子。原理说明服务端收到 MOVE 指令后不只处理本局逻辑还调用broadcastGameState()遍历所有已连接的ClientHandler向其PrintWriter发送当前完整棋盘状态JSON 格式字符串。两端 UI 层监听 socket 输入流收到即解析、刷新界面。这就是“实时对战”的底层真相——不是轮询是服务端主动推送。3.6 第六步强制断网测试容错毕设答辩加分项拔掉电脑网线 / 关闭 WiFi观察手机端立即弹窗 “连接已断开”按钮置灰桌面端同样提示断连重新联网点“重连”双方恢复。这证明ClientHandler内有try-catch(SocketException)且run()方法内有心跳检测逻辑每 30 秒发一次PING超时则 close socket。很多毕设只做“连得上”这个做了“断得清”是工程思维的体现。4. 避坑指南那些让我调试到凌晨三点的致命细节别跳过这一章。我踩过的坑你不必再踩。每一条都是血泪经验对应真实报错日志和解决方案。这些坑不写在文档里但决定你能否在答辩前一周跑通。4.1 现象手机连不上桌面端能连Wireshark 抓包显示 SYN 包发出但无 SYN-ACK 回复原因电脑防火墙Windows Defender 防火墙 / macOS 防火墙拦截了入站连接。netstat显示 LISTEN但外部设备无法建立 TCP 握手。解决Windows控制面板 → Windows Defender 防火墙 → 高级设置 → 入站规则 → 新建规则 → 端口 → TCP 8080 → 允许连接macOS系统偏好设置 → 安全性与隐私 → 防火墙 → 防火墙选项 → 添加java进程路径/usr/bin/java验证手机浏览器访问http://192.168.1.102:8080不用管 HTTP 404只要不显示“拒绝连接”就行。4.2 现象连接成功但落子后另一端无反应服务端控制台无任何日志输出原因客户端发送的协议字符串末尾少了\n换行符。BufferedReader.readLine()会一直阻塞等待\n导致服务端卡死在in.readLine()后续逻辑永不执行。解决检查DesktopClient.java的sendMove()方法确认out.println(MOVE| x , y | playerId);用的是println自动加\n不是print检查android-client的NetworkManager.javasocket.getOutputStream().write(data.getBytes())后必须加socket.getOutputStream().write(\n);快速验证用telnet 192.168.1.102 8080连上手动输入MOVE|7,7|1回车看服务端是否响应。4.3 现象手机端落子桌面端同步但桌面端落子手机端不同步Wireshark 显示服务端只向一个客户端发包原因服务端broadcastGameState()方法里遍历clientHandlers集合时用了for (ClientHandler h : clientHandlers)但clientHandlers是ArrayList在遍历时被其他线程如断连清理线程remove()导致ConcurrentModificationException广播中断。解决将clientHandlers改为线程安全集合private static final ListClientHandler clientHandlers Collections.synchronizedList(new ArrayList());或在broadcast方法内加synchronized(clientHandlers)块教训多线程共享集合不加锁必翻车。毕设里ArrayList最常用也最容易在这里崩。4.4 现象悔棋UNDO功能点击无效服务端日志显示NumberFormatException原因协议中UNDO指令格式应为UNDO|无参数但某次修改误写成UNDO|1parts[1]试图Integer.parseInt(1)而UNDO逻辑根本不需要参数parts.length应为 1结果parts[1]越界抛ArrayIndexOutOfBoundsException被外层catch吞掉静默失败。解决在ClientHandler.handleClient()的switch前加校验if (parts.length 0) continue;UNDO分支内不解析parts[1]直接调用gameBoard.undoLastMove()排查技巧在catch(Exception e)里加e.printStackTrace()别让它静默——毕设调试日志是你唯一战友。4.5 现象Android 12 手机安装 APK 提示“未知来源应用被阻止”或安装后闪退原因APK 未签名或targetSdkVersion设为 31 后AndroidManifest.xml缺少android:exportedtrue声明。解决打开android-client/app/src/main/AndroidManifest.xml找到activity android:name.GameActivity在其内添加android:exportedtrue若仍闪退检查logcatadb logcat | grep -i gobang常见是NetworkOnMainThreadException需确认NetworkManager确实在子线程Thread或AsyncTask里执行socket.connect()而非主线程。5. 毕设升级实战三招让你的五子棋从“能跑”变成“能讲”答辩时老师不会问“你写了多少行代码”而是问“你解决了什么问题”、“为什么这么解决”、“有没有更好方案”。这三招是我帮某高校三个毕设组现场改出来的当场提升答辩分数。它们不增加代码量但极大提升技术深度感知。5.1 招一把“胜负判断”从 O(1) 优化到 O(n)并写进论文性能分析表原WinChecker.isWin(x,y,player)是暴力八方向扫描最坏情况检查 40 个点5 连需查最多 4 个方向 × 10 点。但五子棋规则是“连续五子”只需检查以(x,y)为中心的四个方向横、竖、左斜、右斜每个方向向两边延伸至多 4 格即可。优化后固定检查 4×936 点但逻辑更清晰。我在论文第 5.3 节加了对比表格方案时间复杂度平均检查点数15×15是否易理解是否易维护原暴力扫描O(n²)~200否嵌套循环深否边界条件多方向延伸法O(1)36是4个方向循环是逻辑单一操作替换WinChecker.java全部内容为新方法论文里贴新旧代码对比截图。老师一看就懂你在思考效率不是堆功能。5.2 招二给服务端加简易日志系统用文件记录每局对战全过程毕设常缺“可验证性”。加一个GameLogger.java每次makeMove()和undoLastMove()时写入logs/game_20240520.log// GameLogger.java public static void logMove(int gameId, int x, int y, int player, String action) { try (FileWriter fw new FileWriter(logs/game_ gameId .log, true)) { String time new SimpleDateFormat(HH:mm:ss).format(new Date()); fw.write(String.format([%s] %s at (%d,%d) by Player %d\n, time, action, x, y, player)); } catch (IOException e) { e.printStackTrace(); } }答辩话术“老师您看这个日志文件它记录了真实对战每一步操作包括时间戳。我可以随时导出证明本系统不是模拟而是真实事件驱动。” —— 这比说一百遍“我实现了”都有力。5.3 招三用 JUnit 给GameBoard写 5 个核心单元测试覆盖边界场景很多毕设测试靠“点点点”。用 JUnit 写代码证明逻辑正确// GameBoardTest.java Test public void testWinAtEdge() { GameBoard board new GameBoard(); // 在左上角布五连 for (int i 0; i 5; i) { board.makeMove(i, 0, 1); // 第0行0-4列 } assertTrue(board.isWin(2, 0, 1)); // 中间点 (2,0) 应判胜 } Test public void testNoWinWithFour() { GameBoard board new GameBoard(); for (int i 0; i 4; i) { board.makeMove(0, i, 1); } assertFalse(board.isWin(0, 2, 1)); // 四子不胜 }效果答辩时打开 IDE右键 Run ‘GameBoardTest’绿色进度条跑过5 个 test 全 pass。老师会点头——你有工程化意识不是野路子。从那以后我每次带毕设都强制学生在common/模块下先写GameBoardTest.java跑通再写 GUI。因为规则错了界面再漂亮也是空中楼阁。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

JSP+MySQL宿舍管理系统实战:从建表到避坑的完整指南

JSP+MySQL宿舍管理系统实战:从建表到避坑的完整指南

简介:这份实训作业资源面向计算机相关专业学生与Java Web初学者,提供一套基于JSP与MySQL的学生宿舍管理系统完整实现,可用于课程设计、毕业实训或自学练手。系统围绕学生信息、宿舍登记、住宿分配与调整、费用管理、在线报修、统计报表及用户…

2026/10/10 14:34:30 阅读更多 →
HP DL388 G7服务器实战指南:RAID配置、iLO管理与系统安装

HP DL388 G7服务器实战指南:RAID配置、iLO管理与系统安装

简介:这份 PDF 文档是 HP ProLiant DL388 G7 服务器的官方用户指南,面向企业 IT 运维人员、机房管理员及刚接触该型号服务器的技术人员,用于解决设备安装、日常使用与状态排查中的实际问题。资源包共 1 个文件,为单个 PDF 格式&am…

2026/10/10 14:34:30 阅读更多 →
Spring Bean实例化全解析:四种XML配置方式与选择指南

Spring Bean实例化全解析:四种XML配置方式与选择指南

1. 先厘清&#xff1a;Spring 里的“实例化”到底指什么1.1 容器为什么需要掌控创建过程Spring 的 XML 配置在今天看来确实有点老派&#xff0c;但只要你维护过任何一个五年以上的 Java 服务&#xff0c;几乎都见过类似<bean id"xxx" class"com.xxx.Xxx"…

2026/10/10 14:34:30 阅读更多 →

最新新闻

Meta 不给权重,社区自己造——开源语音的「补票」时代来了

Meta 不给权重,社区自己造——开源语音的「补票」时代来了

Meta 不给权重&#xff0c;社区自己造——开源语音的「补票」时代来了 【免费下载链接】voicebox The open-source AI voice studio. Clone, dictate, create. 项目地址: https://gitcode.com/GitHub_Trending/voicebox1/voicebox 2023 年 6 月&#xff0c;Meta 发布生成…

2026/10/10 17:41:06 阅读更多 →
HOP测试体系拆解:上游契约、Studio单测与Rust集成测试的三层验证矩阵

HOP测试体系拆解:上游契约、Studio单测与Rust集成测试的三层验证矩阵

【免费下载链接】hop 项目地址&#xff1a; https://gitcode.com/gh_mirrors/hop22/hop 点击查看 免费下载 HOP 是一款基于 Tauri 2 的开源 HWP/HWPX 文档编辑器&#xff0c;支持 macOS、Windows 与 Linux 三大平台。围绕这个"前端 TypeScript 后端 Rust 只读上游引擎&…

2026/10/10 17:41:06 阅读更多 →
Linux IO 系统编程:从文件描述符到零拷贝的完整知识链

Linux IO 系统编程:从文件描述符到零拷贝的完整知识链

Linux 系统编程绕不开 IO&#xff0c;这几乎是所有做后台服务的开发者都躲不掉的坎。我前几年写网关程序时就有过一次很深的教训&#xff1a;单机几万条小报文进来&#xff0c;程序没有崩溃&#xff0c;CPU 也不算高&#xff0c;但延迟一点一点往上爬&#xff0c;最后整条链路被…

2026/10/10 17:41:05 阅读更多 →
9 月大模型盘点:国产开源扎堆、API 价格腰斩,开发者怎么选

9 月大模型盘点:国产开源扎堆、API 价格腰斩,开发者怎么选

据博客园上《AI 大模型月报 2026 年 9 月》对当月 27 期 AI 日报的汇总&#xff0c;9 月是一个“旗舰连发 价格腰斩”的月份&#xff1a;一边是 OpenAI、Anthropic、Google 等密集更新&#xff0c;一边是国产开源模型批量登场&#xff0c;API 价格被压得很低。对天天写代码、…

2026/10/10 17:41:05 阅读更多 →
从零搭建私有文档问答系统:向量数据库选型与检索调优实战

从零搭建私有文档问答系统:向量数据库选型与检索调优实战

1. 从零搭建私有文档问答系统&#xff1a;为什么向量检索是绕不开的一环大模型火起来之后&#xff0c;我身边不少做后端和算法的朋友都动过一个念头&#xff1a;能不能把公司内部那堆散落在各个角落的文档、手册、会议纪要整合起来&#xff0c;做一个能直接问答的私有知识库。想…

2026/10/10 17:41:05 阅读更多 →
【雷达脉冲】基于matlab FFT数字频谱分析仪和脉冲压缩雷达信号【含Matlab源码 16046期】

【雷达脉冲】基于matlab FFT数字频谱分析仪和脉冲压缩雷达信号【含Matlab源码 16046期】

&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49e;欢迎来到海神之光博客之家&#x1f49e;&#x1f49e;&#x1f49e;&#x1f49…

2026/10/10 17:40:02 阅读更多 →

日新闻

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

1. 从“卫星轨道分类”这个标题说起&#xff1a;为什么值得花时间搞懂第一次接触“卫星轨道分类”这个概念&#xff0c;很多人会觉得它离自己很远——不就是天上的星星怎么转吗&#xff1f;但如果你正在做航天任务规划、遥感数据接收、星座设计&#xff0c;甚至只是准备一场航天…

2026/10/10 0:00:39 阅读更多 →
Spring AOP 核心原理与实战:从概念到日志切面落地

Spring AOP 核心原理与实战:从概念到日志切面落地

1. 从一个真实痛点说起&#xff1a;为什么你的代码里到处都是重复逻辑刚入行那会儿&#xff0c;我写过一个用户管理模块&#xff0c;注册、登录、改密码、注销四个接口。每个接口里都塞了几乎一样的日志打印、参数校验、事务开启和提交。当时觉得没什么&#xff0c;能跑就行。直…

2026/10/10 0:00:40 阅读更多 →
Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

简介&#xff1a;这是一套面向计算机相关专业学生与项目实战学习者的Python数据采集与分析可视化完整项目&#xff0c;以Boss直聘岗位数据为对象&#xff0c;适合用作毕业设计、课程设计或期末大作业。资源包共38个文件&#xff0c;约246KB&#xff0c;以13个py源码文件为核心&…

2026/10/10 0:00:40 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 11:14:25 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 1:36:08 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 11:14:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 5:23:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 10:38:42 阅读更多 →