首页 › tutorials › 零基础用Claude Code造命令行游戏

Claude Code 入门篇:零基础从安装到造出第一个命令行游戏

概述

本教程面向从未接触过 Claude Code、甚至命令行经验也很少的零基础读者。你将用大约 1 小时时间走完一条最短路径:在终端里装好 Claude Code,完成首次登录认证,理解交互式对话(REPL)的运作方式,掌握 /init、/clear、/help 等核心斜杠命令,并以一个命令行猜数字游戏为载体,学会如何用自然语言驱动 Claude Code 写代码、加功能、修 Bug。学完之后,你不仅拥有一个能跑的小作品,更掌握了"和 AI 结对编程"的基本工作流,可以举一反三地开发任意小工具。

前置条件

本文以 2026 年 Claude Code 最新版的官方安装流程为准,使用全局 npm 安装方式。


第 0 步:先搞清楚 Claude Code 到底是什么

很多人第一次接触,会把它误认为"网页版聊天框搬进终端"。这是最大的误解。

Claude Code 是一个驻留在你终端里的智能体编程助手(Agentic Coding Tool):它不仅能听懂自然语言、生成代码,还能自主读取文件、执行命令、创建和修改代码、运行测试。换句话说,你给它一个目标,它会像真人程序员一样在项目里动手干活,干完再向你汇报。

理解这一点的关键,是三个词:

概念 通俗解释 为什么重要
REPL(交互式循环) 你说一句、它做一段、再说一句……循环往复 决定了你如何"驾驶"它
工具调用(Tools) 读文件、写文件、跑 Bash 命令等"手脚" 让它真正能动你的项目
上下文(Context) 它当前能"看到"的对话与文件内容 用不好会导致它"健忘"或"跑偏"

记住一句话:你不是在问问题,而是在带一个会写代码的实习生。 你给方向、给反馈、给确认,它负责动手。这套心智模型,是后面所有操作的地基。


第 1 步:环境准备——装好 Node.js

Claude Code 本身是一个用 Node.js 写的命令行程序,所以先得有 Node.js 运行环境。官方要求 Node.js 18.0 或更高版本。

操作说明:

打开终端,输入:

node --version

预期结果:

安装方式(按平台选一种):

常见问题:


第 2 步:安装 Claude Code

Node.js 就绪后,安装 Claude Code 只需一条命令。

操作说明:

npm install -g @anthropic-ai/claude-code

-g 表示"全局安装",装完后你在任何目录都能直接敲 claude 启动它。官方包名固定为 @anthropic-ai/claude-code。

预期结果:

终端会滚动输出下载与解包日志,最后看到类似 added 1 package in 12s 即成功。验证一下:

claude --version

能打印出版本号(例如 2.x.x)就说明装好了。

常见问题:


第 3 步:首次启动与认证

操作说明:

在任意目录(建议新建一个练习目录)输入:

claude

首次启动会进入认证流程,两种主流方式:

  1. 官方订阅登录(推荐新手):终端会出现一个网址和一段验证码,用浏览器打开、粘贴验证码、用你的 Claude 账号确认即可。全程不用碰 API Key。
  2. API Key 方式:如果你使用的是 Anthropic API 密钥(或第三方兼容服务),可设环境变量: bash export ANTHROPIC_API_KEY="sk-ant-xxxxxxxx" 然后再敲 claude。

预期结果:

认证成功后,你会进入一个交互界面,底部出现输入提示符 >,光标闪烁,等待你输入。此时它已"上线",可以开始对话。

常见问题:


第 4 步:认识交互界面与必备斜杠命令

进入界面后,先别急着写代码。Claude Code 内置了一批斜杠命令(Slash Commands),是高效驾驶它的"方向盘"。在输入框敲 / 会弹出候选列表,新手务必掌握这 5 个:

命令 作用 何时用
/help 查看所有命令与用法 随时,忘了就查
/init 扫描项目并生成 CLAUDE.md 记忆文件 进入新项目时用一次
/clear 清空当前对话上下文 切换到不相关的新任务时
/model 查看/切换使用的模型 想换更快或更强的模型时
/compact 压缩历史对话,保留要点 对话很长、想"省着用"上下文时

操作说明:

先敲 /help 浏览一遍,再敲 /model 看看你当前用的是什么模型。

预期结果:

/help 会列出全部命令;/model 会显示当前模型名(如 Opus / Sonnet 系列)并提供切换选项。

常见问题:


第 5 步:创建你的第一个项目

操作说明:

退出当前会话(按 Ctrl+C 两次,或输入 /exit),在终端执行:

mkdir guess-game       # 创建项目文件夹
cd guess-game          # 进入它
claude                 # 在项目目录里再次启动

关键点:一定要 cd 进项目目录再启动 claude,因为 Claude Code 默认只能"看见"当前目录及其子目录的文件。

预期结果:

界面顶部会显示当前工作目录(如 ~/guess-game),底部又是那个等待输入的提示符。

常见问题:


第 6 步:用一句话让它造出游戏 v1

现在是见证奇迹的时刻。在提示符里输入下面这段自然语言需求(直接用中文):

请用 Python 帮我写一个命令行猜数字游戏:程序随机生成一个 1 到 100 的整数,让我反复猜,每次提示"大了"或"小了",猜中就恭喜我并显示总共猜了几次。

操作说明:

回车发送。Claude Code 会:① 创建 game.py;② 写入完整代码;③ 把代码打印给你看;④ 可能还会主动提议"要不要我帮你跑一下"。

预期结果:

你会看到它调用写文件工具,新建了一个 guess-game/game.py。批准它运行后,它会在终端里直接启动游戏,让你输入猜测。

常见问题:


第 7 步:在对话里迭代加功能(这才是关键)

真实开发不是一次性写完,而是一轮轮加功能、改需求。Claude Code 的强项正是这种"对话式迭代"。不要重写,直接接着提新需求:

请帮我加三个功能:
1. 游戏开始前让玩家选择难度:简单(1-50, 10次机会)、普通(1-100, 7次)、困难(1-500, 5次)。
2. 用尽机会还没猜中,要告诉玩家正确答案并显示"游戏结束"。
3. 把每次的成绩(难度、用时次数、是否胜利)追加保存到 scores.json 文件里。

操作说明:

直接发送。它会读取现有的 game.py,理解结构,然后只改动需要改的部分,而不是推倒重来。

预期结果:

game.py 被更新,新增了难度菜单、失败提示、以及一个写 scores.json 的小函数。scores.json 在你玩一局之后会自动生成,内容形如:

[
  {"difficulty": "普通", "attempts": 5, "won": true, "answer": 73}
]

常见问题:


第 8 步:让它自己跑测试和修 Bug

让 Claude Code 帮你把质量兜底。接着说:

请给这个游戏写几个简单的测试,验证"难度参数正确"和"猜中后能正常结束",
然后用 python 跑一下测试,把结果告诉我。

操作说明:

它会创建 test_game.py,用 unittest 或 pytest 写测试,并主动执行。

预期结果:

终端输出类似 Ran 3 tests in 0.01s ... OK。如果某条测试失败,它会分析原因并尝试修复源码——这一步展示了"AI 自主排错"的完整闭环:写测试 → 跑测试 → 失败 → 改代码 → 再跑,循环直到通过。

常见问题:


第 9 步:用 /init 固化项目记忆

项目渐渐成型,是时候让 Claude Code"记住"这个项目的约定了。输入:

/init

操作说明:

它会扫描 guess-game 目录,生成一份 CLAUDE.md 文件,里面自动记录:项目是做什么的、用什么语言、怎么运行、有什么约定。

预期结果:

目录下多出一个 CLAUDE.md。今后每次在这个目录启动 claude,它会先读这个文件,立刻"进入状态"。你可以在里面手动补充,例如:

## 项目约定
- 单文件即可,所有逻辑放 game.py
- 中文交互提示
- 成绩统一存 scores.json

常见问题:


实战案例:完整可运行的命令行游戏

以下是经过上述迭代后,Claude Code 帮你产出的完整 game.py(Python 标准库实现,零依赖,可直接 python game.py 运行):

import json
import os
import random

SCORES_FILE = "scores.json"
DIFFICULTIES = {
    "1": ("简单", 1, 50, 10),
    "2": ("普通", 1, 100, 7),
    "3": ("困难", 1, 500, 5),
}


def choose_difficulty():
    print("请选择难度:")
    for key, (name, lo, hi, chances) in DIFFICULTIES.items():
        print(f"  {key}. {name}(范围 {lo}-{hi},{chances} 次机会)")
    while True:
        choice = input("输入编号: ").strip()
        if choice in DIFFICULTIES:
            return DIFFICULTIES[choice]
        print("输入有误,请重新选择。")


def save_score(difficulty, attempts, won, answer):
    record = {
        "difficulty": difficulty,
        "attempts": attempts,
        "won": won,
        "answer": answer,
    }
    data = []
    if os.path.exists(SCORES_FILE):
        with open(SCORES_FILE, "r", encoding="utf-8") as f:
            try:
                data = json.load(f)
            except json.JSONDecodeError:
                data = []
    data.append(record)
    with open(SCORES_FILE, "w", encoding="utf-8") as f:
        json.dump(data, f, ensure_ascii=False, indent=2)


def play_once():
    name, lo, hi, chances = choose_difficulty()
    answer = random.randint(lo, hi)
    print(f"\n我已想好一个 {lo} 到 {hi} 之间的整数,你有 {chances} 次机会。\n")

    for i in range(1, chances + 1):
        guess = input(f"第 {i}/{chances} 次猜测: ").strip()
        try:
            guess = int(guess)
        except ValueError:
            print("请输入一个整数。")
            continue
        if guess == answer:
            print(f"🎉 恭喜!你用了 {i} 次猜中。")
            save_score(name, i, True, answer)
            return
        print("大了!" if guess > answer else "小了!")

    print(f"💥 游戏结束,正确答案是 {answer}。")
    save_score(name, chances, False, answer)


def main():
    print("===== 猜数字游戏 =====")
    while True:
        play_once()
        again = input("\n再来一局?(y/n): ").strip().lower()
        if again != "y":
            print("再见!")
            break


if __name__ == "__main__":
    main()

跑起来后的交互长这样:

===== 猜数字游戏 =====
请选择难度:
  1. 简单(范围 1-50,10 次机会)
  2. 普通(范围 1-100,7 次机会)
  3. 困难(范围 1-500,5 次机会)
输入编号: 2

我已想好一个 1 到 100 之间的整数,你有 7 次机会。

第 1/7 次猜测: 50
小了!
第 2/7 次猜测: 75
大了!
...

进阶留给你和 Claude Code 一起玩:让它加"历史最高分(最少次数)排行榜"、加"颜色高亮"、加"通关后自动提升下一局难度"。每加一个功能,你对这套工作流就更熟一分。


工作流程图

flowchart TD
    A[第1步: 装 Node.js ≥18] --> B[第2步: npm install -g<br/>@anthropic-ai/claude-code]
    B --> C[第3步: claude 首次认证<br/>订阅登录 或 API Key]
    C --> D[第4步: /help /model<br/>熟悉斜杠命令]
    D --> E[第5步: mkdir + cd<br/>在项目目录启动 claude]
    E --> F[第6步: 自然语言提需求<br/>生成 game.py v1]
    F --> G{能跑吗?}
    G -->|否| H[第8步: 贴报错<br/>让它修 Bug]
    H --> F
    G -->|是| I[第7步: 对话式迭代<br/>加难度/计分/存档]
    I --> J[第8步: 写测试+自跑<br/>质量兜底]
    J --> K[第9步: /init 生成<br/>CLAUDE.md 项目记忆]
    K --> L[✅ 拿到可运行作品<br/>+掌握完整工作流]

延伸阅读


训练营适用性评估


参考来源

  1. Quickstart - Claude Code Docs — 官方快速上手指南,本文安装与首次启动流程的主要依据
  2. Advanced setup - Claude Code Docs — 系统要求、Node 版本、多平台安装与版本管理
  3. @anthropic-ai/claude-code - npm — 官方安装包名与版本信息确认
  4. anthropics/claude-code - GitHub — 官方仓库,Release notes 与工具能力说明
  5. Claude Code 安装与配置(详细教程)- CSDN — 中文社区教程,补充国内网络与认证方式的实践细节

[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。

51学通信知识星球海报-扫码加入