拓冰建站拓冰建站
首页 / 资讯中心 / 正文

Mastering GitHub Copilot 实战:在 Codespaces 中用配对接手编程构建 Python 石头剪刀布小游戏

Mastering GitHub Copilot 实战在 Codespaces 中用配对接手编程构建 Python 石头剪刀布小游戏【免费下载链接】Mastering-GitHub-Copilot-for-Paired-ProgrammingA multi-module course teaching everything you need to know about using GitHub Copilot as an AI Peer Programming resource.项目地址: https://gitcode.com/GitHub_Trending/ma/Mastering-GitHub-Copilot-for-Paired-Programming本文是 Mastering GitHub Copilot for Paired Programming 课程中「Creating a Mini Game with GitHub Copilot」模块的完整实战指南。你将用约 1 小时以 GitHub Codespaces 为开发环境、以 GitHub Copilot 为 AI 配对接手编程伙伴采用注释驱动的提示工程方式从零构建一个可运行的 Python 石头剪刀布Rock, Paper, Scissors控制台小游戏。读完本文你将掌握提示驱动的增量开发流程、Python 控制台应用输入/输出流的搭建方法以及如何让 Copilot 生成、精炼并解释 Python 代码从而把它真正当作一位协作伙伴而非黑盒生成器。模块概览一次约 1 小时的配对接手编程挑战该模块是整个课程体系中的动手实践环节。课程根目录 README.md 将其定位为「Intermediate中级」模块核心目标是用 GitHub Copilot 辅助你完成一个 Python 迷你游戏并锻造能够从 GitHub Copilot 获得有用建议、融入游戏逻辑并持续改进 Python 游戏的提示词。模块原文档Creating-Mini-Game-with-GitHub-Copilot/README.md给出了如下关键信息项目说明面向人群开发者、DevOps 工程师、软件开发经理、测试人员学习内容使用 GitHub Copilot 生成、精炼并解释 Python 代码构建对象一个 Python 控制台版石头剪刀布小游戏前置条件拥有 GitHub Copilot 访问权限的 GitHub 账号预计时长约 1 小时完成本模块后你将能够使用 GitHub Codespaces 作为开发环境在 Python 控制台应用中搭建输入/输出流程把 GitHub Copilot 作为编码助手进行协作开发。整篇练习强调的不是让 AI 一口气交出完整程序而是小步快跑、逐步验收——这也是本模块想传递的核心工作方式把 Copilot 当作结对编程伙伴用清晰的注释表达意图审阅并修改它的每一次建议。前置准备启用 Copilot 服务与建议预习开始练习前你需要满足唯一一项硬性要求启用你的 GitHub Copilot 服务需要一个关联了有效 GitHub Copilot 订阅或试用资格的 GitHub 账号。原文档建议通过 GitHub 官方渠道完成服务开通后再进入练习否则 Copilot 不会在编辑器中产生任何建议。原文档还建议在开始前预习以下资料均为微软 Learn 平台的配套学习资源原文档附有对应链接此处仅转述其主题供你按需检索《Introduction to prompt engineering with GitHub Copilot》提示工程入门模块讲解如何写出能触发高质量建议的提示《Challenge project – Build a minigame with GitHub Copilot and Python》与本练习对应的挑战项目模块Learn Live 直播回放《Build a minigame console app with GitHub Copilot》作者实际动手演示构建本迷你游戏控制台应用的过程。如果时间有限直接进入下面的练习也没有问题——每个步骤都足够自包含。练习环境仓库为本模块预留了什么先看一下仓库中该模块的目录结构Creating-Mini-Game-with-GitHub-Copilot/README.md练习指南即本文依据的文档app.py游戏代码文件——在仓库中是空占位文件没有任何预置实现images/requirements.txt依赖清单文件——同样是空占位文件其余为CODE_OF_CONDUCT.md、LICENSE.md、SECURITY.md等社区与合规文件。这是一个值得注意的设计与课程中其他改造既有项目的模块例如 Using-GitHub-Copilot-with-Python/README.md 是在已有 Python 项目上迭代不同本模块刻意把app.py留空把从零写出全部代码的主动权完全交给学习者和 Copilot。同时空白的依赖文件也暗示本游戏不需要任何第三方库胜负判定、随机选择等逻辑仅依赖 Python 标准库中的random模块即可完成这降低了环境门槛让你把注意力集中在与 Copilot 的协作方式上。练习开始时通过仓库页面上的Open in GitHub Codespaces徽章按钮建议右键该按钮在新标签页中打开进入云开发环境即可获得一个预配置好 VS Code含 Python 支持与 GitHub Copilot 扩展的 Codespaces。Step 1验证 Codespace 与 Copilot 就绪Hello World 冒烟测试正式写游戏之前先用一个最小实验确认两件事都正常工作Codespaces 环境本身、以及 Copilot 的建议链路。操作如下打开本仓库对应的 Codespace在 VS Code 中新建一个名为app.py的文件。注意如果环境中尚未提供 Python 支持先安装 VS Code 的 Python 扩展在app.py中键入下面这行注释# write hello world to the console让 GitHub Copilot 给出实现建议你应当看到类似结果# write hello world to the console print(hello world)在终端中运行程序python app.py确认输出与下面一致hello world如果一切正常说明你的 Codespace 与 GitHub Copilot 都已就绪。这个冒烟测试的价值在于它用最少的代码同时验证了环境配置、Python 解释器、终端工作流以及 Copilot 的注释→代码补全能力为后面的正式开发排除了环境层面的不确定性。Step 2定义游戏规则与需求清单先想清楚再写代码动手之前先把游戏规则与功能需求明确下来——这也是与 AI 协作时的关键习惯先给 Copilot 一个清晰的问题定义。游戏规则每轮胜负判定如下石头Rock赢剪刀Scissors剪刀Scissors赢布Paper布Paper赢石头Rock游戏需求程序应当满足以下功能要求让计算机从rock、paper、scissors中随机选择要求玩家输入rock、paper或scissors在检查之前把玩家输入转换为小写玩家输入无效选项时给出警告每轮告知玩家是赢了、输了还是平局询问玩家是否继续下一轮游戏结束时显示玩家得分。可以看到需求清单刻意覆盖了输入、转换、校验、随机、比较、循环、计数、输出等 Python 控制台应用的典型要素。这些需求既是你写提示词的依据也是最后验收程序的标准。Step 3用注释分步引导 Copilot 增量构建与 Copilot 协作的一个高效模式是小步构建一次只提一个明确的小目标而不是一次性描述整个程序。原文档建议你按顺序添加下面这组注释来引导 Copilot# import the random module # define the valid options: rock, paper, scissors # ask the player to choose rock, paper, or scissors # convert the players input to lowercase # validate the players input and show an error message if it is invalid # randomly select rock, paper, or scissors for the computer # compare the player choice with the computer choice # print whether the player won, lost, or tied # ask the player if they want to play again # keep track of total rounds and total wins # print the final score when the game ends这 11 条注释实际上构成了一张任务拆解图每一条都对应需求清单中的一个功能点。逐条理解它们背后的实现要点有助于你在审查 Copilot 建议时判断质量导入与常量定义import random引入标准库options [rock, paper, scissors]集中管理合法选项后续校验与随机选择都复用它输入与规范化用input()读取玩家选择立即用.lower()转小写从而容忍Rock、ROCK等大小写变体校验与错误处理判断输入是否在options中不在则打印错误提示并让本回合不计入得分统计而不是让程序崩溃随机选择random.choice(options)让计算机公平地随机出拳胜负判定先判断平局双方相同再按规则表用if/elif判断玩家赢的三种组合其余情况为输循环与计数用while循环支撑再来一局两个计数器分别累计总局数与胜局数平局/无效输入如何计数由你与 Copilot 共同约定的逻辑决定收尾输出退出循环后打印最终比分例如Final score: 2 wins out of 2 rounds.。按照上述注释逐条驱动后把各部分拼接起来一个符合需求的参考实现大致如下注意仓库中的app.py是空占位文件以下代码是供你对照的参考示意最终代码应由你与 Copilot 协作产出import random # define the valid options: rock, paper, scissors options [rock, paper, scissors] # keep track of total rounds and total wins total_rounds 0 total_wins 0 while True: # ask the player to choose rock, paper, or scissors player input(Choose rock, paper, or scissors: ) # convert the players input to lowercase player player.lower() # validate the players input and show an error message if it is invalid if player not in options: print(Invalid option. Please choose rock, paper, or scissors.) continue # randomly select rock, paper, or scissors for the computer computer random.choice(options) print(fComputer chose: {computer}) # compare the player choice with the computer choice if player computer: print(Its a tie!) elif (player rock and computer scissors) or \ (player scissors and computer paper) or \ (player paper and computer rock): print(You win!) total_wins 1 else: print(You lose!) total_rounds 1 # ask the player if they want to play again play_again input(Play again? (y/n): ) if play_again.lower() ! y: break # print the final score when the game ends print(fFinal score: {total_wins} wins out of {total_rounds} rounds.)在整个过程中请务必仔细审查 Copilot 的每一次建议可以接受Tab 采纳、拒绝Esc 忽略也可以在采纳后继续编辑完善。Copilot 的建议质量取决于上下文质量——注释写得越具体、越贴近需求清单得到的实现就越可靠。Step 4参考交互流程验收程序行为的基线完成实现后你的程序运行效果应当与下面这个交互示例一致这也是原文档给出的行为基线Choose rock, paper, or scissors: rock Computer chose: scissors You win! Play again? (y/n): y Choose rock, paper, or scissors: screen Invalid option. Please choose rock, paper, or scissors. Choose rock, paper, or scissors: paper Computer chose: rock You win! Play again? (y/n): n Final score: 2 wins out of 2 rounds.逐段解读这个示例可以反推出程序必须具备的行为玩家输入rock后程序打印了计算机的选择scissors并正确判定赢——对应随机选择与胜负判定逻辑玩家输入screen时程序没有崩溃而是提示Invalid option. Please choose rock, paper, or scissors.并重新要求输入而非把这一轮计入得分——对应输入校验与错误处理逻辑玩家在提示Play again? (y/n):时输入n退出循环最终打印Final score: 2 wins out of 2 rounds.——对应循环控制与得分统计逻辑。Step 5运行与验证清单逐项验收用下面的命令运行游戏python app.py然后逐项确认你的程序是否做到了全部要求接受rock、paper、scissors作为合法输入拒绝screen这类无效输入在判定前将用户输入转换为小写为计算机随机选择出拳正确报告胜、负、平结果允许玩家连续进行多轮游戏结束时显示胜局数与总局数。这 7 项验证点与 Step 2 的需求清单一一对应形成需求 → 实现 → 验收的闭环。任一项不满足都可以回到 Step 3用更明确的注释或直接编辑代码来修正——这正是增量开发的好处问题总被限制在最近一步的小改动里容易定位。与 Copilot 协作的实用技巧原文档在练习末尾总结了五条与 Copilot 协作的通用技巧结合本次练习可作如下理解先写清晰的注释再请求建议注释是给 Copilot 的意图声明。# validate the players input and show an error message if it is invalid这样具体、可执行的注释远比处理错误更容易触发高质量建议一次只构建一个小功能把整个游戏拆成导入、校验、随机、判定、循环、计分等小步每步的建议都更聚焦、更易审查每次改动后都测试程序延续 Step 1 养成的习惯每完成一个小功能就运行一次python app.py及时发现问题按需编辑 Copilot 的建议而非全盘接受Copilot 是协作伙伴不是权威它给出的代码可能风格不合、逻辑有瑕疵或与你的需求有出入务必审阅并修改把 Copilot 当作协作者而不是自己思考的替代品规则表、需求清单、验证标准都出自你的设计Copilot 帮你加速实现但方案的正确性最终由你把关。小结与延伸恭喜你完成了本次挑战练习你从空白的app.py出发在 GitHub Codespaces 中用 GitHub Copilot 以注释驱动、增量构建的方式完成了一个功能完整的石头剪刀布控制台小游戏并掌握了规划需求清单→ 生成注释提示→ 精炼审查与编辑→ 验证运行与清单验收的迭代式开发流程。这套清晰注释 小步构建 及时测试的方法可以无缝迁移到你日常的 Python 乃至其他语言的开发工作中。如果你希望继续深化对 Copilot 的使用本课程还提供了大量进阶模块可以衔接若想学习如何在真实 Python 项目中使用 Copilot 的 Agent 模式进行迭代改进可继续阅读 Using-GitHub-Copilot-with-Python/README.md若想系统学习编写高质量提示词的技巧可回看 Getting-Started-with-GitHub-Copilot/README.md若想挑战更复杂的场景可尝试 Challenging-GitHub-Copilot-with-SQL/README.md 与 Upgrading-Legacy-Projects/README.md 等高级模块。从让 Copilot 写一段代码到与 Copilot 一起完成一个程序这正是本次迷你游戏练习想要传达的配对接手编程之道。【免费下载链接】Mastering-GitHub-Copilot-for-Paired-ProgrammingA multi-module course teaching everything you need to know about using GitHub Copilot as an AI Peer Programming resource.项目地址: https://gitcode.com/GitHub_Trending/ma/Mastering-GitHub-Copilot-for-Paired-Programming创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门