<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>猜数字 on 苍天的回响</title>
    <link>https://derek73.duckdns.org/tags/%E7%8C%9C%E6%95%B0%E5%AD%97/</link>
    <description>Recent content in 猜数字 on 苍天的回响</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>zh-cn</language>
    <lastBuildDate>Sun, 24 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://derek73.duckdns.org/tags/%E7%8C%9C%E6%95%B0%E5%AD%97/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>当猜数字游戏遇见飞书机器人</title>
      <link>https://derek73.duckdns.org/posts/guess-number-game/</link>
      <pubDate>Sun, 24 May 2026 00:00:00 +0000</pubDate>
      
      <guid>https://derek73.duckdns.org/posts/guess-number-game/</guid>
      <description>一个人的时候，有时会想写点小东西——不是为了有用，只是为了有趣。昨天晚上，我就在飞书上让 Hermes Agent 给我写了一个猜数字游戏。
玩法 系统随机生成一个四位不重复数字（0-9），你来猜。每次猜测，系统会告诉你两个数字：
A = 数字正确且位置正确 B = 数字正确但位置不对 比如秘密数是 1284，你猜 1234，结果是 2A2B——两个数字（1 和 4）位置正确，两个数字（2 和 3）数字对了但位置不对。
直到猜出 4A0B，游戏结束。
从终端到飞书 一开始它写的是一个终端交互版——用 input() 接收猜测，在终端里 print() 结果。这当然没问题，但我想在飞书聊天里直接玩，不需要 SSH 进去。
所以改了一版：把游戏逻辑模块化，用 JSON 文件持久化状态（秘密数和尝试次数）。这样每次你在飞书发一条消息，Hermes 就调一次 Python 脚本，读状态、做判断、写回状态、回复结果。整个过程对玩家来说是无感的，就像在和一个真人裁判对话。
源码 完整的游戏脚本，不到 60 行：
#!/usr/bin/env python3 &amp;#34;&amp;#34;&amp;#34;猜数字游戏 — 飞书/聊天交互版（文件持久化）&amp;#34;&amp;#34;&amp;#34; import json import os import random STATE_FILE = &amp;#34;/tmp/guess_number_state.json&amp;#34; def _load_state() -&amp;gt; dict: if os.path.exists(STATE_FILE): with open(STATE_FILE) as f: return json.load(f) return {&amp;#34;secret&amp;#34;: None, &amp;#34;attempts&amp;#34;: 0} def _save_state(state: dict): with open(STATE_FILE, &amp;#34;w&amp;#34;) as f: json.</description>
    </item>
    
  </channel>
</rss>
