OpenSpiel 游戏库全景指南:可用游戏清单、成熟度分级与加载实战
人工智能强化学习深度学习【免费下载链接】open_spielOpenSpiel is a collection of environments and algorithms for research in general reinforcement learning and search/planning in games.项目地址https://gitcode.com/gh_mirrors/op/open_spiel点击查看免费下载本文以 OpenSpiel 仓库官方文档 docs/games.md 为骨架系统梳理 OpenSpiel 内置的全部 100 个游戏环境它们的玩家数、确定性、信息完备性、成熟度状态以及背后由源码与测试支撑的分级依据。读完本文你将能够按研究需求快速筛选合适的游戏环境理解 / / ❌三种状态的真实含义并掌握通过 Python 与 C 加载游戏、传入参数、自定义游戏字符串的完整方法。一、状态图例如何读懂游戏清单OpenSpiel 官方文档 docs/games.md 为每个游戏标注了三种成熟度状态这是挑选研究环境时最重要的参考信号状态含义thoroughly-tested经过充分测试。多数情况下实现已与已知数值known values核对或复现了论文中的实验结果。implemented but lightly tested已实现但测试较轻。游戏功能可用但验证覆盖不足使用时建议自行补充测试。❌known issues存在已知问题。实现存在已知缺陷详见文档下方说明与源码中的注释。除此之外清单表格还通过四列描述每个游戏的属性Players支持玩家人数区间如2-6表示可变人数Deterministic是否确定性✅无随机性 /❌含机会节点如掷骰、洗牌Perfect info是否为完全信息博弈✅所有玩家可见全部状态 /❌存在隐藏信息Description一句话玩法说明部分游戏附带论文参考文献。需要强调的是Deterministic 与 Perfect info 是相互独立的两个维度例如Kriegspiel军棋式国际象棋变体是确定性的✅但对手棋子隐藏❌属于典型的确定性 不完全信息组合而Backgammon信息完全✅但依赖掷骰子❌。二、OpenSpiel 游戏库概览类型分布与研究价值从清单内容看OpenSpiel 覆盖了通用强化学习与博弈搜索研究所需的几乎所有环境类型经典抽象策略游戏国际象棋、围棋、井字棋、五子棋、四子棋等用于完全信息搜索与规划研究扑克家族Kuhn Poker、Leduc Poker、德州扑克Hold em、桥牌、金拉米Gin Rummy等是不完全信息博弈与 CFR 类算法的标准基准暗棋与隐藏信息博弈暗棋Banqi、暗 Hex、Phantom Go、Phantom Tic-Tac-Toe、Kriegspiel、侦察盲棋Reconnaissance Blind Chess等多智能体交互谈判Negotiation、议价Bargaining、贸易交流Trade Comm、社会推理Social Deduction、合作推箱Cooperative Box-Pushing等用于测试协作与意图推断平均场博弈MFG人群建模、路由、线性二次型等用于大规模群体博弈的均值场方法研究学习基准环境2048、Atari、Catch、Cliff Walking、Deep Sea、Solitaire 等用于测试探索、危险规避等基础学习能力。从仓库的构建清单 open_spiel/games/CMakeLists.txt 可以看到每个游戏都对应独立的源码目录如amazons/amazons.cc、chess/chess.cc、mfg/crowd_modelling.cc绝大多数游戏还配有同名*_test.cc测试文件并通过add_test注册到 CTest。两个特殊游戏需要可选构建开关才能编译Hanabi 依赖OPEN_SPIEL_BUILD_WITH_HANABI内部封装了 Hanabi Learning Environment通用扑克universal_poker含德州扑克与重复扑克依赖OPEN_SPIEL_BUILD_WITH_ACPC详见 open_spiel/games/CMakeLists.txt。三、完整游戏清单按类别整理以下完整继承官方清单的全部条目102 个游戏按玩法类别分组呈现。每个条目保留文档原表中的状态、人数、确定性与信息属性。3.1 完全信息的双人棋盘与抽象策略游戏状态游戏玩家确定性完全信息描述Amazons2✅✅在棋盘上移动棋子并封锁对手的移动路线。Ant Foraging2✅✅在棋盘上移动棋子并封锁对手的移动路线。Antichess2✅✅国际象棋变体吃子为强制行动目标是输光己方棋子或造成逼和。Breakthrough2✅✅只用兵的国际象棋简化版。Checkers2✅✅跳棋移动棋子并消灭对方棋子。Chinese Checkers2-6✅✅星形棋盘玩家通过单步与链式跳跃将 10 枚棋子全部移入对侧三角区支持 2、3、4、6 人。Clobber2✅✅简化跳棋棋子可吃掉相邻棋子设计上便于组合分析。Connect Four2✅✅四子棋向列中投放棋子以连成一线。Chess2✅✅国际象棋。Crazyhouse2✅✅国际象棋变体被吃掉的对方棋子可化为己方棋子重新放入棋盘。Dots and Boxes2✅✅点格棋画线围成方格得分。Go2✅✅围棋落子圈地。Gomoku2✅✅五子棋五子连珠获胜。Havannah2✅✅在六边形网格上落子构成特定获胜结构。Hex2✅✅在六边形网格上落子连接棋盘对边。Hive2✅✅虫棋摆放虫子棋子包围对方蜂后。Lines of Action2✅✅移动棋子使己方棋子连成一体。Mancala2✅✅播棋轮流播种并俘获比对手更多的豆子。m,n,k-game2✅✅在 m×n 棋盘上连成 k 子一线。Nim2✅✅双人从若干堆中取子避免或争取取走最后一子。Nine mens morris2✅✅九子棋摆子、走子并构成磨坊三子一线以吃子。Oware2✅✅从己方半区重新分配种子在对方半区俘获种子。Pentago2✅✅落子后旋转棋盘四分之一部分。Shogi2✅✅日本将棋被吃掉的对方棋子可投入棋盘化为己用。Tic-Tac-Toe2✅✅井字棋。TwixT2✅✅在 24×24 棋盘上放置钉与连线连接对边。Ultimate Tic-Tac-Toe2✅✅在局部棋盘与元棋盘上连成一线。Xiangqi2✅✅中国象棋传统策略棋盘游戏有河界与九宫。Y2✅✅在三角形棋盘上落子连接三条边。3.2 带随机要素的完全信息游戏状态游戏玩家确定性完全信息描述Backgammon2❌✅西洋双陆棋按骰子点数在棋盘上移动棋子。EinStein würfelt nicht!2❌✅玩家控制 6 枚编号立方体由骰子随机选中移动率先抵达对方棋盘角或吃光对方棋子者胜。Mensch ärgere Dich nicht2-4❌✅掷骰子将棋子移向终点行同时把对手棋子踢回场外。Pig2-10❌✅玩家不断掷骰直到掷出 1 或选择停累计的掷骰点数计入得分。Yacht1-10❌✅骰子游戏在不同类别中得分规则遵循 Knizia 版本。Pursuit-Evasion1✅✅连续 2D 空间中的单人追逃游戏追捕者用离散方向动作捕捉逃逸者逃逸者移动以机会节点建模。3.3 不完全信息游戏扑克与牌类状态游戏玩家确定性完全信息描述Blackjack1❌❌简化版 21 点仅支持 HIT/STAND 动作。Block Dominoes2❌❌最简单版多米诺28 张牌覆盖 0~6 点数的全部组合。Bridge4❌❌桥牌玩家两两组队对抗。(Uncontested) Bridge bidding2❌❌桥牌叫牌阶段无竞争叫牌用手牌组成特定牌组得分。Crazy Eights2❌❌UNO 的前身。Cribbage2-4❌❌克里比奇牌戏组合手牌形成组合得分。Dou Dizhu3❌❌斗地主一名地主对抗两名农民。Euchre4❌❌尤克牌吃墩类牌戏玩家两两组队。Gin Rummy2❌❌金拉米通过组合手牌形成特定牌组得分。Go Fish2-10❌❌向其他玩家讨牌以凑成牌组。Goofspiel2-10❌❌用手中的牌叫价以赢得其他牌。Hanabi2-5❌❌烟花只能看到他人的牌全体玩家必须合作取胜。Hearts3-6❌❌红心大战避免每轮打出最大的牌。Kuhn poker2❌❌适合博弈论分析的简化扑克。Leduc poker2❌❌适合博弈论分析的简化扑克。Liars Dice2❌❌吹牛骰子只知道自己骰子的情况下对全部骰子状态叫价与虚张声势。Liars Poker2❌❌只知道自己手牌的情况下对全部手牌状态叫价与虚张声势。Oh Hell3-7❌❌玩家须恰好赢得自己声明的墩数。Poker (Hold em)2-10❌❌德州扑克手牌加公共牌组成特殊牌组并下注通过 ACPC 实现。Skat3❌❌斯卡特牌简化叫牌轮流叫价对抗另外两名玩家。Slovenian Tarok3-4❌❌带叫价的吃墩牌戏。Solitaire (K)1❌❌单人纸牌克朗代克。Spades4❌❌四人黑桃牌戏。Team Dominoes4❌❌多米诺组队版28 张牌覆盖 0~6 点数的全部组合。Tiny Bridge2,4❌❌简化桥牌更少的牌与墩。Tiny Hanabi2-10❌❌简化烟花仅两轮。3.4 不完全信息游戏暗棋与隐藏信息博弈状态游戏玩家确定性完全信息描述Banqi2❌❌中国暗棋4×8 棋盘 32 枚棋子背面朝下玩家翻牌、移动或吃子采用台湾变体规则炮跳吃与循环吃子层级。Bargaining2❌❌智能体就一池物品进行谈判各自持有不同的隐藏估值。Battleship2✅❌海战棋玩家布船并轮流射击。Coin Game2❌❌智能体需收集自己与合作者的代币同时避开第三种代币用于测试推断合作者意图。Dark Hex2✅❌Hex 的不完全信息版本对手棋子隐藏。Kriegspiel2✅❌军棋式国际象棋对手棋子未知非法移动无效保持同一玩家回合直到走出合法棋。Laser Tag2❌❌智能体只能看到网格局部尝试用光束击中彼此。Latent Tic-Tac-Toe2✅❌潜在井字棋移动在对手下一步之后才揭示若揭示时已非法则判输。Lewis Signaling2❌❌接收者须根据发送者的隐藏状态选择动作用于演示约定convention的形成。Phantom Go2✅❌暗围棋对手棋子隐藏是围棋版的 Kriegspiel。Phantom Tic-Tac-Toe2✅❌暗井字棋对手棋子隐藏设计为简单的不完全信息游戏。❌Reconnaissance Blind Chess2✅❌侦察盲棋对手棋子未知且带侦察动作的国际象棋变体曾用于 NeurIPS 竞赛与隐藏信息博弈竞赛。Sheriff2✅❌谈判游戏适合相关均衡correlated equilibria研究基于桌游《诺丁汉警长》。Social Deduction3-10❌❌简化社会推理游戏非对称信息与离散通信平民识别伪装者伪装者消灭平民。3.5 同时行动与矩阵/拍卖类游戏状态游戏玩家确定性完全信息描述Capture the Flag2❌✅同时行动对抗网格游戏守卫己方旗帜并把对方旗帜带回己方基地持旗者在对方半场可能被标记而送回旗帜。First-price Sealed-Bid Auction2-10❌❌一级密封拍卖玩家同时出价最高价中标且按该价支付。Marked见下————Matching Pennies (3-player)3✅❌三人大头针配对预测并匹配/对抗另一玩家具有不稳定的纳什均衡。Oshi-Zumo2✅❌反复叫价把令牌推出对方棋盘一侧。Prisoners Dilemma2✅✅囚徒困境在不同收益结构下决定合作或背叛。Snake2, 4❌✅多人贪吃蛇所有玩家同时移动吃水果成长得分撞墙、撞身或对头相撞则死亡。Weighted Voting Games1✅✅经典联盟博弈每位玩家有权重 w_i配额 q联盟向量 p 的收益在 p·w ≥ q 时为 1否则为 0。3.6 谈判、协作与多智能体社会博弈状态游戏玩家确定性完全信息描述Colored Trails3❌❌智能体就筹码进行谈判在彩色网格上移动以接近目标。Cooperative Box-Pushing2✅✅智能体协作把箱子推进目标用于测试协作能力。Markov Soccer2❌❌智能体带球向己方球门移动可通过预测对方下一步动作进行抢断。Negotiation2❌❌效用不同的智能体须就资源分配达成谈判。Trade Comm2❌❌持有不同效用与物品的玩家先通信再交易。Pathfinding1-10❌✅智能体须移动到各自目的地。3.7 单玩家游戏与学习基准环境状态游戏玩家确定性完全信息描述20481❌✅单人游戏通过合并方块生成 2048 方块。Atari1❌多数游戏✅智能体玩 Gym Atari 环境中的经典游戏如 Breakout。Catch1❌✅智能体水平移动接住下落的球用于测试基础学习。Cliff Walking1✅✅智能体须找到目标且不掉下悬崖用于演示带危险的探索。Crossword1❌❌经典填字游戏支持加载随机与自定义谜题xd 格式。Deep Sea1✅✅智能体须探索以找到奖励第一版或惩罚第二版用于测试探索能力。Morpion Solitaire (4D)1✅✅单人游戏在网格上尽可能多画线受一定限制。3.8 平均场博弈Mean Field Games状态游戏玩家确定性完全信息描述Mean Field Game: crowd modellingn/an/an/a人群建模平均场博弈。Mean Field Game: crowd modelling 2dn/an/an/a二维人群建模平均场博弈。Mean Field Game: linear-quadraticn/a❌✅玩家均匀分布并被激励聚集到同一点离分布均值越近奖励越高均值回归项把玩家拉向分布、高斯噪声项扰动状态线性演化alpha·a·dt、成本二次K·a²·dt完全连续版本存在精确闭式解。Mean Field Game: predator preyn/an/an/a捕食者—猎物平均场博弈。Mean Field Game: routingn/a❌✅代表玩家在每个节点选择去向有起点、终点与出发时间选择路线最小化行程时间链路耗时取决于玩家到达时该链路上的玩家分布。3.9 存在已知问题的游戏状态游戏玩家确定性完全信息描述❌Quoridor2-4✅✅每回合移动棋子或在棋盘上加一堵小墙。❌Reconnaissance Blind Chess2✅❌见 3.4 节描述存在已知问题。注意Dou Dizhu斗地主在官方清单中标注为 但其实现实际存在已知问题——在 open_spiel/spiel.cc 的GamesWithKnownIssues()列表中dou_dizhu被明确列入。加载时会打印警告。这正体现了文档所述see notes below and code for details的查证路径。四、成熟度分级背后的验证机制状态并非凭空而来OpenSpiel 为游戏质量提供了一套多层验证体系可从仓库源码中逐一印证单元测试每个游戏目录下几乎都有同名*_test.cc并在 open_spiel/games/CMakeLists.txt 中通过add_executableadd_test注册进 CTest。例如tic_tac_toe_test、chess_test、go_test、kuhn_poker_test等。状态通常对应测试中与已知数值比对或复现论文结果。Playthrough 回放测试open_spiel/integration_tests/playthrough_test.py 维护了一套回放日志playthrough为每个已注册游戏保存一份完整对局转录存放在 open_spiel/integration_tests/playthroughs测试时重新播放并逐行比对。其中test_all_games_tested会校验每个已注册游戏都有 playthroughplaythrough_test.py缺漏时提示用generate_new_playthrough.sh生成。Playthrough 生成脚本open_spiel/scripts/generate_new_playthrough.sh 封装了生成命令用法为./open_spiel/scripts/generate_new_playthrough.sh GAME内部调用python open_spiel/python/examples/playthrough.py --game $GAME --output_file open_spiel/integration_tests/playthroughs/$GAME.txt。因此当你看到某个游戏是 lightly tested时合理的做法是先检查它是否在集合之外再查看其*_test.cc覆盖了什么场景必要时自行补充验证再放心用于论文实验。五、游戏加载实战Python 与 C5.1 Pythonpyspiel.load_gameOpenSpiel 的 Python 绑定在 open_spiel/python/pybind11/pyspiel.cc 中导出了多个load_game重载load_game(game_string)按游戏名可带参数创建游戏使用默认参数load_game(short_name, params_dict)按短名与参数字典创建load_game_from_json(json_string)从 JSON 加载JSON 含game_name与可选parameters例如load_game_from_json({game_name: tic_tac_toe})load_games(multi_game_string, separator/)一次加载多个游戏。游戏字符串既可以是纯短名也可以是短名 参数官方示例 open_spiel/python/examples/example.py 明确写到breakthrough(rows6,columns6)。import pyspiel # 列出所有已注册游戏 print(pyspiel.registered_names()) print(pyspiel.registered_games()) # 返回 GameType 对象列表 # 纯短名加载默认参数 game pyspiel.load_game(tic_tac_toe) # 带参数加载 game pyspiel.load_game(goofspiel(num_cards4, points_orderdescending)) # 用参数字典加载 game pyspiel.load_game(kuhn_poker, {players: 2}) state game.new_initial_state() print(str(state))相应地registered_names、registered_games、registered_concrete_names等 API 的绑定也在 pyspiel.cc。此外官方文档 docs/api_reference/load_game.md 对load_game的参数解析规则有更细的说明。5.2 CLoadGame与游戏字符串解析C 侧入口位于 open_spiel/spiel.ccLoadGame(const std::string game_string)先把字符串解析为GameParameters再交给LoadGame(GameParameters)LoadGame(GameParameters)要求参数中必须包含name键随后擦除name并把其余参数传给工厂最终由GameRegisterer::CreateByNamespiel.cc在注册表中查找短名、校验参数合法性ValidateParams并调用创建函数。标准游戏字符串示例可参考 open_spiel/canonical_game_strings.cc其中预置了多组德州扑克标准配置例如无限注单挑universal_poker(bettingnolimit,numPlayers2,numRounds4,blind100 50, firstPlayer2 1 1 1,numSuits4,numRanks13,numHoleCards2, numBoardCards0 3 1 1,stack20000 20000,bettingAbstraction...);这组字符串展示了universal_poker的完整参数体系下注模式betting、人数、轮数、盲注、先手顺序、花色/点数/底牌数、公共牌分布、筹码量与下注抽象。六、源码原理GameType 与游戏注册机制每个游戏的身份信息由GameType结构描述并通过REGISTER_SPIEL_GAME宏注册到全局工厂表factories()见 spiel.cc。以井字棋为例open_spiel/games/tic_tac_toe/tic_tac_toe.cc 的定义如下const GameType kGameType{ /*short_name*/tic_tac_toe, /*long_name*/Tic Tac Toe, GameType::Dynamics::kSequential, GameType::ChanceMode::kDeterministic, GameType::Information::kPerfectInformation, GameType::Utility::kZeroSum, GameType::RewardModel::kTerminal, /*max_num_players*/2, /*min_num_players*/2, /*provides_information_state_string*/true, /*provides_information_state_tensor*/false, /*provides_observation_string*/true, /*provides_observation_tensor*/true, /*parameter_specification*/{} // no parameters }; std::shared_ptrconst Game Factory(const GameParameters params) { return std::shared_ptrconst Game(new TicTacToeGame(params)); } REGISTER_SPIEL_GAME(kGameType, Factory);GameType的关键字段与游戏清单表格的对应关系如下GameType 字段含义对应清单列short_name加载时使用的短名如kuhn_poker游戏名DynamicskSequential/kSimultaneous是否同时行动ChanceModekDeterministic/kExplicitStochastic等Deterministic 列InformationkPerfectInformation/kImperfectInformationPerfect info 列max/min_num_players玩家数上下界Players 列parameter_specification可配置参数及默认值描述/参数用法参数规范parameter_specification是挑选游戏时最值得关注的字段之一。例如 Kuhn 扑克在 open_spiel/games/kuhn_poker/kuhn_poker.cc 中只暴露了{players, GameParameter(kDefaultPlayers)}一个参数默认 2 人支持最多 10 人而 Goofspiel 在 open_spiel/games/goofspiel/goofspiel.cc 中暴露了 7 个参数imp_info不完全信息观察模式开关egocentric以自我为中心的信息状态num_cards排名牌数量num_turns回合数players玩家数2~10points_order点数牌顺序可取random/ascending/descending解析逻辑见 goofspiel.ccreturns_type收益类型可取win_loss/total_points等。加载时CreateByName会调用ValidateParams校验传入参数是否在parameter_specification中未注册的参数会直接报错。这也解释了为什么游戏字符串必须与实现严格一致。矩阵博弈Matrix Game走的是同一套注册机制matrix_mp匹配硬币、matrix_rps石头剪刀布等都在 open_spiel/games/matrix_games/matrix_games.cc 中通过REGISTER_SPIEL_GAME注册但使用GameType::Information::kOneShot与Dynamics::kSimultaneous适合作为单回合同时行动博弈的基准。七、按研究需求选择游戏的实用建议基于官方清单与上述属性维度可按研究主题快速定位候选游戏完全信息搜索/规划Chess、Go、Connect Four、Tic-Tac-Toe、Pentago 等完全信息确定性游戏配合 MCTS、minimax 等算法不完全信息博弈与 CFRKuhn poker、Leduc poker、Liars Dice、Goofspiel 等游戏是经典基准Leduc 的参考实现见 open_spiel/games/leduc_poker相关均衡研究可选用 Sheriff、Battleship同时行动博弈Oshi-Zumo、Matching Pennies (3-player)、Snake、Capture the Flag多智能体协作与沟通Hanabi、Tiny Hanabi配合 Bayesian Action Decoder 研究、Cooperative Box-Pushing、Coin Game、Lewis Signaling、Trade Comm、Negotiation平均场博弈crowd modelling、crowd modelling 2d、routing、linear-quadratic、predator prey 五个 MFG源码位于 open_spiel/games/mfg用于在线镜像下降等均值场算法研究探索与危险规避基准Deep Sea、Cliff Walking、Catch、2048、Solitaire纯博弈论教学Prisoners Dilemma、Nim、Weighted Voting Games、m,n,k-game。八、使用注意事项已知问题游戏加载dou_dizhu、quoridor、reconnaissance_blind_chess等有已知问题的游戏时C 侧会在CreateByName中打印警告spiel.cc官方清单中 Quoridor 与 Reconnaissance Blind Chess 直接标注为❌请务必阅读源码确认缺陷后再决定是否使用可选构建Hanabi 与 universal_poker德州扑克默认可能未编译需要分别在 CMake 配置时开启OPEN_SPIEL_BUILD_WITH_HANABI/OPEN_SPIEL_BUILD_WITH_ACPC否则load_game(hanabi)或load_game(universal_poker)会报Unknown game参数严格性游戏字符串参数必须与GameType::parameter_specification完全匹配未定义的参数名会被ValidateParams拒绝状态分级是动态信号清单中的 //❌ 是维护者视角的测试覆盖快照使用新版本时建议同时核对 docs/games.md、对应*_test.cc与 open_spiel/integration_tests/playthroughs 的最新状态。通过本文的清单与源码剖析你可以像查字典一样快速定位 OpenSpiel 中适合自己研究问题的游戏环境并理解其质量背书与加载细节从而把精力集中在算法实验本身。赞分享人工智能强化学习深度学习【免费下载链接】open_spielOpenSpiel is a collection of environments and algorithms for research in general reinforcement learning and search/planning in games.项目地址https://gitcode.com/gh_mirrors/op/open_spiel点击查看免费下载相关推荐OpenSpiel 游戏加载指南load_game 的完整用法与底层原理OpenSpiel 游戏加载指南load_game 的完整用法与底层原理 load_game 是 OpenSpiel 中最常用、最重要的入口函数它负责根据一人工智能强化学习深度学习OpenSpiel 游戏注册表与 registered_names() 使用指南OpenSpiel 游戏注册表与 registered_names 使用指南 OpenSpiel 是一个面向通用强化学习与博弈搜索/规划研究的环境与算法集合其人工智能强化学习深度学习Homebox入门教程10个简单步骤建立你的家庭物品数据库Homebox入门教程10个简单步骤建立你的家庭物品数据库 Homebox是一款专为家庭用户打造的物品库存和组织系统帮助你轻松管理家庭物品、追踪资产信息。通创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

基于粒子群算法的储能容量配置MATLAB实现与调参实战

基于粒子群算法的储能容量配置MATLAB实现与调参实战

做储能容量配置这行,最头疼的就是“拍脑袋定容量”。光伏装多少、负荷曲线怎么变、峰谷电价怎么套利,每个变量都在相互牵制。以前我都是靠经验表格估算,后来接触了粒子群算法(PSO),配合MATLAB把这事变成自动…

2026/10/12 16:19:47 阅读更多 →
VC中SQLite实战:集成、性能优化与避坑指南

VC中SQLite实战:集成、性能优化与避坑指南

简介:本资源面向使用Visual C进行桌面开发的程序员,聚焦SQLite轻量级嵌入式数据库在VC项目中的集成与实战应用。包内提供可直接编译运行的完整工程,涵盖数据库连接建立、大批量数据快速插入、查询结果读取并填充至ListCtrl控件展示等核心环节…

2026/10/12 16:19:47 阅读更多 →
宠物服务小程序全栈开发实战:多业务聚合架构与云开发避坑指南

宠物服务小程序全栈开发实战:多业务聚合架构与云开发避坑指南

刚带完一个宠物服务类小程序的完整开发周期,从需求梳理到提审上线,前后踩了不少坑。今天把"智宠"这个一站式宠物服务小程序的设计思路、模块拆分、数据模型和关键实现细节整理出来。不管你是打算自己做一个宠物方向的小程序,还是想…

2026/10/12 16:18:47 阅读更多 →

最新新闻

AnyPS5项目解析:从命名歧义看技术代号规范的重要性

AnyPS5项目解析:从命名歧义看技术代号规范的重要性

项目标题为“AnyPS5”,但提供的输入内容中,项目正文、关键词、摘要描述等核心字段全部为空,相关热搜词与网络搜索内容也未给出实质性信息(仅显示空代码块)。在无任何有效上下文、领域指向、功能描述或技术线索的前提下…

2026/10/12 19:54:12 阅读更多 →
AI工具包设计指南:从Function Calling到WorkMate实战踩坑

AI工具包设计指南:从Function Calling到WorkMate实战踩坑

最近一直在折腾 WorkMate 这套内置工具包,越用越觉得,AI 这东西能不能真正“干活”,关键不在模型本身有多聪明,而在于你给它配没配齐一套趁手的工具。WorkMate 内置工具包解决的核心问题,就是让一个只会“说”的对话模…

2026/10/12 19:54:12 阅读更多 →
Anolis OS 23.4全面支持RVA23:RISC-V云原生落地的关键一步

Anolis OS 23.4全面支持RVA23:RISC-V云原生落地的关键一步

近两年尝试在RISC-V开发板上跑Linux的人,多半都有一种"什么都差一点"的体验:源码能编译,换块板子却要重新调参数;发行版有镜像,但包版本可能落后几个月;架构确实开放,每家芯片厂商却又…

2026/10/12 19:54:12 阅读更多 →
你清楚Skills和Rules吗:Cursor Agent 的 SKILL.md 与 Rules 配置拆解

你清楚Skills和Rules吗:Cursor Agent 的 SKILL.md 与 Rules 配置拆解

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

2026/10/12 19:54:12 阅读更多 →
拳打DeepSeek R1,比肩GPT-5,百度文心X1.1真有这么强?TaoToken实测智能体调用

拳打DeepSeek R1,比肩GPT-5,百度文心X1.1真有这么强?TaoToken实测智能体调用

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

2026/10/12 19:54:12 阅读更多 →
亲子沟通一谈就崩?用AI记录做家庭对话复盘:从情绪梳理到成长档案的实操指南

亲子沟通一谈就崩?用AI记录做家庭对话复盘:从情绪梳理到成长档案的实操指南

很多家长都有类似经历:本来想好好聊聊,结果三句话不到就变成催促、反驳、沉默。事后回想,只记得孩子摔门,却说不清矛盾到底从哪一句开始。亲子沟通的难,往往不在于没有爱,而在于情绪一上来,信息…

2026/10/12 19:53:12 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/12 0:16:30 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 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/11 10:45:37 阅读更多 →
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/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练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/12 18:11:17 阅读更多 →