{"id":24888679,"url":"https://github.com/eesast/thuai8","last_synced_at":"2026-03-05T12:32:44.150Z","repository":{"id":252901166,"uuid":"841425484","full_name":"eesast/THUAI8","owner":"eesast","description":"清华大学第八届人工智能挑战赛电子系赛道（原电子系第 26 届队式程序设计大赛 teamstyle26） ","archived":false,"fork":false,"pushed_at":"2026-02-27T01:33:15.000Z","size":206803,"stargazers_count":17,"open_issues_count":13,"forks_count":21,"subscribers_count":1,"default_branch":"dev","last_synced_at":"2026-02-27T09:04:20.398Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eesast.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-08-12T11:36:22.000Z","updated_at":"2025-10-12T13:45:10.000Z","dependencies_parsed_at":"2024-08-18T13:42:56.995Z","dependency_job_id":"f27e00af-48c0-4533-b769-9fb77273e110","html_url":"https://github.com/eesast/THUAI8","commit_stats":null,"previous_names":["eesast/thuai8"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/eesast/THUAI8","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eesast%2FTHUAI8","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eesast%2FTHUAI8/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eesast%2FTHUAI8/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eesast%2FTHUAI8/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eesast","download_url":"https://codeload.github.com/eesast/THUAI8/tar.gz/refs/heads/dev","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eesast%2FTHUAI8/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30124481,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-05T11:11:57.947Z","status":"ssl_error","status_checked_at":"2026-03-05T11:11:29.001Z","response_time":93,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-02-01T16:14:33.627Z","updated_at":"2026-03-05T12:32:44.141Z","avatar_url":"https://github.com/eesast.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# THUAI8\n清华大学第八届人工智能挑战赛电子系赛道（原电子系第 26 届队式程序设计大赛 teamstyle26）\n\nGitee 镜像地址：[THUAI8: Gitee Mirror](https://gitee.com/eesast/THUAI8)\n\nGitLink 镜像地址：[THUAI8: GitLink Mirror](https://www.gitlink.org.cn/EESAST/THUAI8)\n\n## 赛题背景\n\n![thuai8](resource/interface.png)\n\n佛说：东土大唐“贪淫乐祸，多灾多杀”，是“口舌凶场，是非恶海”。须有一个诚心的取经人到我西天来取得真经，方得救赎。在观世音菩萨的挑选下，陈玄奘成为了天命所归的取经人，带领他的三个徒弟：孙悟空、猪八戒、沙悟净，以及作为脚力的白龙马，西行取经。然而，取经路途遍布艰险。传说吃一口唐僧肉便可得到长生，蛰伏于取经路上的各路妖怪蠢蠢欲动······\n\n## 比赛规则\n\nhttps://docs.eesast.com/docs/contests/THUAI8\n\n## 软件架构\n\n![structure](resource/structure_compressed.png)\n\n## 仓库说明\n\n### 配置说明\n\n本仓库使用 git 进行版本控制，为所有开发工作共用仓库，请勿上传不必要的文件。主目录文件结构非必要请勿修改，且主目录中已配置的 `.gitignore`、`.gitattributes` 文件非必要请勿修改；各子目录已预先包含使用 `Visual Studio` 开发的 `.gitignore` 模板，可以根据自身需要增加忽略规则；如有必要，可在子目录下自定义 `.gitattributes` 文件。\n\n### 目录分配\n\n|   子目录   |                               说明                               |           主要开发组           |\n| :--------: | :--------------------------------------------------------------: | :----------------------------: |\n|  .github   |              CI，用于选手包同步到服务器上供选手下载              |             运维组             |\n|    CAPI    |                     选手接口，生成可执行文件                     |             通信组             |\n|    docs    |                          比赛的说明文档                          | 逻辑组、通信组、运维组、界面组 |\n| dependency |    项目依赖文件，如 proto、dll、lib、dockerfile、shell 脚本等    | 逻辑组、通信组、运维组、界面组 |\n| installer  | 下载器兼启动器，用于选手包的下载与更新，生成可执行文件，启动游戏 |             运维组             |\n| interface  |                     简易调试界面，Unity 界面                     |             界面组             |\n|   logic    |                 游戏逻辑、Server，生成可执行文件                 |         通信组、逻辑组         |\n|  playback  |                      游戏回放组件，生成类库                      |             逻辑组             |\n|  resource  |          资源文件目录，用于存储主目录下 README 所用图片          |            端茶倒水            |\n\n### 分支管理\n\n- main：代码较稳定版本或阶段性成果，需要 2 reviewers，但由总负责人（端茶倒水）维护\n- dev：各开发者开发工作的最新进展，需要 1 reviewer\n\n## 开发规则\n\n### 关于社区开发者\n\n- 社区开发者开发工作请遵循 [THUAI8社区开发者贡献指南](./CONTRIBUTING.md)\n- 社区开发者贡献的代码请遵循 [Contributor Covenant Code of Conduct](./CODE_OF_CONDUCT.md)  \n\n### 开发流程\n\nTHUAI8 开发组成员与其他贡献者应当遵循以下流程：\n\n1. 将 `eesast/THUAI8` fork 到自己的仓库中\n2. 基于 `dev` 分支建立一个新的功能分支\n3. 在新的分支上进行修改与开发\n4. 向 `eesast/THUAI8` 的 `dev` 分支提出 pull request\n5. 等待其他开发组成员 review 与 merge\n\n### 使用 Git 与 Github 时的注意事项\n\n- 非必要请勿上传大文件到 Github\n\n- commit 提交信息请遵循 Semantic Commit 规范，即：`type: content `格式；**推荐使用 VS Code 提供的 Conventional Commits 插件进行格式化提交**。\n\n  常用的 commit message type 包括：\n\n  | Type     | Explanation                                    |\n  | -------- | ---------------------------------------------- |\n  | chore    | 日常代码开发；改变构建流程；增加依赖库、工具等 |\n  | fix      | 修复bug                                        |\n  | refactor | 改变代码结构，但没有增加新功能                 |\n  | docs     | 修改文档，如 README、CONTRIBUTE 等             |\n  | revert   | 版本回退                                       |\n  | ...      | ...                                            |\n\n- 鼓励开发组成员之间互相 review 并 merge 代码到 dev 分支上。merge 前建议简单检查其 pull request 是否符合上述规范  \n- 一般情况下，不要向 main 分支提出 pull request，更不要 merge 到 main 分支上  \n- 一般情况下，不允许 merge 无法通过 CI 的 pull request\n\n### 开发约定\n\n+ 统一使用空格缩进而非制表符缩进  \n+ 统一使用 4 个空格进行缩进而非 2 个  \n+ 统一使用 UTF-8 字符编码  \n\n## 代码风格\n\n本仓库严格规定了 `C++` 与 `CSharp` 代码风格，具体配置请参见 [.clang-format](.clang-format)\n\n### 风格说明\n\n几项重要规定如下：\n\n- 需严格按照要求缩进\n\n  ~~~csharp\n  namespace Exp\n  {\n      public class Program\n      {\n          public static void Main()\n          {            \n          }\n      }\n  }\n  ~~~\n\n- `if`、`while`等关键字后须加空格\n\n  ~~~csharp\n  while (1)\n  {\n      // code\n  }\n  ~~~\n\n- 大括号须换行书写\n\n  ~~~csharp\n  // Allowed\n  if (...)\n  {\n     // ... \n  }\n  \n  // Forbidden !!!\n  if (...) {\n      // ...\n  }\n  ~~~\n\n### 规范代码风格\n\n- C++ 语言请按照配置文件 [.clang-format](.clang-format) 对代码进行规范，C# 语言请按照 dotnet format 进行代码规范；可以使用脚本 [dependency/shell/format.sh](./dependency/shell/format.sh) 规范代码风格\n\n## 文档风格\n\n仓库的文档使用 Markdown 语法，具体语法可以参照 [Markdown 语法文档](https://docs.github.com/zh/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax)。\n\n中文文档的书写须严格遵循：[中文技术文档规范](https://github.com/ruanyf/document-style-guide)、[中文文案排版指北](https://mazhuang.org/wiki/chinese-copywriting-guidelines/)，以写出更美观的中文文档。例如：[中文文字与西文文字间空格](https://github.com/ruanyf/document-style-guide/blob/master/docs/text.md#%E5%AD%97%E9%97%B4%E8%B7%9D)、[全角标点符号的正确使用](https://github.com/ruanyf/document-style-guide/blob/master/docs/marks.md)，等等。\n\n西文文档的书写须遵循：\n\n+ 在 [中文技术文档规范](https://github.com/ruanyf/document-style-guide) 和 [中文文案排版指北](https://mazhuang.org/wiki/chinese-copywriting-guidelines/) 中规定的数字和西文的规范\n+ 半角空格的标点符号的使用：\n  + 半角的逗号 `,`、分号 `;`、句号 `.`、叹号 `!`、问号 `?` 等标点，在不位于行尾时，后需加空格，除非其后紧跟全角标点符号。例如：`\"Hello, world\"，是一句学习编程语言常用的句子`\n  + 半角的括号 `()`、`[]`、`{}`、`\u003c\u003e` 等在左半括号前加空格、右半括号后加空格，除非其空格处紧跟全角标点符号或位于行首或行尾。例如：`Tsinghua University (THU) and Peking University (PKU)（我是全角括号）`\n\n## 其他注意事项\n\n+ 文件的字符编码格式须统一使用 UTF-8 编码，并用 4 空格缩进，尤其是 C/C++：Visual Studio 创建 cpp 文件时默认使用 GB2312 编码、TAB 缩进，因此每创建一个文件都需要注意手动设置字符编码（当代码文件中出现中文时）和缩进方式  \n\n+ 使用等宽字体进行编程，例如 Source Code Pro、Consolas 等，便于对齐  \n\n+ 注意代码的整洁性与可读性  \n\n  + 代码风格尽量统一。书写不要过于紧凑，善于使用空格、缩进与换行来让代码看起来更整洁  \n\n  + 命名风格尽量统一。相同类别的命名规则要相同，例如类名统一使用大驼峰命名法或其他常用的命名法，但是不要混用（非必要不使用匈牙利命名法）  \n\n  + 命名应当通俗易懂，让阅读代码者能够通过命名理解变量、函数等的意义。除循环变量等可以使用 `i`、`j`、`k` 等单字母外，其他的命名应当明白如话，且谨慎使用缩写。尽量使用众人皆知的缩写，不要自创缩写。如果连自己都不知道的缩写或根本没有众人皆知的缩写，则应当坚持使用全称，命名可以适当加长。\n\n    常用的缩写有：  \n\n\n\n    \u003e address-addr、answer-ans、application-app、arguments-args、array-arr、assemble-asm、(a)synchronize-(a)sync、attribute-attr、begin-beg、bitmap-bmp、buffer-buf、button-btn、clock-clk、command-cmd、coordinates-coord、copy-cpy、count-cnt、current-cur、database-db、decrease-dec、default/define-def、delete-del、dependency-dep、destination-dest、device-dev、dialog-dlg、dictionary-dict、display-disp、divide-div、document-doc、educate-edu、equal-eq、error-err、extend-ext、format-fmt、frequency-freq、function-func、horizon-horz、image-img、implement-impl、increment-inc、index-idx、information-info、initialize-init、instance-inst、iterator-itr、length-len、list-lst、memory-mem、message-msg、middle-mid、number-num、object-obj、package-pkg、parameter-param、password-pwd、pointer-ptr、position-pos、previous-prev、receive-recv、reference-ref、resource/result-res、return-ret、second-sec、select-sel、semaphore-sem、signal-sig、source-src、stack-stk、standard-std、statistic/state-stat、string-str、system-sys、temporary-temp/tmp、text-txt、user-usr、value-val、variable-var、version-ver、vertical-vert、window-win  \n    \u003e\n    \u003e \n\n- 命名允许较长，但不应过于啰嗦冗余，能完整表明意图即可。\n- 代码应保证良好的可读性；**禁止**中学 OI 竞赛的各种“卡常”奇技淫巧！！！效率并非总是最重要的，良好的可读性与可维护性往往更加重要。\n- 熟练运用面向对象编程的思想，设计架构时尽可能降低模块与模块的耦合性，保证代码的可维护性\n  - 慎用全局变量、全局函数等\n  - 尽可能将各功能模块化，便于日后复用；尽可能降低类与类的耦合，善用继承与多态\n  - 适当设计单元测试，保证代码的正确运行\n\n- 注意跨平台问题，代码需保证同时支持 Windows 与 Linux，避免直接的系统调用带来的跨平台问题 \n- 注意维护开发文档，便于后来者快速了解本仓库代码结构\n- 小组内合理分工，避免个人任务量过重或过轻\n- 做好部会记录，及时完成工作任务，避免拖延到ddl\n- 各组间多交流，相互了解各自的开发进度，加强协作，遇到困难互相帮助。\n- 加油，奥里给  \n\n## 开发组成员\n\n- 逻辑组：郑墨杭、肖博文\n- 通信组：王一涵、陈骏毅\n- 界面组：王浩任、庞炜耀、桂昕\n- 运维组：许胜宏、姚政熙\n- 端茶倒水：韩志峰\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feesast%2Fthuai8","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feesast%2Fthuai8","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feesast%2Fthuai8/lists"}