Files
fzu-product/.vitepress/dist/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.6.7.增大距离.html

331 lines
199 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="en-US" dir="ltr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>7.增大距离 | FZU-WIKI</title>
<meta name="description" content="FZU生存手册">
<meta name="generator" content="VitePress v1.3.2">
<link rel="preload stylesheet" href="/assets/style.B9ehgNx8.css" as="style">
<script type="module" src="/assets/app.WaHUZV8M.js"></script>
<link rel="preload" href="/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
<link rel="modulepreload" href="/assets/chunks/theme.C2uBsot4.js">
<link rel="modulepreload" href="/assets/chunks/framework.DtvhUNIn.js">
<link rel="modulepreload" href="/assets/技术资源汇总(杭电支持版)_3.编程思维体系构建_3.4.6.7.增大距离.md.cJuj5FdO.lean.js">
<script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
<script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
</head>
<body>
<div id="app"><div class="Layout" data-v-d8b57b2d><!--[--><!--]--><!--[--><span tabindex="-1" data-v-c8291ffa></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-c8291ffa> Skip to content </a><!--]--><!----><header class="VPNav" data-v-d8b57b2d data-v-7ad780c2><div class="VPNavBar has-sidebar top" data-v-7ad780c2 data-v-9fd4d1dd><div class="wrapper" data-v-9fd4d1dd><div class="container" data-v-9fd4d1dd><div class="title" data-v-9fd4d1dd><div class="VPNavBarTitle has-sidebar" data-v-9fd4d1dd data-v-0ad69264><a class="title" href="/" data-v-0ad69264><!--[--><!--]--><!----><span data-v-0ad69264>FZU-WIKI</span><!--[--><!--]--></a></div></div><div class="content" data-v-9fd4d1dd><div class="content-body" data-v-9fd4d1dd><!--[--><!--]--><div class="VPNavBarSearch search" data-v-9fd4d1dd><!--[--><!----><div id="local-search"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><span class="vp-icon DocSearch-Search-Icon"></span><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"><kbd class="DocSearch-Button-Key"></kbd><kbd class="DocSearch-Button-Key">K</kbd></span></button></div><!--]--></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-9fd4d1dd data-v-afb2845e><span id="main-nav-aria-label" class="visually-hidden" data-v-afb2845e> Main Navigation </span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/" tabindex="0" data-v-afb2845e data-v-08fbf4b6><!--[--><span data-v-08fbf4b6>首页</span><!--]--></a><!--]--><!--[--><div class="VPFlyout VPNavBarMenuGroup" data-v-afb2845e data-v-af5898d3><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-af5898d3><span class="text" data-v-af5898d3><!----><span data-v-af5898d3>章节</span><span class="vpi-chevron-down text-icon" data-v-af5898d3></span></span></button><div class="menu" data-v-af5898d3><div class="VPMenu" data-v-af5898d3 data-v-20ed86d6><div class="items" data-v-20ed86d6><!--[--><!--[--><div class="VPMenuLink" data-v-20ed86d6 data-v-f51f088d><a class="VPLink link" href="/技术资源汇总(杭电支持版)/" data-v-f51f088d><!--[-->1. 前言<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-20ed86d6 data-v-f51f088d><a class="VPLink link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/2.%E9%AB%98%E6%95%88%E5%AD%A6%E4%B9%A0/2.%E9%AB%98%E6%95%88%E5%AD%A6%E4%B9%A0.html" data-v-f51f088d><!--[-->2. 高效学习<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-20ed86d6 data-v-f51f088d><a class="VPLink link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA.html" data-v-f51f088d><!--[-->3. 编程思维体系构建<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-20ed86d6 data-v-f51f088d><a class="VPLink link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/4.%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/4.%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD.html" data-v-f51f088d><!--[-->4. 人工智能<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-20ed86d6 data-v-f51f088d><a class="VPLink link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/5.%E5%AF%8C%E6%9C%89%E7%94%9F%E5%91%BD%E7%9A%84%E5%B5%8C%E5%85%A5%E5%BC%8F/5.%E5%AF%8C%E6%9C%89%E7%94%9F%E5%91%BD%E7%9A%84%E5%B5%8C%E5%85%A5%E5%BC%8F.html" data-v-f51f088d><!--[-->5. 富有生命的嵌入式<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-20ed86d6 data-v-f51f088d><a class="VPLink link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/6.%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%AE%89%E5%85%A8/6.%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%AE%89%E5%85%A8.html" data-v-f51f088d><!--[-->6. 计算机安全<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-20ed86d6 data-v-f51f088d><a class="VPLink link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/7.%E7%BD%91%E7%BB%9C%E5%BA%94%E7%94%A8%E5%BC%80%E5%8F%91/7.%E7%BD%91%E7%BB%9C%E5%BA%94%E7%94%A8%E5%BC%80%E5%8F%91.html" data-v-f51f088d><!--[-->7. 网络应用开发<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-20ed86d6 data-v-f51f088d><a class="VPLink link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/8.%E5%9F%BA%E7%A1%80%E5%AD%A6%E7%A7%91/8.%E5%9F%BA%E7%A1%80%E5%AD%A6%E7%A7%91.html" data-v-f51f088d><!--[-->8. 基础学科<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-20ed86d6 data-v-f51f088d><a class="VPLink link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/9.%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/9.%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C.html" data-v-f51f088d><!--[-->9. 计算机网络<!--]--></a></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-9fd4d1dd data-v-3f90c1a5><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="Switch to dark theme" aria-checked="false" data-v-3f90c1a5 data-v-be9742d9 data-v-b4ccac88><span class="check" data-v-b4ccac88><span class="icon" data-v-b4ccac88><!--[--><span class="vpi-sun sun" data-v-be9742d9></span><span class="vpi-moon moon" data-v-be9742d9></span><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-9fd4d1dd data-v-ef6192dc data-v-e71e869c><!--[--><a class="VPSocialLink no-icon" href="https://gitea.xinxijishubu.asia/moyin/fzu-product" aria-label="github" target="_blank" rel="noopener" data-v-e71e869c data-v-358b6670><span class="vpi-social-github" /></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-9fd4d1dd data-v-f953d92f data-v-af5898d3><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-af5898d3><span class="vpi-more-horizontal icon" data-v-af5898d3></span></button><div class="menu" data-v-af5898d3><div class="VPMenu" data-v-af5898d3 data-v-20ed86d6><!----><!--[--><!--[--><!----><div class="group" data-v-f953d92f><div class="item appearance" data-v-f953d92f><p class="label" data-v-f953d92f>Appearance</p><div class="appearance-action" data-v-f953d92f><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="Switch to dark theme" aria-checked="false" data-v-f953d92f data-v-be9742d9 data-v-b4ccac88><span class="check" data-v-b4ccac88><span class="icon" data-v-b4ccac88><!--[--><span class="vpi-sun sun" data-v-be9742d9></span><span class="vpi-moon moon" data-v-be9742d9></span><!--]--></span></span></button></div></div></div><div class="group" data-v-f953d92f><div class="item social-links" data-v-f953d92f><div class="VPSocialLinks social-links-list" data-v-f953d92f data-v-e71e869c><!--[--><a class="VPSocialLink no-icon" href="https://gitea.xinxijishubu.asia/moyin/fzu-product" aria-label="github" target="_blank" rel="noopener" data-v-e71e869c data-v-358b6670><span class="vpi-social-github" /></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-9fd4d1dd data-v-6bee1efd><span class="container" data-v-6bee1efd><span class="top" data-v-6bee1efd></span><span class="middle" data-v-6bee1efd></span><span class="bottom" data-v-6bee1efd></span></span></button></div></div></div></div><div class="divider" data-v-9fd4d1dd><div class="divider-line" data-v-9fd4d1dd></div></div></div><!----></header><div class="VPLocalNav has-sidebar empty" data-v-d8b57b2d data-v-2488c25a><div class="container" data-v-2488c25a><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-2488c25a><span class="vpi-align-left menu-icon" data-v-2488c25a></span><span class="menu-text" data-v-2488c25a>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-2488c25a data-v-883964e0><button data-v-883964e0>Return to top</button><!----></div></div></div><aside class="VPSidebar" data-v-d8b57b2d data-v-42c4c606><div class="curtain" data-v-42c4c606></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-42c4c606><span class="visually-hidden" id="sidebar-aria-label" data-v-42c4c606> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="no-transition group" data-v-51288d80><section class="VPSidebarItem level-0" data-v-51288d80 data-v-edd2eed8><!----><div class="items" data-v-edd2eed8><!--[--><div class="VPSidebarItem level-1 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/%E5%86%85%E5%AE%B9%E7%B4%A2%E5%BC%95.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>返回上一层</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-51288d80><section class="VPSidebarItem level-0 collapsible has-active" data-v-51288d80 data-v-edd2eed8><div class="item" role="button" tabindex="0" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><h2 class="text" data-v-edd2eed8>3.编程思维体系构建</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-edd2eed8><span class="vpi-chevron-right caret-icon" data-v-edd2eed8></span></div></div><div class="items" data-v-edd2eed8><!--[--><div class="VPSidebarItem level-1 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.编程思维体系构建</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.0%20%E7%BC%96%E7%A8%8B%E5%85%A5%E9%97%A8%E4%B9%8B%E9%81%93.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.0 编程入门之道</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.1%E8%AF%A5%E4%BD%BF%E7%94%A8%E5%93%AA%E4%B8%AA%E7%BC%96%E8%BE%91%E5%99%A8%EF%BC%9F%EF%BC%9F%EF%BC%9F.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.1该使用哪个编辑器???</p><!--]--></a><!----></div><!----></div><section class="VPSidebarItem level-1 collapsible collapsed" data-v-edd2eed8 data-v-edd2eed8><div class="item" role="button" tabindex="0" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><h3 class="text" data-v-edd2eed8>3.2算法杂谈</h3><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-edd2eed8><span class="vpi-chevron-right caret-icon" data-v-edd2eed8></span></div></div><div class="items" data-v-edd2eed8><!--[--><div class="VPSidebarItem level-2 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.2%E7%AE%97%E6%B3%95%E6%9D%82%E8%B0%88.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.2算法杂谈</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.2.1%E6%89%8B%E6%8A%8A%E6%89%8B%E6%95%99%E4%BD%A0%E5%AD%A6%E7%AE%97%E6%B3%95%E2%80%94%E2%80%94%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8OJ%EF%BC%88Online%20Judge%EF%BC%89.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.2.1手把手教你学算法——如何使用OJOnline Judge</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.2.2ACM%20%E7%AB%9E%E8%B5%9B%E4%BB%8E%E5%85%A5%E9%97%A8%E5%88%B0%E5%85%A5%E5%9D%9F.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.2.2ACM 竞赛从入门到入坟</p><!--]--></a><!----></div><!----></div><!--]--></div></section><div class="VPSidebarItem level-1 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.3%E5%A6%82%E4%BD%95%E9%80%89%E6%8B%A9%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.3如何选择编程语言</p><!--]--></a><!----></div><!----></div><section class="VPSidebarItem level-1 collapsible has-active" data-v-edd2eed8 data-v-edd2eed8><div class="item" role="button" tabindex="0" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><h3 class="text" data-v-edd2eed8>3.4C语言</h3><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-edd2eed8><span class="vpi-chevron-right caret-icon" data-v-edd2eed8></span></div></div><div class="items" data-v-edd2eed8><!--[--><div class="VPSidebarItem level-2 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.4C%E8%AF%AD%E8%A8%80.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.4C语言</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.4.1FAQ%EF%BC%9A%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.4.1FAQ:常见问题</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.4.2%E7%94%A8%E4%BB%80%E4%B9%88%E5%86%99%20C%20%E8%AF%AD%E8%A8%80.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.4.2用什么写 C 语言</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.4.3%E8%A7%A3%E5%86%B3%E7%BC%96%E7%A8%8B%E9%97%AE%E9%A2%98%E7%9A%84%E6%99%AE%E9%80%82%E6%80%A7%E8%BF%87%E7%A8%8B.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.4.3解决编程问题的普适性过程</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.4.4C%E8%AF%AD%E8%A8%80%E5%89%8D%E7%BD%AE%E6%A6%82%E5%BF%B5%E5%AD%A6%E4%B9%A0.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.4.4C语言前置概念学习</p><!--]--></a><!----></div><!----></div><section class="VPSidebarItem level-2 collapsible collapsed" data-v-edd2eed8 data-v-edd2eed8><div class="item" role="button" tabindex="0" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><h4 class="text" data-v-edd2eed8>3.4.5阶段一:编程属性</h4><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-edd2eed8><span class="vpi-chevron-right caret-icon" data-v-edd2eed8></span></div></div><div class="items" data-v-edd2eed8><!--[--><div class="VPSidebarItem level-3 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.4.5%E9%98%B6%E6%AE%B5%E4%B8%80%EF%BC%9A%E7%BC%96%E7%A8%8B%E5%B1%9E%E6%80%A7.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.4.5阶段一:编程属性</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.4.5.1C%E8%AF%AD%E8%A8%80%E8%87%AA%E6%B5%8B%E6%A0%87%E5%87%86%E2%80%94%E2%80%94%E9%93%BE%E8%A1%A8.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.4.5.1C语言自测标准——链表</p><!--]--></a><!----></div><!----></div><!--]--></div></section><section class="VPSidebarItem level-2 collapsible has-active" data-v-edd2eed8 data-v-edd2eed8><div class="item" role="button" tabindex="0" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><h4 class="text" data-v-edd2eed8>3.4.6阶段二文字冒险cool</h4><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-edd2eed8><span class="vpi-chevron-right caret-icon" data-v-edd2eed8></span></div></div><div class="items" data-v-edd2eed8><!--[--><div class="VPSidebarItem level-3 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.4.6%E9%98%B6%E6%AE%B5%E4%BA%8C%EF%BC%9A%E6%96%87%E5%AD%97%E5%86%92%E9%99%A9%EF%BC%88cool%EF%BC%89.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.4.6阶段二文字冒险cool</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.4.6.1.%E5%BC%80%E5%A7%8B%E5%86%92%E9%99%A9.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.4.6.1.开始冒险</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.4.6.2.%E6%8E%A2%E7%B4%A2%E6%9C%AA%E7%9F%A5.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.4.6.2.探索未知</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.4.6.3.%E6%8C%87%E6%98%8E%E5%9C%B0%E7%82%B9.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.4.6.3.指明地点</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.4.6.4.%E5%88%9B%E5%BB%BA%E5%AF%B9%E8%B1%A1.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.4.6.4.创建对象</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.4.6.5.%E6%8D%A1%E8%B5%B7%E7%89%A9%E5%93%81.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.4.6.5.捡起物品</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.4.6.6.%E7%BB%98%E5%88%B6%E5%9C%B0%E5%9B%BE.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.4.6.6.绘制地图</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.4.6.7.%E5%A2%9E%E5%A4%A7%E8%B7%9D%E7%A6%BB.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.4.6.7.增大距离</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.4.6.8.%E7%A7%BB%E5%8A%A8%E6%96%B9%E5%90%91.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.4.6.8.移动方向</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.4.6.9.%E7%BB%83%E4%B9%A0%EF%BC%9A%E7%94%9F%E6%88%90%E4%BB%A3%E7%A0%81.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.4.6.9.练习:生成代码</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.4.6.10.%E5%A2%9E%E6%B7%BB%E5%B1%9E%E6%80%A7.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.4.6.10.增添属性</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.4.6.11.%E8%AE%BE%E7%BD%AE%E6%9D%A1%E4%BB%B6.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.4.6.11.设置条件</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.4.6.12.%E5%BC%80%E5%90%AF%E5%85%B3%E9%97%AD.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.4.6.12.开启关闭</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.4.6.13.%E7%BC%96%E5%86%99%E8%A7%A3%E6%9E%90%E5%99%A8.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.4.6.13.编写解析器</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.4.6.14.%E4%B8%B0%E5%AF%8C%E5%91%BD%E4%BB%A4.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.4.6.14.丰富命令</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.4.6.15.%E8%B5%8B%E4%BA%88%E6%98%8E%E6%9A%97.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.4.6.15.赋予明暗</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.4.6.16.%E7%BB%93%E8%AF%AD%EF%BC%9A%E4%BD%A0%E7%BB%88%E5%B0%86%E8%87%AA%E7%94%B1.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.4.6.16.结语:你终将自由</p><!--]--></a><!----></div><!----></div><!--]--></div></section><section class="VPSidebarItem level-2 collapsible collapsed" data-v-edd2eed8 data-v-edd2eed8><div class="item" role="button" tabindex="0" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><h4 class="text" data-v-edd2eed8>3.4.7C基础知识杂谈</h4><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-edd2eed8><span class="vpi-chevron-right caret-icon" data-v-edd2eed8></span></div></div><div class="items" data-v-edd2eed8><!--[--><div class="VPSidebarItem level-3 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.4.7C%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86%E6%9D%82%E8%B0%88.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.4.7C基础知识杂谈</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.4.7.1GDB%E5%88%9D%E6%8E%A2%E7%B4%A2%EF%BC%88%E7%BC%96%E7%A8%8B%E5%8F%AF%E9%98%85%E8%A7%88%EF%BC%89.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.4.7.1GDB初探索(编程可阅览)</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.4.7.1.1%E8%B0%83%E8%AF%95%E7%90%86%E8%AE%BA.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.4.7.1.1调试理论</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.4.7.2C%E7%9A%84%E5%8E%86%E5%8F%B2%E9%97%AE%E9%A2%98%EF%BC%9Aundefined%20behavior.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.4.7.2C的历史问题undefined behavior</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.4.7.3C%E7%BC%96%E8%AF%91%E5%99%A8%E5%B9%B2%E4%BA%86%E4%BB%80%E4%B9%88.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.4.7.3C编译器干了什么</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.4.7.4Inline%20Assembly%E4%B8%8E%E9%93%BE%E6%8E%A5%E5%8A%A0%E8%BD%BD.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.4.7.4Inline Assembly与链接加载</p><!--]--></a><!----></div><!----></div><!--]--></div></section><!--]--></div></section><div class="VPSidebarItem level-1 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.5git%E4%B8%8Egithub.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.5git与github</p><!--]--></a><!----></div><!----></div><section class="VPSidebarItem level-1 collapsible collapsed" data-v-edd2eed8 data-v-edd2eed8><div class="item" role="button" tabindex="0" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><h3 class="text" data-v-edd2eed8>3.6Python(灵巧的胶水)</h3><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-edd2eed8><span class="vpi-chevron-right caret-icon" data-v-edd2eed8></span></div></div><div class="items" data-v-edd2eed8><!--[--><div class="VPSidebarItem level-2 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.6Python%EF%BC%88%E7%81%B5%E5%B7%A7%E7%9A%84%E8%83%B6%E6%B0%B4%EF%BC%89.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.6Python(灵巧的胶水)</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.6.1%E4%BB%8ECS61A%E7%9C%8B%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80%E5%AD%A6%E4%B9%A0.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.6.1从CS61A看编程语言学习</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.6.2%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.6.2环境配置</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.6.3%E5%AE%89%E8%A3%85python.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.6.3安装python</p><!--]--></a><!----></div><!----></div><section class="VPSidebarItem level-2 collapsible collapsed" data-v-edd2eed8 data-v-edd2eed8><div class="item" role="button" tabindex="0" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><h4 class="text" data-v-edd2eed8>3.6.4Python for fun</h4><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-edd2eed8><span class="vpi-chevron-right caret-icon" data-v-edd2eed8></span></div></div><div class="items" data-v-edd2eed8><!--[--><div class="VPSidebarItem level-3 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.6.4Python%20for%20fun.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.6.4Python for fun</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.6.4.0%E9%98%B6%E6%AE%B5%E9%9B%B6%EF%BC%9APython%E8%A7%A3%E9%87%8A%E5%99%A8.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.6.4.0阶段零Python解释器</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.6.4.1%E9%98%B6%E6%AE%B5%E4%B8%80%EF%BC%9A%E7%86%9F%E6%82%89%E8%AF%AD%E5%8F%A5.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.6.4.1阶段一:熟悉语句</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.6.4.2%E9%98%B6%E6%AE%B5%E4%BA%8C%EF%BC%9A%E9%80%92%E5%BD%92%E6%93%8D%E4%BD%9C.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.6.4.2阶段二:递归操作</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.6.4.3%E9%98%B6%E6%AE%B5%E4%B8%89%EF%BC%9A%E6%95%B0%E6%8D%AE%E6%8A%BD%E8%B1%A1.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.6.4.3阶段三:数据抽象</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.6.4.4%E9%98%B6%E6%AE%B5%E5%9B%9B%EF%BC%9A%E9%AB%98%E9%98%B6%E5%87%BD%E6%95%B0.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.6.4.4阶段四:高阶函数</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.6.4.5%E9%98%B6%E6%AE%B5%E4%BA%94%EF%BC%9A%E8%BF%AD%E4%BB%A3%E7%94%9F%E6%88%90.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.6.4.5阶段五:迭代生成</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-3 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.6.4.6%E7%BB%93%E8%AF%AD.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.6.4.6结语</p><!--]--></a><!----></div><!----></div><!--]--></div></section><!--]--></div></section><div class="VPSidebarItem level-1 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.X%20%E8%81%8A%E8%81%8A%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F%E5%92%8C%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.X 聊聊设计模式和程序设计</p><!--]--></a><!----></div><!----></div><section class="VPSidebarItem level-1 collapsible collapsed" data-v-edd2eed8 data-v-edd2eed8><div class="item" role="button" tabindex="0" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><h3 class="text" data-v-edd2eed8>3.Y 附加模块Linux</h3><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-edd2eed8><span class="vpi-chevron-right caret-icon" data-v-edd2eed8></span></div></div><div class="items" data-v-edd2eed8><!--[--><div class="VPSidebarItem level-2 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.Y%20%E9%99%84%E5%8A%A0%E6%A8%A1%E5%9D%97%EF%BC%9ALinux.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.Y 附加模块Linux</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.Y.1Linux%E6%A6%82%E5%BF%B5%E6%99%AE%E5%8F%8A.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.Y.1Linux概念普及</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.Y.2%E5%8F%8C%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85%E5%92%8C%E5%8F%91%E8%A1%8C%E7%89%88%E6%8E%A8%E8%8D%90.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.Y.2双系统安装和发行版推荐</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.Y.3VMware%E7%9A%84%E5%AE%89%E8%A3%85%E4%B8%8E%E5%AE%89%E8%A3%85Ubuntu22.04%E7%B3%BB%E7%BB%9F.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.Y.3VMware的安装与安装Ubuntu22.04系统</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.Y.4WSL%E7%9A%84%E5%AE%89%E8%A3%85.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.Y.4WSL的安装</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.Y.5Linux%E5%88%9D%E6%8E%A2%E7%B4%A2.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.Y.5Linux初探索</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.Y.6Vim%E5%88%9D%E6%8E%A2%E7%B4%A2.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.Y.6Vim初探索</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-edd2eed8 data-v-edd2eed8><div class="item" data-v-edd2eed8><div class="indicator" data-v-edd2eed8></div><a class="VPLink link link" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.Y.7linux%E5%B0%8F%E4%BB%BB%E5%8A%A1.html" data-v-edd2eed8><!--[--><p class="text" data-v-edd2eed8>3.Y.7linux小任务</p><!--]--></a><!----></div><!----></div><!--]--></div></section><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-d8b57b2d data-v-9a6c75ad><div class="VPDoc has-sidebar has-aside" data-v-9a6c75ad data-v-e6f2a212><!--[--><!--]--><div class="container" data-v-e6f2a212><div class="aside" data-v-e6f2a212><div class="aside-curtain" data-v-e6f2a212></div><div class="aside-container" data-v-e6f2a212><div class="aside-content" data-v-e6f2a212><div class="VPDocAside" data-v-e6f2a212 data-v-cb998dce><!--[--><!--]--><!--[--><!--]--><nav aria-labelledby="doc-outline-aria-label" class="VPDocAsideOutline" data-v-cb998dce data-v-f610f197><div class="content" data-v-f610f197><div class="outline-marker" data-v-f610f197></div><div aria-level="2" class="outline-title" id="doc-outline-aria-label" role="heading" data-v-f610f197>On this page</div><ul class="VPDocOutlineItem root" data-v-f610f197 data-v-53c99d69><!--[--><!--]--></ul></div></nav><!--[--><!--]--><div class="spacer" data-v-cb998dce></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-e6f2a212><div class="content-container" data-v-e6f2a212><!--[--><!--]--><main class="main" data-v-e6f2a212><div style="position:relative;" class="vp-doc _%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)_3_%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA_3_4_6_7_%E5%A2%9E%E5%A4%A7%E8%B7%9D%E7%A6%BB external-link-icon-enabled" data-v-e6f2a212><div><h1 id="_7-增大距离" tabindex="-1">7.增大距离 <a class="header-anchor" href="#_7-增大距离" aria-label="Permalink to &quot;7.增大距离&quot;"></a></h1><p><em>一个典型的冒险包含许多谜题。众所周知,<a href="https://en.wikipedia.org/wiki/Infocom" target="_blank" rel="noreferrer">Infocom</a>的冒险很难完成。解决每个难题可能需要数周甚至数月的反复试验。</em></p><p><em>当玩家操纵角色失败后,如果只是返回“你不能这么操作”来回应玩家,会很 nt很没意思。</em></p><p><em>它忽略了电脑游戏的一个重要方面,而这也是生活本身的一部分:玩家必须从错误中吸取教训。</em></p><p>当你的游戏反复输入东西都是,你不能这样做的时候,会显得很无聊的。</p><p><em>冒险游戏至少应该做的是解释为什么玩家的命令无法完成:“你不能这样做,因为......”这有助于使虚拟世界更具说服力,故事更可信,游戏更有趣。</em></p><p>我们已经付出了相当大的努力让游戏解释<strong>为什么</strong>某些命令是无效的。只需看看<em>名词.cinventory.clocation.c</em><em>move.c</em>中的许多<em>printf</em>调用。但随着游戏变得越来越复杂,这正成为一个相当大的负担。我们需要一种更结构化的方法来检测和处理错误情况。这就是我们在本章中将要讨论的内容。</p><p>大多数命令对一个或多个对象进行操作,例如:</p><ul><li>玩家拿起一件物品,然后把它交给另一个 NPC。</li><li>玩家沿着一条通道到另一个位置。</li></ul><p>首先要检查的(在<a href="http://en.wikipedia.org/wiki/Parsing" target="_blank" rel="noreferrer">解析器</a>捕获检测是否会有明显<a href="http://en.wikipedia.org/wiki/Typographical_error" target="_blank" rel="noreferrer">拼写错误</a>之后)是这些对象<strong>是否存在</strong>;</p><p>失败应该导致类似“这里没有...“或”你看不到任何东西...”等文字出现。在本章中,我们将构建一个通用函数,每个命令都可以使用它来找出玩家是否在可及的范围内。</p><p>你可能认为我们只需要区分两种情况:对象在这里,或者它不在这里。</p><p>但是许多命令需要更多的渐变,而不仅仅是“这里”和“不在这里”。例子:</p><ul><li>要使用武器或工具,玩家必须持有它;仅仅在现场存在是不够的。</li><li>你不能放下一个你没拿起来的道具,也不能拿起一个已经有的东西</li><li>如果你跟商人买东西的时候,他店里东西你不能随便拿</li></ul><table tabindex="0"><thead><tr><th>distSelf</th><th>对象是玩家</th><th>object == player</th></tr></thead><tbody><tr><td>distHeld</td><td>玩家持有物体</td><td>object-&gt;location == player</td></tr><tr><td>distHeldContained</td><td>玩家拿着另一个包含该物体的物体(例如袋子)</td><td>object-&gt;location != NULL &amp;&amp;<br>object-&gt;location-&gt;location == player</td></tr><tr><td>distLocation</td><td>对象是玩家的位置</td><td>object == player-&gt;location</td></tr><tr><td>distHere</td><td>对象位于玩家的位置</td><td>object-&gt;location == player-&gt;location</td></tr><tr><td>distHereContained</td><td>一个物体NPC 或“容器”)存在于玩家的位置,正在拿着另一个物体</td><td>object-&gt;location != NULL &amp;&amp;<br>object-&gt;location-&gt;location == player-&gt;location</td></tr><tr><td>distOverthere</td><td>对象是附近的位置</td><td>getPassage(player-&gt;location, object) != NULL</td></tr></tbody></table><p>第一种情况对象是玩家可能看起来微不足道但它仍然很重要。例如命令“examine yourself”<em>不应该</em>返回“这里没有你自己”。</p><p>我试图遵循一个逻辑顺序:附近的事物最高优先级,随后优先级会变低。</p><table tabindex="0"><thead><tr><th>distNotHere</th><th>对象不在这里(或看起来)不在这里</th><th></th></tr></thead><tbody><tr><td>distUnknownObject</td><td>解析器无法识别输入的名词</td><td>object == NULL</td></tr></tbody></table><p>请注意,我们有七种不同的“这里”案例,但只有一种是“不在这里”。这是因为通常,游戏只需要提供有关玩家可以感知的事物的信息。如果它不在这里,那么就没什么可说的了。</p><p>在最左边的列中,我们为每个案例提出了一个符号名称。我们将在名为 <strong>DISTANCE</strong><a href="http://en.wikipedia.org/wiki/Enumerated_type" target="_blank" rel="noreferrer">枚举</a>中收集这些名称。</p><div class="language-c vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">c</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">typedef</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> enum</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> distSelf,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> distHeld,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> distHeldContained,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> distLocation,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> distHere,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> distHereContained,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> distOverthere,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> distNotHere,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> distUnknownObject</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">} DISTANCE;</span></span></code></pre></div><div class="warning custom-block"><p class="custom-block-title">💡 typedef 以及枚举类 enum 之前有接触过吗?没有接触过的话就去学习一下吧。</p></div><p>在最右边的列中,我们为每个情况提出了一个满足条件。通过一些重新洗牌,我们可以很容易地将其转换为计算对象“距离”的函数(从玩家的角度来看):</p><div class="language-c vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">c</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">DISTANCE </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">getDistance</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(OBJECT </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">from</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, OBJECT </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">to</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">{</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> to </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">==</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> NULL</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> ?</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> distUnknownObject </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> to </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">==</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> from </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">?</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> distSelf </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> to-&gt;location </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">==</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> from </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">?</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> distHeld </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> to </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">==</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> from-&gt;location </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">?</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> distLocation </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> to-&gt;location </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">==</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> from-&gt;location </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">?</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> distHere </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> getPassage</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(from-&gt;location, to) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">!=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> NULL</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> ?</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> distOverthere </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> to-&gt;location </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">==</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> NULL</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> ?</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> distNotHere </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> to-&gt;location-&gt;location </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">==</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> from </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">?</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> distHeldContained </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> to-&gt;location-&gt;location </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">==</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> from-&gt;location </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">?</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> distHereContained </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> distNotHere;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span></code></pre></div><div class="warning custom-block"><p class="custom-block-title">🤔 思考题:</p><p>你是否有其他方法实现这个功能?</p><p>注:自行实验即可</p></div><p>就这样!我们可以调用此函数并对其返回值进行比较。例如,我们在 noun*.c*中有以下代码:</p><div class="language-c vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">c</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">else</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">!</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(obj </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">==</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> player </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">||</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> obj </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">==</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> player</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">-&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">location </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">||</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> obj</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">-&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">location </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">==</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> player </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">||</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> obj</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">-&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">location </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">==</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> player</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">-&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">location </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">||</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> getPassage</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(player</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">-&gt;</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">location</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, obj) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">!=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> NULL</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> ||</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (obj</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">-&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">location </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">!=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> NULL</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> &amp;&amp;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (obj</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">-&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">location</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">-&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">location </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">==</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> player </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">||</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> obj</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">-&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">location</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">-&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">location </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">==</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> player</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">-&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">location))))</span></span></code></pre></div><p>现在,我们可以用适当的距离检查替换每个子条件:</p><div class="language-c vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">c</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">else</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">!</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">getDistance</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(player, obj) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">==</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> distSelf </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">||</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> getDistance</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(player, obj) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">==</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> distLocation </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">||</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> getDistance</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(player, obj) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">==</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> distHeld </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">||</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> getDistance</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(player, obj) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">==</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> distHere </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">||</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> getDistance</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(player, obj) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">==</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> distOverthere </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">||</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> getDistance</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(player, obj) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">==</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> distHeldContained </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">||</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> getDistance</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(player, obj) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">==</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> distHereContained))</span></span></code></pre></div><p>这可以简化为:</p><div class="language-c vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">c</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">else</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">getDistance</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(player, obj) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">&gt;=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> distNotHere)</span></span></code></pre></div><div class="warning custom-block"><p class="custom-block-title">🤔 尝试理解一下这样做的意义</p></div><p>这只是一个例子,让你对这个概念有所了解;您将在下面找到<em>noun.c</em>的实际实现,看起来略有不同。</p><p>是时候把事情落实到位了。枚举 <em>DISTANCE</em> 和函数 <em>getDistance</em> 的定义被添加到 <em>misc.h</em><em>misc.c</em> 中,因为我们将在多个模块中使用它们。</p><h2 id="misc-h" tabindex="-1">misc.h <a class="header-anchor" href="#misc-h" aria-label="Permalink to &quot;misc.h&quot;"></a></h2><div class="language-c vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">c</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">typedef</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> enum</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> distSelf,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> distHeld,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> distHeldContained,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> distLocation,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> distHere,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> distHereContained,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> distOverthere,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> distNotHere,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> distUnknownObject</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">} DISTANCE;</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">extern</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> bool</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> isHolding</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(OBJECT </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">container</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, OBJECT </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">obj</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> //是否持有物体</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">extern</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> OBJECT </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">getPassage</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(OBJECT </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">from</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, OBJECT </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">to</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> //获取通道</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">extern</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> DISTANCE </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">getDistance</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(OBJECT </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">from</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, OBJECT </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">to</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> //计算距离</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">extern</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> OBJECT </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">actorHere</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">void</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">extern</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> int</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> listObjectsAtLocation</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(OBJECT </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">location</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span></code></pre></div><h2 id="misc-c" tabindex="-1">misc.c <a class="header-anchor" href="#misc-c" aria-label="Permalink to &quot;misc.c&quot;"></a></h2><div class="language-c vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">c</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">#include</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &lt;stdbool.h&gt;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">#include</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &lt;stdio.h&gt;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">#include</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;object.h&quot;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">#include</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;misc.h&quot;</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">bool</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> isHolding</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(OBJECT </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">container</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, OBJECT </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">obj</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">{</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> obj </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">!=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> NULL</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> &amp;&amp;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> obj-&gt;location </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">==</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> container;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">OBJECT </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">getPassage</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(OBJECT </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">from</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, OBJECT </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">to</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">{</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (from </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">!=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> NULL</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> &amp;&amp;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> to </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">!=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> NULL</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> OBJECT </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">obj;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> for</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (obj </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> objs; obj </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">&lt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> endOfObjs; obj</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">++</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">isHolding</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(from, obj) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">&amp;&amp;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> obj-&gt;destination </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">==</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> to)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> obj;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> NULL</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">DISTANCE </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">getDistance</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(OBJECT </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">from</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, OBJECT </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">to</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">{</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> to </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">==</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> NULL</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> ?</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> distUnknownObject </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> to </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">==</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> from </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">?</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> distSelf </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> isHolding</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(from, to) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">?</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> distHeld </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> isHolding</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(to, from) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">?</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> distLocation </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> isHolding</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(from-&gt;location, to) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">?</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> distHere </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> isHolding</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(from, to-&gt;location) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">?</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> distHeldContained </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> isHolding</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(from-&gt;location, to-&gt;location) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">?</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> distHereContained </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> getPassage</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(from-&gt;location, to) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">!=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> NULL</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> ?</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> distOverthere </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> distNotHere;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">OBJECT </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">actorHere</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">void</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">{</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> OBJECT </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">obj;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> for</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (obj </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> objs; obj </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">&lt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> endOfObjs; obj</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">++</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">isHolding</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(player-&gt;location, obj) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">&amp;&amp;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> obj </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">==</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> guard)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> obj;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> NULL</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">int</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> listObjectsAtLocation</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(OBJECT </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">location</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">{</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> int</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> count </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> OBJECT </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">obj;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> for</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (obj </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> objs; obj </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">&lt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> endOfObjs; obj</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">++</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (obj </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">!=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> player </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">&amp;&amp;</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> isHolding</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(location, obj))</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (count</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">++</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> ==</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> printf</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;You see:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">\n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> printf</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">%s\n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, obj-&gt;description);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> count;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span></code></pre></div><p>注意isHolding 这个函数之后我们将在各个地方使用</p><h2 id="location-h" tabindex="-1">location.h <a class="header-anchor" href="#location-h" aria-label="Permalink to &quot;location.h&quot;"></a></h2><div class="language-c vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">c</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">extern</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> void</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> executeLook</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">const</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> char</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> *</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">noun</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">extern</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> void</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> executeGo</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">const</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> char</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> *</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">noun</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span></code></pre></div><p>在函数 <em>executeGo</em> 中,我们可以用检查距离来替换大多数 <em>if</em> 条件。</p><h2 id="location-c" tabindex="-1">location.c <a class="header-anchor" href="#location-c" aria-label="Permalink to &quot;location.c&quot;"></a></h2><div class="language-c vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">c</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">#include</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &lt;stdbool.h&gt;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">#include</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &lt;stdio.h&gt;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">#include</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &lt;string.h&gt;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">#include</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;object.h&quot;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">#include</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;misc.h&quot;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">#include</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;noun.h&quot;</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">void</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> executeLook</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">const</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> char</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> *</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">noun</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">{</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (noun </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">!=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> NULL</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> &amp;&amp;</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> strcmp</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(noun, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;around&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">==</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> printf</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;You are in </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">%s</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">.</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">\n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, player-&gt;location-&gt;description);</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> listObjectsAtLocation</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(player-&gt;location);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> else</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> printf</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;I don&#39;t understand what you want to see.</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">\n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">void</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> executeGo</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">const</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> char</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> *</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">noun</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">{</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> OBJECT </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">obj </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> getVisible</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;where you want to go&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, noun);</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> switch</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">getDistance</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(player, obj))</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> case</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> distOverthere:</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> printf</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;OK.</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">\n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> player-&gt;location </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> obj;</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> executeLook</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;around&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> break</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> case</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> distNotHere:</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> printf</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;You don&#39;t see any </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">%s</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> here.</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">\n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, noun);</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> break</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> case</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> distUnknownObject:</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // already handled by getVisible</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> break</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> default</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> //上述情况均为出现</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (obj</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">-&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">destination </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">!=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> NULL</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> printf</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;OK.</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">\n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> player-&gt;location </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> obj-&gt;destination;</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> executeLook</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;around&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> else</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> printf</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;You can&#39;t get much closer than this.</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">\n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span></code></pre></div><div class="warning custom-block"><p class="custom-block-title">🤔 思考题:你能否为 switch 函数增加更多 case 来完善判断条件?</p></div><p>函数 <em>executeGet</em> 也是如此。</p><h2 id="inventory-h" tabindex="-1"><strong>inventory.h</strong> <a class="header-anchor" href="#inventory-h" aria-label="Permalink to &quot;**inventory.h**&quot;"></a></h2><div class="language-c vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">c</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">extern</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> void</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> executeGet</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">const</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> char</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> *</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">noun</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">extern</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> void</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> executeDrop</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">const</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> char</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> *</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">noun</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">extern</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> void</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> executeAsk</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">const</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> char</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> *</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">noun</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">extern</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> void</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> executeGive</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">const</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> char</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> *</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">noun</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">extern</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> void</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> executeInventory</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">void</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span></code></pre></div><h2 id="inventory-c" tabindex="-1"><strong>inventory.c</strong> <a class="header-anchor" href="#inventory-c" aria-label="Permalink to &quot;**inventory.c**&quot;"></a></h2><div class="language-c vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">c</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">#include</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &lt;stdbool.h&gt;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">#include</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &lt;stdio.h&gt;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">#include</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;object.h&quot;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">#include</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;misc.h&quot;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">#include</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;noun.h&quot;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">#include</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;move.h&quot;</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">void</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> executeGet</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">const</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> char</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> *</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">noun</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">{</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> OBJECT </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">obj </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> getVisible</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;what you want to get&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, noun);</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> switch</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">getDistance</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(player, obj))</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> case</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> distSelf:</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> printf</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;You should not be doing that to yourself.</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">\n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> break</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> case</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> distHeld:</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> printf</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;You already have </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">%s</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">.</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">\n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, obj</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">-&gt;</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">description</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> break</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> case</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> distOverthere:</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> printf</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;Too far away, move closer please.</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">\n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> break</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> case</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> distUnknownObject:</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // already handled by getVisible</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> break</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> default</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">:</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (obj</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">-&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">location </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">==</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> guard)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> printf</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;You should ask </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">%s</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> nicely.</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">\n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, obj-&gt;location-&gt;description);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> else</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> moveObject</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(obj, player);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">void</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> executeDrop</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">const</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> char</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> *</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">noun</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">{</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> moveObject</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">getPossession</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(player, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;drop&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, noun), player-&gt;location);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">void</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> executeAsk</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">const</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> char</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> *</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">noun</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">{</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> moveObject</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">getPossession</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">actorHere</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(), </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;ask&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, noun), player);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">void</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> executeGive</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">const</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> char</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> *</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">noun</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">{</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> moveObject</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">getPossession</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(player, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;give&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, noun), </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">actorHere</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">());</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">void</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> executeInventory</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">void</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">{</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">listObjectsAtLocation</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(player) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">==</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> printf</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;You are empty-handed.</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">\n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span></code></pre></div><p>最后,我们将调整 noun*.c<em>中的约束。我们正在向函数</em>getObject*添加两个参数,以便找到特定名词的匹配项,同时忽略任何被认为不存在的对象。这将在下一章中得到真正的回报,我们将在下一章中介绍具有相同标签的不同对象。</p><h2 id="noun-h" tabindex="-1">noun.h <a class="header-anchor" href="#noun-h" aria-label="Permalink to &quot;noun.h&quot;"></a></h2><div class="language-c vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">c</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">extern</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> OBJECT </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">getVisible</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">const</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> char</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> *</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">intention </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">const</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> char</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> *</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">noun;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">extern</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> OBJECT </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">getPossessionOBJECT </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">from </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">const</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> char</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> *</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">verb </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">const</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> char</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> *</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">noun;</span></span></code></pre></div><h2 id="noun-c" tabindex="-1">noun.c <a class="header-anchor" href="#noun-c" aria-label="Permalink to &quot;noun.c&quot;"></a></h2><div class="language-c vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">c</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">#include</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &lt;stdbool.h&gt;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">#include</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &lt;stdio.h&gt;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">#include</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &lt;string.h&gt;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">#include</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;object.h&quot;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">#include</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;misc.h&quot;</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">static</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> bool</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> objectHasTag</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(OBJECT </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">obj</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">const</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> char</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> *</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">noun</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">{</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> noun </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">!=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> NULL</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> &amp;&amp;</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> *</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">noun </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">!=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &#39;</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">\0</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> &amp;&amp;</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> strcmp</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(noun, obj-&gt;tag) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">==</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 0</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">static</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> OBJECT </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">getObject</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">const</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> char</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> *</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">noun</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, OBJECT </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">from</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, DISTANCE </span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">maxDistance</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">{</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> OBJECT </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">obj, </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">res </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> NULL</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> for</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (obj </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> objs; obj </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">&lt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> endOfObjs; obj</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">++</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">objectHasTag</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(obj, noun) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">&amp;&amp;</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> getDistance</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(from, obj) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">&lt;=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> maxDistance)</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> //只考虑与对象距离小于或等于最大距离的物体</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> res </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> obj;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> res;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">OBJECT </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">getVisible</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">const</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> char</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> *</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">intention</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">const</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> char</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> *</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">noun</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">{</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> OBJECT </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">obj </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> getObject</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(noun, player, distOverthere);</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> //玩家看不到的自动忽略</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (obj </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">==</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> NULL</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">getObject</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(noun, player, distNotHere) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">==</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> NULL</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> printf</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;I don&#39;t understand </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">%s</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">.</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">\n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, intention);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> else</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> printf</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;You don&#39;t see any </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">%s</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> here.</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">\n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, noun);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> obj;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">OBJECT </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">getPossession</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(OBJECT </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">from</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">const</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> char</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> *</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">verb</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">const</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> char</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> *</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">noun</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">{</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> OBJECT </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">*</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">obj </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> NULL</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (from </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">==</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> NULL</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> printf</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;I don&#39;t understand who you want to </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">%s</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">.</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">\n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, verb);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> else</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> ((obj </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> getObject</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(noun, from, distHeldContained)) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">==</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> NULL</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> //限制范围</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">getObject</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(noun, player, distNotHere) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">==</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> NULL</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> printf</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;I don&#39;t understand what you want to </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">%s</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">.</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">\n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, verb);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> else</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (from </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">==</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> player)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> printf</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;You are not holding any </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">%s</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">.</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">\n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, noun);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> else</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> printf</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;There appears to be no </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">%s</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> you can get from </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">%s</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">.</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">\n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> noun, from-&gt;description);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> else</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (obj </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">==</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> from)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> printf</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;You should not be doing that to </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">%s</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">.</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">\n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, obj-&gt;description);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> obj </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> NULL</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> return</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> obj;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span></code></pre></div><div class="warning custom-block"><p class="custom-block-title">🤔 思考题:你能理解什么时候加 const什么时候不用吗</p></div><p>在本章中,<em>距离</em>的概念主要用于在游戏可以给用户的不同响应之间进行选择。但是,距离的好处并不局限于<strong>输出</strong>端;它可以同样很好地用于在<strong>输入</strong>端进行改进。在下一章中,我们将使用距离来提高对用户输入的名词的识别。</p><p>输出样例</p><p>Welcome to Little Cave Adventure. You are in an open field. You see: a silver coin a burly guard a cave entrance</p><p>--&gt; go guard You can&#39;t get much closer than this.</p><p>--&gt; give silver You are not holding any silver.</p><p>--&gt; ask silver There appears to be no silver you can get from a burly guard.</p><p>--&gt; get silver You pick up a silver coin.</p><p>--&gt; get gold You don&#39;t see any gold here.</p><p>--&gt; give silver You give a silver coin to a burly guard.</p><p>--&gt; go cave OK. You are in a little cave. You see: a gold coin an exit</p><p>--&gt; get gold You pick up a gold coin.</p><p>--&gt; give gold There is nobody here to give that to.</p><p>--&gt; quit</p><p>Bye!</p></div></div></main><footer class="VPDocFooter" data-v-e6f2a212 data-v-1bcd8184><!--[--><!--]--><div class="edit-info" data-v-1bcd8184><div class="edit-link" data-v-1bcd8184><a class="VPLink link vp-external-link-icon no-icon edit-link-button" href="https://gitea.xinxijishubu.asia/moyin/fzu-product/src/branch/main/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.6.7.增大距离.md" target="_blank" rel="noreferrer" data-v-1bcd8184><!--[--><span class="vpi-square-pen edit-link-icon" data-v-1bcd8184></span> 在 Gitea 上修改此页<!--]--></a></div><!----></div><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-1bcd8184><span class="visually-hidden" id="doc-footer-aria-label" data-v-1bcd8184>Pager</span><div class="pager" data-v-1bcd8184><a class="VPLink link pager-link prev" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.4.6.6.%E7%BB%98%E5%88%B6%E5%9C%B0%E5%9B%BE.html" data-v-1bcd8184><!--[--><span class="desc" data-v-1bcd8184>上一小节</span><span class="title" data-v-1bcd8184>3.4.6.6.绘制地图</span><!--]--></a></div><div class="pager" data-v-1bcd8184><a class="VPLink link pager-link next" href="/%E6%8A%80%E6%9C%AF%E8%B5%84%E6%BA%90%E6%B1%87%E6%80%BB(%E6%9D%AD%E7%94%B5%E6%94%AF%E6%8C%81%E7%89%88)/3.%E7%BC%96%E7%A8%8B%E6%80%9D%E7%BB%B4%E4%BD%93%E7%B3%BB%E6%9E%84%E5%BB%BA/3.4.6.8.%E7%A7%BB%E5%8A%A8%E6%96%B9%E5%90%91.html" data-v-1bcd8184><!--[--><span class="desc" data-v-1bcd8184>下一小节</span><span class="title" data-v-1bcd8184>3.4.6.8.移动方向</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-d8b57b2d data-v-566314d4><div class="container" data-v-566314d4><p class="message" data-v-566314d4>Made with ❤️ by ALL 协作者</p><p class="copyright" data-v-566314d4>Copyright © 2023-present Evan You && ALL 协作者</p></div></footer><!--[--><!--]--></div></div>
<script>window.__VP_HASH_MAP__=JSON.parse("{\"api-examples.md\":\"DzBTNBEE\",\"changelog.md\":\"FPNSm718\",\"contributing.md\":\"bKW9JrKc\",\"contributors.md\":\"Cw_T0DZB\",\"index.md\":\"B1O1f-Fa\",\"markdown-examples.md\":\"ByeFoAfn\",\"readme.md\":\"BdZRJ36M\",\"使用指南.md\":\"Cx3weXYo\",\"技术资源汇总(杭电支持版)_2.高效学习_2.1.1悲壮的学习方式.md\":\"DTYIoXXb\",\"技术资源汇总(杭电支持版)_2.高效学习_2.1.2浮躁的心理状态.md\":\"DqgEG2PN\",\"技术资源汇总(杭电支持版)_2.高效学习_2.1.3错误的提问姿态.md\":\"Dice7HmS\",\"技术资源汇总(杭电支持版)_2.高效学习_2.1.4书籍的盲目崇拜.md\":\"D7lBwdls\",\"技术资源汇总(杭电支持版)_2.高效学习_2.1.5错误的学习配比.md\":\"CC8FrxOY\",\"技术资源汇总(杭电支持版)_2.高效学习_2.1高效的前提:摆脱高中思维.md\":\"y1dZYwTe\",\"技术资源汇总(杭电支持版)_2.高效学习_2.2优雅的使用工具.md\":\"H-IrZPye\",\"技术资源汇总(杭电支持版)_2.高效学习_2.3.1阅读文档b百度爬.md\":\"CoWHVc10\",\"技术资源汇总(杭电支持版)_2.高效学习_2.3.2检索论文核心内容.md\":\"BQCjGA_6\",\"技术资源汇总(杭电支持版)_2.高效学习_2.3.3优秀的开源社区.md\":\"2FaigHdO\",\"技术资源汇总(杭电支持版)_2.高效学习_2.3高效的信息检索.md\":\"DbplLh_F\",\"技术资源汇总(杭电支持版)_2.高效学习_2.4优雅的记笔记.md\":\"BUxzDzb2\",\"技术资源汇总(杭电支持版)_2.高效学习_2.5以理工科的方式阅读英语.md\":\"CCv1xohP\",\"技术资源汇总(杭电支持版)_2.高效学习_2.6学会使用ai辅助学习.md\":\"BA8DOvYX\",\"技术资源汇总(杭电支持版)_2.高效学习_2.高效学习.md\":\"DceOYwF4\",\"技术资源汇总(杭电支持版)_2.高效学习_补充为什么不要用百度.md\":\"VkOSQaNc\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.0 编程入门之道.md\":\"RO996sX2\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.1该使用哪个编辑器???.md\":\"B4ayWsWH\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.2.1手把手教你学算法——如何使用ojonline judge.md\":\"BTq8bXJ7\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.2.2acm 竞赛从入门到入坟.md\":\"DHh_AnzE\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.2算法杂谈.md\":\"Dyuzf5Rm\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.3如何选择编程语言.md\":\"BmznmeSr\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.4.1faq:常见问题.md\":\"BnJhsYE9\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.4.2用什么写 c 语言.md\":\"j3UKqDLB\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.4.3解决编程问题的普适性过程.md\":\"C2A_1-Fn\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.4.4c语言前置概念学习.md\":\"BkXXgE64\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.4.5.1c语言自测标准——链表.md\":\"DVzk3soj\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.4.5阶段一:编程属性.md\":\"xzkNgg8e\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.4.6.1.开始冒险.md\":\"BOo28IRY\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.4.6.10.增添属性.md\":\"DfQyVaNx\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.4.6.11.设置条件.md\":\"D1w5O6yc\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.4.6.12.开启关闭.md\":\"CXNDx_7L\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.4.6.13.编写解析器.md\":\"zv8UQDFe\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.4.6.14.丰富命令.md\":\"B6oobOWP\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.4.6.15.赋予明暗.md\":\"DuKXxo2X\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.4.6.16.结语:你终将自由.md\":\"C-H3wZFU\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.4.6.2.探索未知.md\":\"Dic21KtY\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.4.6.3.指明地点.md\":\"CqJJTYJl\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.4.6.4.创建对象.md\":\"sYhd_x2h\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.4.6.5.捡起物品.md\":\"8K1USgEU\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.4.6.6.绘制地图.md\":\"B_DDqfPJ\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.4.6.7.增大距离.md\":\"cJuj5FdO\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.4.6.8.移动方向.md\":\"DfqXtQsJ\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.4.6.9.练习:生成代码.md\":\"BWPCfe12\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.4.6阶段二文字冒险cool.md\":\"4wxQiLET\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.4.7.1.1调试理论.md\":\"BG8u_VZC\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.4.7.1gdb初探索(编程可阅览).md\":\"DxwzfDRm\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.4.7.2c的历史问题undefined behavior.md\":\"DhVRjYVK\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.4.7.3c编译器干了什么.md\":\"BmcVZay6\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.4.7.4inline assembly与链接加载.md\":\"q2t6qdUO\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.4.7c基础知识杂谈.md\":\"aePmhQYd\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.4c语言.md\":\"DkCJewM5\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.5git与github.md\":\"CHDigJYp\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.6.1从cs61a看编程语言学习.md\":\"DqQl-8bT\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.6.2环境配置.md\":\"BhEPqNzV\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.6.3安装python.md\":\"D3dPRaxz\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.6.4.0阶段零python解释器.md\":\"Dm3hX9NX\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.6.4.1阶段一:熟悉语句.md\":\"CLD1IJhu\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.6.4.2阶段二:递归操作.md\":\"D7XWEtHx\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.6.4.3阶段三:数据抽象.md\":\"CDZ-i__T\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.6.4.4阶段四:高阶函数.md\":\"Dsl4HkDc\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.6.4.5阶段五:迭代生成.md\":\"5HYOHSTp\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.6.4.6结语.md\":\"CCrZz2pj\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.6.4python for fun.md\":\"DkJd7Fze\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.6python(灵巧的胶水).md\":\"DiyVGPhf\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.x 聊聊设计模式和程序设计.md\":\"W9mozi2J\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.y 附加模块linux.md\":\"BCrGPX21\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.y.0计算机教育中缺失的一课.md\":\"BWm_rSoC\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.y.1linux概念普及.md\":\"CzzMXts9\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.y.2双系统安装和发行版推荐.md\":\"CVKz1ljH\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.y.3vmware的安装与安装ubuntu22.04系统.md\":\"DvLQFSm4\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.y.4wsl的安装.md\":\"DxhJ6pfj\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.y.5linux初探索.md\":\"DsLYXQrx\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.y.6vim初探索.md\":\"ZriWo4yK\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.y.7linux小任务.md\":\"B0_ZolbN\",\"技术资源汇总(杭电支持版)_3.编程思维体系构建_3.编程思维体系构建.md\":\"buCvJWRO\",\"技术资源汇总(杭电支持版)_4.人工智能_4.10llmagent之结构化输出.md\":\"CiF3m2Gf\",\"技术资源汇总(杭电支持版)_4.人工智能_4.11本章节内容的局限性.md\":\"VdWbP1WW\",\"技术资源汇总(杭电支持版)_4.人工智能_4.1前言.md\":\"CbAU8DCP\",\"技术资源汇总(杭电支持版)_4.人工智能_4.2机器学习ai快速入门quick start.md\":\"BEeOolYI\",\"技术资源汇总(杭电支持版)_4.人工智能_4.3.1.1程序示例——maze迷宫解搜索.md\":\"-nQ9ZG02\",\"技术资源汇总(杭电支持版)_4.人工智能_4.3.1.2项目tic-tac-toe井字棋.md\":\"DpxLT41Z\",\"技术资源汇总(杭电支持版)_4.人工智能_4.3.1搜索.md\":\"oc9gmWWK\",\"技术资源汇总(杭电支持版)_4.人工智能_4.3.2.1程序示例——命题逻辑与模型检测.md\":\"CVT6S5El\",\"技术资源汇总(杭电支持版)_4.人工智能_4.3.2.2项目:扫雷,骑士与流氓问题.md\":\"DnpnWZd9\",\"技术资源汇总(杭电支持版)_4.人工智能_4.3.2知识推理.md\":\"Bdg-XBSz\",\"技术资源汇总(杭电支持版)_4.人工智能_4.3.3.1程序示例.md\":\"D2D5pU2z\",\"技术资源汇总(杭电支持版)_4.人工智能_4.3.3.2项目:遗传.md\":\"Bee7dgw8\",\"技术资源汇总(杭电支持版)_4.人工智能_4.3.3不确定性问题.md\":\"WmYBd5ms\",\"技术资源汇总(杭电支持版)_4.人工智能_4.3.4.1程序示例.md\":\"Bm1E_RoV\",\"技术资源汇总(杭电支持版)_4.人工智能_4.3.4.2项目:填词游戏.md\":\"BLt1E6wb\",\"技术资源汇总(杭电支持版)_4.人工智能_4.3.4最优化.md\":\"CJEsAZQH\",\"技术资源汇总(杭电支持版)_4.人工智能_4.3人工智能导论及机器学习入门.md\":\"4RWDZfjp\",\"技术资源汇总(杭电支持版)_4.人工智能_4.4faq:常见问题.md\":\"BnI046IT\",\"技术资源汇总(杭电支持版)_4.人工智能_4.5图网络略述intro_gcn.md\":\"Cue-WAA8\",\"技术资源汇总(杭电支持版)_4.人工智能_4.6数据分析.md\":\"Cx1ZD5ZH\",\"技术资源汇总(杭电支持版)_4.人工智能_4.7如何做研究.md\":\"CtUhtBrq\",\"技术资源汇总(杭电支持版)_4.人工智能_4.8科研论文写作.md\":\"DSE7qt-X\",\"技术资源汇总(杭电支持版)_4.人工智能_4.9从 ai 到 智能系统 —— 从 llms 到 agents.md\":\"BFVSZab1\",\"技术资源汇总(杭电支持版)_4.人工智能_4.人工智能.md\":\"C7dQQcV1\",\"技术资源汇总(杭电支持版)_5.富有生命的嵌入式_5.1嵌入式是什么?可以吃吗?.md\":\"DSWjKS-a\",\"技术资源汇总(杭电支持版)_5.富有生命的嵌入式_5.2new meaning of c.md\":\"bNGQi2W2\",\"技术资源汇总(杭电支持版)_5.富有生命的嵌入式_5.3还玩裸机?上操作系统!.md\":\"C80bW3ek\",\"技术资源汇总(杭电支持版)_5.富有生命的嵌入式_5.富有生命的嵌入式.md\":\"C3jYEQFL\",\"技术资源汇总(杭电支持版)_6.计算机安全_6.1.1sql 注入.md\":\"DQCIZdYm\",\"技术资源汇总(杭电支持版)_6.计算机安全_6.1web安全.md\":\"DVP9mk53\",\"技术资源汇总(杭电支持版)_6.计算机安全_6.2.1基础工具的使用.md\":\"DLiapAz1\",\"技术资源汇总(杭电支持版)_6.计算机安全_6.2.2软件破解、软件加固.md\":\"BG-KmxLq\",\"技术资源汇总(杭电支持版)_6.计算机安全_6.2.3漏洞挖掘、漏洞利用.md\":\"TTf4uEbG\",\"技术资源汇总(杭电支持版)_6.计算机安全_6.2二进制安全.md\":\"Dx7vf08P\",\"技术资源汇总(杭电支持版)_6.计算机安全_6.3密码学.md\":\"1BmjaKRy\",\"技术资源汇总(杭电支持版)_6.计算机安全_6.4安全杂项.md\":\"C-nq8JBF\",\"技术资源汇总(杭电支持版)_6.计算机安全_6.5学习资料推荐.md\":\"2Z1hvv_V\",\"技术资源汇总(杭电支持版)_6.计算机安全_6.计算机安全.md\":\"DmuFdA7-\",\"技术资源汇总(杭电支持版)_7.网络应用开发_7.1web开发入门.md\":\"cABPZfmp\",\"技术资源汇总(杭电支持版)_7.网络应用开发_7.2.1基础(三件套).md\":\"CeF99FT3\",\"技术资源汇总(杭电支持版)_7.网络应用开发_7.2.2进阶(小项目).md\":\"DkPKrF8C\",\"技术资源汇总(杭电支持版)_7.网络应用开发_7.2.3附录1前端介绍详细版.md\":\"D_V6G3Oh\",\"技术资源汇总(杭电支持版)_7.网络应用开发_7.2.4附录2大前端开发.md\":\"B8u8kcUM\",\"技术资源汇总(杭电支持版)_7.网络应用开发_7.2.5附录3跨端开发.md\":\"CaT9Y32W\",\"技术资源汇总(杭电支持版)_7.网络应用开发_7.2前端部分.md\":\"DCAcwGVN\",\"技术资源汇总(杭电支持版)_7.网络应用开发_7.3.1基础部分.md\":\"BYudz3X8\",\"技术资源汇总(杭电支持版)_7.网络应用开发_7.3.2进阶部分.md\":\"Cg-7LiyH\",\"技术资源汇总(杭电支持版)_7.网络应用开发_7.3后端部分.md\":\"DYZ24iwb\",\"技术资源汇总(杭电支持版)_7.网络应用开发_7.网络应用开发入门.md\":\"DrgT-DjX\",\"技术资源汇总(杭电支持版)_8.基础学科_8.1经济学科普part1.md\":\"DguU75dE\",\"技术资源汇总(杭电支持版)_8.基础学科_8.基础学科.md\":\"DE7yDZI_\",\"技术资源汇总(杭电支持版)_9.计算机网络_9.1计网速通.md\":\"CkT2fLIN\",\"技术资源汇总(杭电支持版)_9.计算机网络_9.2.3.1ip协议.md\":\"Dm6ee4JO\",\"技术资源汇总(杭电支持版)_9.计算机网络_9.2.3.2子网与无类域间路由.md\":\"C3JPwLoF\",\"技术资源汇总(杭电支持版)_9.计算机网络_9.2.3网络层.md\":\"BNya0rNF\",\"技术资源汇总(杭电支持版)_9.计算机网络_9.3路由与交换.md\":\"BvDV79LN\",\"技术资源汇总(杭电支持版)_9.计算机网络_9.4隧道和代理.md\":\"XNDQhj6B\",\"技术资源汇总(杭电支持版)_9.计算机网络_9.5路由佬入门指南.md\":\"CSkj8qJ8\",\"技术资源汇总(杭电支持版)_9.计算机网络_9.计算机网络.md\":\"CSmCLjNp\",\"技术资源汇总(杭电支持版)_内容索引.md\":\"B9FSKjDT\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"FZU-WIKI\",\"description\":\"FZU生存手册\",\"base\":\"/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"nav\":[{\"text\":\"首页\",\"link\":\"/\"},{\"text\":\"章节\",\"items\":[{\"text\":\"1. 前言\",\"link\":\"/技术资源汇总(杭电支持版)/\"},{\"text\":\"2. 高效学习\",\"link\":\"/技术资源汇总(杭电支持版)/2.高效学习/2.高效学习\"},{\"text\":\"3. 编程思维体系构建\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.编程思维体系构建\"},{\"text\":\"4. 人工智能\",\"link\":\"/技术资源汇总(杭电支持版)/4.人工智能/4.人工智能\"},{\"text\":\"5. 富有生命的嵌入式\",\"link\":\"/技术资源汇总(杭电支持版)/5.富有生命的嵌入式/5.富有生命的嵌入式\"},{\"text\":\"6. 计算机安全\",\"link\":\"/技术资源汇总(杭电支持版)/6.计算机安全/6.计算机安全\"},{\"text\":\"7. 网络应用开发\",\"link\":\"/技术资源汇总(杭电支持版)/7.网络应用开发/7.网络应用开发\"},{\"text\":\"8. 基础学科\",\"link\":\"/技术资源汇总(杭电支持版)/8.基础学科/8.基础学科\"},{\"text\":\"9. 计算机网络\",\"link\":\"/技术资源汇总(杭电支持版)/9.计算机网络/9.计算机网络\"}]}],\"sidebar\":{\"/\":[{\"text\":\"简介\",\"collapsed\":true,\"items\":[{\"text\":\"简介\",\"link\":\"/简介\"},{\"text\":\"使用指南\",\"link\":\"/使用指南\"},{\"text\":\"技术资源汇总(杭电支持版)\",\"link\":\"/技术资源汇总(杭电支持版)/内容索引\"}]},{\"text\":\"1.杭电生存指南(最重要模块)\",\"collapsed\":true,\"items\":[{\"text\":\"1.1 人文社科的重要性(韩健夫老师寄语)\",\"link\":\"/1.杭电生存指南/1.1人文社科的重要性(韩健夫老师寄语)\"},{\"text\":\"1.2 竞赛指北\",\"link\":\"/1.杭电生存指南/1.2竞赛指北\"},{\"text\":\"1.3 导师选择\",\"link\":\"/1.杭电生存指南/1.3导师选择\"},{\"text\":\"1.4 小心项目陷阱\",\"link\":\"/1.杭电生存指南/1.4小心项目陷阱\"},{\"text\":\"1.5 小组作业避雷指南\",\"link\":\"/1.杭电生存指南/1.5小组作业避雷指南\"},{\"text\":\"1.6 正确解读GPA\",\"link\":\"/1.杭电生存指南/1.6正确解读GPA\"},{\"text\":\"1.7 杭电出国自救指南\",\"link\":\"/1.杭电生存指南/1.7杭电出国自救指南\"},{\"text\":\"1.8 转专业二三事\",\"link\":\"/1.杭电生存指南/1.8转专业二三事\"},{\"text\":\"1.9 问题专题:好想进入实验室\",\"link\":\"/1.杭电生存指南/1.9问题专题:好想进入实验室\"},{\"text\":\"1.10 如何读论文\",\"link\":\"/1.杭电生存指南/1.10如何读论文\"},{\"text\":\"1.11 陷入虚无主义?进来看看吧\",\"link\":\"/1.杭电生存指南/1.11陷入虚无主义?进来看看吧\"},{\"text\":\"1.12 选课原则与抢课技巧\",\"link\":\"/1.杭电生存指南/1.12选课原则与抢课技巧\"},{\"text\":\"1.13 数学学习篇\",\"link\":\"/1.杭电生存指南/1.13数学学习篇\"},{\"text\":\"1.14 杭电“失败”指南\",\"link\":\"/1.杭电生存指南/1.14 杭电失败指南\"}]},{\"text\":\"贡献者\",\"link\":\"/contributors\"},{\"text\":\"贡献指南\",\"link\":\"/CONTRIBUTING\"}],\"/技术资源汇总(杭电支持版)/\":[{\"text\":\"2.高效学习\",\"collapsed\":true,\"items\":[{\"text\":\"2.高效学习\",\"link\":\"/技术资源汇总(杭电支持版)/2.高效学习/2.高效学习\"},{\"text\":\"2.1高效的前提:摆脱高中思维\",\"link\":\"/技术资源汇总(杭电支持版)/2.高效学习/2.1高效的前提:摆脱高中思维\"},{\"text\":\"2.2优雅的使用工具\",\"link\":\"/技术资源汇总(杭电支持版)/2.高效学习/2.2优雅的使用工具\"},{\"text\":\"2.3高效的信息检索\",\"link\":\"/技术资源汇总(杭电支持版)/2.高效学习/2.3高效的信息检索\"},{\"text\":\"2.4优雅的记笔记\",\"link\":\"/技术资源汇总(杭电支持版)/2.高效学习/2.4优雅的记笔记\"},{\"text\":\"2.5以理工科的方式阅读英语\",\"link\":\"/技术资源汇总(杭电支持版)/2.高效学习/2.5以理工科的方式阅读英语\"},{\"text\":\"2.6学会使用AI辅助学习\",\"link\":\"/技术资源汇总(杭电支持版)/2.高效学习/2.6学会使用AI辅助学习\"}]},{\"text\":\"3.编程思维体系构建\",\"collapsed\":true,\"items\":[{\"text\":\"3.编程思维体系构建\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.编程思维体系构建\"},{\"text\":\"3.0 编程入门之道\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.0 编程入门之道\"},{\"text\":\"3.1该使用哪个编辑器???\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.1该使用哪个编辑器???\"},{\"text\":\"3.2算法杂谈\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.2算法杂谈\"},{\"text\":\"3.3如何选择编程语言\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.3如何选择编程语言\"},{\"text\":\"3.4C语言\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4C语言\"},{\"text\":\"3.5git与github\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.5git与github\"},{\"text\":\"3.6Python(灵巧的胶水)\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.6Python(灵巧的胶水)\"},{\"text\":\"3.X 聊聊设计模式和程序设计\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.X 聊聊设计模式和程序设计\"},{\"text\":\"3.Y 附加模块Linux\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.Y 附加模块Linux\"}]},{\"text\":\"4.人工智能\",\"collapsed\":true,\"items\":[{\"text\":\"4.人工智能\",\"link\":\"/技术资源汇总(杭电支持版)/4.人工智能/4.人工智能\"},{\"text\":\"4.1前言\",\"link\":\"/技术资源汇总(杭电支持版)/4.人工智能/4.1前言\"},{\"text\":\"4.2机器学习AI快速入门quick start\",\"link\":\"/技术资源汇总(杭电支持版)/4.人工智能/4.2机器学习AI快速入门quick start\"},{\"text\":\"4.3人工智能导论及机器学习入门\",\"link\":\"/技术资源汇总(杭电支持版)/4.人工智能/4.3人工智能导论及机器学习入门\"},{\"text\":\"4.4FAQ:常见问题\",\"link\":\"/技术资源汇总(杭电支持版)/4.人工智能/4.4FAQ:常见问题\"},{\"text\":\"4.5图网络略述intro&GCN\",\"link\":\"/技术资源汇总(杭电支持版)/4.人工智能/4.5图网络略述intro&GCN\"},{\"text\":\"4.6数据分析\",\"link\":\"/技术资源汇总(杭电支持版)/4.人工智能/4.6数据分析\"},{\"text\":\"4.7如何做研究\",\"link\":\"/技术资源汇总(杭电支持版)/4.人工智能/4.7如何做研究\"},{\"text\":\"4.8科研论文写作\",\"link\":\"/技术资源汇总(杭电支持版)/4.人工智能/4.8科研论文写作\"},{\"text\":\"4.9从 AI 到 智能系统 —— 从 LLMs 到 Agents\",\"link\":\"/技术资源汇总(杭电支持版)/4.人工智能/4.9从 AI 到 智能系统 —— 从 LLMs 到 Agents\"},{\"text\":\"4.10LLM Agent之结构化输出\",\"link\":\"/技术资源汇总(杭电支持版)/4.人工智能/4.10LLMAgent之结构化输出\"},{\"text\":\"4.11本章节内容的局限性\",\"link\":\"/技术资源汇总(杭电支持版)/4.人工智能/4.11本章节内容的局限性\"}]},{\"text\":\"5.富有生命的嵌入式\",\"collapsed\":true,\"items\":[{\"text\":\"5.富有生命的嵌入式\",\"link\":\"/技术资源汇总(杭电支持版)/5.富有生命的嵌入式/5.富有生命的嵌入式\"},{\"text\":\"5.1嵌入式是什么?可以吃吗?\",\"link\":\"/技术资源汇总(杭电支持版)/5.富有生命的嵌入式/5.1嵌入式是什么?可以吃吗?\"},{\"text\":\"5.2New meaning of C\",\"link\":\"/技术资源汇总(杭电支持版)/5.富有生命的嵌入式/5.2New meaning of C\"},{\"text\":\"5.3还玩裸机?上操作系统!\",\"link\":\"/技术资源汇总(杭电支持版)/5.富有生命的嵌入式/5.3还玩裸机?上操作系统!\"}]},{\"text\":\"6.计算机安全\",\"collapsed\":true,\"items\":[{\"text\":\"6.计算机安全\",\"link\":\"/技术资源汇总(杭电支持版)/6.计算机安全/6.计算机安全\"},{\"text\":\"6.1Web安全\",\"link\":\"/技术资源汇总(杭电支持版)/6.计算机安全/6.1Web安全\"},{\"text\":\"6.2二进制安全\",\"link\":\"/技术资源汇总(杭电支持版)/6.计算机安全/6.2二进制安全\"},{\"text\":\"6.3密码学\",\"link\":\"/技术资源汇总(杭电支持版)/6.计算机安全/6.3密码学\"},{\"text\":\"6.4安全杂项\",\"link\":\"/技术资源汇总(杭电支持版)/6.计算机安全/6.4安全杂项\"},{\"text\":\"6.5学习资料推荐\",\"link\":\"/技术资源汇总(杭电支持版)/6.计算机安全/6.5学习资料推荐\"}]},{\"text\":\"7.网络应用开发入门\",\"collapsed\":true,\"items\":[{\"text\":\"7.网络应用开发入门\",\"link\":\"/技术资源汇总(杭电支持版)/7.网络应用开发/7.网络应用开发入门\"},{\"text\":\"7.1WEB开发入门\",\"link\":\"/技术资源汇总(杭电支持版)/7.网络应用开发/7.1WEB开发入门\"},{\"text\":\"7.2前端部分\",\"link\":\"/技术资源汇总(杭电支持版)/7.网络应用开发/7.2.1基础(三件套)\"},{\"text\":\"7.3后端部分\",\"link\":\"/技术资源汇总(杭电支持版)/7.网络应用开发/7.3.1基础部分\"}]},{\"text\":\"8.基础学科\",\"collapsed\":true,\"items\":[{\"text\":\"8.基础学科\",\"link\":\"/技术资源汇总(杭电支持版)/8.基础学科/8.基础学科\"},{\"text\":\"8.1经济学科普Part1\",\"link\":\"/技术资源汇总(杭电支持版)/8.基础学科/8.1经济学科普Part1\"}]},{\"text\":\"9.计算机网络\",\"collapsed\":true,\"items\":[{\"text\":\"9.计算机网络\",\"link\":\"/技术资源汇总(杭电支持版)/9.计算机网络/9.计算机网络\"},{\"text\":\"9.1 计网速通\",\"link\":\"/技术资源汇总(杭电支持版)/9.计算机网络/9.1计网速通\"}]}],\"/技术资源汇总(杭电支持版)/2.高效学习/\":[{\"text\":\"返回上一层\",\"link\":\"/技术资源汇总(杭电支持版)/内容索引\"},{\"text\":\"2.高效学习\",\"collapsed\":false,\"items\":[{\"text\":\"2.高效学习\",\"link\":\"/技术资源汇总(杭电支持版)/2.高效学习/2.高效学习\"},{\"text\":\"2.1高效的前提:摆脱高中思维\",\"collapsed\":true,\"items\":[{\"text\":\"2.1高效的前提:摆脱高中思维\",\"link\":\"/技术资源汇总(杭电支持版)/2.高效学习/2.1高效的前提:摆脱高中思维\"},{\"text\":\"2.1.1悲壮的学习方式\",\"link\":\"/技术资源汇总(杭电支持版)/2.高效学习/2.1.1悲壮的学习方式\"},{\"text\":\"2.1.2浮躁的心理状态\",\"link\":\"/技术资源汇总(杭电支持版)/2.高效学习/2.1.2浮躁的心理状态\"},{\"text\":\"2.1.3错误的提问姿态\",\"link\":\"/技术资源汇总(杭电支持版)/2.高效学习/2.1.3错误的提问姿态\"},{\"text\":\"2.1.4书籍的盲目崇拜\",\"link\":\"/技术资源汇总(杭电支持版)/2.高效学习/2.1.4书籍的盲目崇拜\"},{\"text\":\"2.1.5错误的学习配比\",\"link\":\"/技术资源汇总(杭电支持版)/2.高效学习/2.1.5错误的学习配比\"}]},{\"text\":\"2.2优雅的使用工具\",\"link\":\"/技术资源汇总(杭电支持版)/2.高效学习/2.2优雅的使用工具\"},{\"text\":\"2.3高效的信息检索\",\"collapsed\":true,\"items\":[{\"text\":\"2.3高效的信息检索\",\"link\":\"/技术资源汇总(杭电支持版)/2.高效学习/2.3高效的信息检索\"},{\"text\":\"2.3.1阅读文档B百度爬\",\"link\":\"/技术资源汇总(杭电支持版)/2.高效学习/2.3.1阅读文档B百度爬\"},{\"text\":\"2.3.2检索论文核心内容\",\"link\":\"/技术资源汇总(杭电支持版)/2.高效学习/2.3.2检索论文核心内容\"},{\"text\":\"2.3.3优秀的开源社区\",\"link\":\"/技术资源汇总(杭电支持版)/2.高效学习/2.3.3优秀的开源社区\"},{\"text\":\"补充:为什么不要用百度\",\"link\":\"/技术资源汇总(杭电支持版)/2.高效学习/补充:为什么不要用百度\"}]},{\"text\":\"2.4优雅的记笔记\",\"link\":\"/技术资源汇总(杭电支持版)/2.高效学习/2.4优雅的记笔记\"},{\"text\":\"2.5以理工科的方式阅读英语\",\"link\":\"/技术资源汇总(杭电支持版)/2.高效学习/2.5以理工科的方式阅读英语\"},{\"text\":\"2.6学会使用AI辅助学习\",\"link\":\"/技术资源汇总(杭电支持版)/2.高效学习/2.6学会使用AI辅助学习\"}]}],\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/\":[{\"text\":\"返回上一层\",\"link\":\"/技术资源汇总(杭电支持版)/内容索引\"},{\"text\":\"3.编程思维体系构建\",\"collapsed\":false,\"items\":[{\"text\":\"3.编程思维体系构建\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.编程思维体系构建\"},{\"text\":\"3.0 编程入门之道\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.0 编程入门之道\"},{\"text\":\"3.1该使用哪个编辑器???\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.1该使用哪个编辑器???\"},{\"text\":\"3.2算法杂谈\",\"collapsed\":true,\"items\":[{\"text\":\"3.2算法杂谈\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.2算法杂谈\"},{\"text\":\"3.2.1手把手教你学算法——如何使用OJOnline Judge\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.2.1手把手教你学算法——如何使用OJOnline Judge\"},{\"text\":\"3.2.2ACM 竞赛从入门到入坟\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.2.2ACM 竞赛从入门到入坟\"}]},{\"text\":\"3.3如何选择编程语言\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.3如何选择编程语言\"},{\"text\":\"3.4C语言\",\"collapsed\":true,\"items\":[{\"text\":\"3.4C语言\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4C语言\"},{\"text\":\"3.4.1FAQ:常见问题\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.1FAQ:常见问题\"},{\"text\":\"3.4.2用什么写 C 语言\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.2用什么写 C 语言\"},{\"text\":\"3.4.3解决编程问题的普适性过程\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.3解决编程问题的普适性过程\"},{\"text\":\"3.4.4C语言前置概念学习\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.4C语言前置概念学习\"},{\"text\":\"3.4.5阶段一:编程属性\",\"collapsed\":true,\"items\":[{\"text\":\"3.4.5阶段一:编程属性\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.5阶段一:编程属性\"},{\"text\":\"3.4.5.1C语言自测标准——链表\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.5.1C语言自测标准——链表\"}]},{\"text\":\"3.4.6阶段二文字冒险cool\",\"collapsed\":true,\"items\":[{\"text\":\"3.4.6阶段二文字冒险cool\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.6阶段二文字冒险cool\"},{\"text\":\"3.4.6.1.开始冒险\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.6.1.开始冒险\"},{\"text\":\"3.4.6.2.探索未知\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.6.2.探索未知\"},{\"text\":\"3.4.6.3.指明地点\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.6.3.指明地点\"},{\"text\":\"3.4.6.4.创建对象\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.6.4.创建对象\"},{\"text\":\"3.4.6.5.捡起物品\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.6.5.捡起物品\"},{\"text\":\"3.4.6.6.绘制地图\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.6.6.绘制地图\"},{\"text\":\"3.4.6.7.增大距离\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.6.7.增大距离\"},{\"text\":\"3.4.6.8.移动方向\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.6.8.移动方向\"},{\"text\":\"3.4.6.9.练习:生成代码\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.6.9.练习:生成代码\"},{\"text\":\"3.4.6.10.增添属性\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.6.10.增添属性\"},{\"text\":\"3.4.6.11.设置条件\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.6.11.设置条件\"},{\"text\":\"3.4.6.12.开启关闭\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.6.12.开启关闭\"},{\"text\":\"3.4.6.13.编写解析器\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.6.13.编写解析器\"},{\"text\":\"3.4.6.14.丰富命令\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.6.14.丰富命令\"},{\"text\":\"3.4.6.15.赋予明暗\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.6.15.赋予明暗\"},{\"text\":\"3.4.6.16.结语:你终将自由\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.6.16.结语:你终将自由\"}]},{\"text\":\"3.4.7C基础知识杂谈\",\"collapsed\":true,\"items\":[{\"text\":\"3.4.7C基础知识杂谈\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.7C基础知识杂谈\"},{\"text\":\"3.4.7.1GDB初探索(编程可阅览)\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.7.1GDB初探索(编程可阅览)\"},{\"text\":\"3.4.7.1.1调试理论\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.7.1.1调试理论\"},{\"text\":\"3.4.7.2C的历史问题undefined behavior\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.7.2C的历史问题undefined behavior\"},{\"text\":\"3.4.7.3C编译器干了什么\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.7.3C编译器干了什么\"},{\"text\":\"3.4.7.4Inline Assembly与链接加载\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.4.7.4Inline Assembly与链接加载\"}]}]},{\"text\":\"3.5git与github\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.5git与github\"},{\"text\":\"3.6Python(灵巧的胶水)\",\"collapsed\":true,\"items\":[{\"text\":\"3.6Python(灵巧的胶水)\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.6Python(灵巧的胶水)\"},{\"text\":\"3.6.1从CS61A看编程语言学习\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.6.1从CS61A看编程语言学习\"},{\"text\":\"3.6.2环境配置\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.6.2环境配置\"},{\"text\":\"3.6.3安装python\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.6.3安装python\"},{\"text\":\"3.6.4Python for fun\",\"collapsed\":true,\"items\":[{\"text\":\"3.6.4Python for fun\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.6.4Python for fun\"},{\"text\":\"3.6.4.0阶段零Python解释器\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.6.4.0阶段零Python解释器\"},{\"text\":\"3.6.4.1阶段一:熟悉语句\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.6.4.1阶段一:熟悉语句\"},{\"text\":\"3.6.4.2阶段二:递归操作\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.6.4.2阶段二:递归操作\"},{\"text\":\"3.6.4.3阶段三:数据抽象\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.6.4.3阶段三:数据抽象\"},{\"text\":\"3.6.4.4阶段四:高阶函数\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.6.4.4阶段四:高阶函数\"},{\"text\":\"3.6.4.5阶段五:迭代生成\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.6.4.5阶段五:迭代生成\"},{\"text\":\"3.6.4.6结语\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.6.4.6结语\"}]}]},{\"text\":\"3.X 聊聊设计模式和程序设计\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.X 聊聊设计模式和程序设计\"},{\"text\":\"3.Y 附加模块Linux\",\"collapsed\":true,\"items\":[{\"text\":\"3.Y 附加模块Linux\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.Y 附加模块Linux\"},{\"text\":\"3.Y.1Linux概念普及\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.Y.1Linux概念普及\"},{\"text\":\"3.Y.2双系统安装和发行版推荐\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.Y.2双系统安装和发行版推荐\"},{\"text\":\"3.Y.3VMware的安装与安装Ubuntu22.04系统\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.Y.3VMware的安装与安装Ubuntu22.04系统\"},{\"text\":\"3.Y.4WSL的安装\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.Y.4WSL的安装\"},{\"text\":\"3.Y.5Linux初探索\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.Y.5Linux初探索\"},{\"text\":\"3.Y.6Vim初探索\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.Y.6Vim初探索\"},{\"text\":\"3.Y.7linux小任务\",\"link\":\"/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.Y.7linux小任务\"}]}]}],\"/技术资源汇总(杭电支持版)/4.人工智能/\":[{\"text\":\"返回上一层\",\"link\":\"/技术资源汇总(杭电支持版)/内容索引\"},{\"text\":\"4.人工智能\",\"collapsed\":false,\"items\":[{\"text\":\"4.人工智能\",\"link\":\"/技术资源汇总(杭电支持版)/4.人工智能/4.人工智能\"},{\"text\":\"4.1前言\",\"link\":\"/技术资源汇总(杭电支持版)/4.人工智能/4.1前言\"},{\"text\":\"4.2机器学习AI快速入门quick start\",\"link\":\"/技术资源汇总(杭电支持版)/4.人工智能/4.2机器学习AI快速入门quick start\"},{\"text\":\"4.3人工智能导论及机器学习入门\",\"collapsed\":true,\"items\":[{\"text\":\"4.3人工智能导论及机器学习入门\",\"link\":\"/技术资源汇总(杭电支持版)/4.人工智能/4.3人工智能导论及机器学习入门\"},{\"text\":\"4.3.1搜索\",\"collapsed\":true,\"items\":[{\"text\":\"4.3.1搜索\",\"link\":\"/技术资源汇总(杭电支持版)/4.人工智能/4.3.1搜索\"},{\"text\":\"4.3.1.1程序示例——maze迷宫解搜索\",\"link\":\"/技术资源汇总(杭电支持版)/4.人工智能/4.3.1.1程序示例——maze迷宫解搜索\"},{\"text\":\"4.3.1.2项目Tic-Tac-Toe井字棋\",\"link\":\"/技术资源汇总(杭电支持版)/4.人工智能/4.3.1.2项目Tic-Tac-Toe井字棋\"}]},{\"text\":\"4.3.2知识推理\",\"collapsed\":true,\"items\":[{\"text\":\"4.3.2知识推理\",\"link\":\"/技术资源汇总(杭电支持版)/4.人工智能/4.3.2知识推理\"},{\"text\":\"4.3.2.1程序示例——命题逻辑与模型检测\",\"link\":\"/技术资源汇总(杭电支持版)/4.人工智能/4.3.2.1程序示例——命题逻辑与模型检测\"},{\"text\":\"4.3.2.2项目:扫雷,骑士与流氓问题\",\"link\":\"/技术资源汇总(杭电支持版)/4.人工智能/4.3.2.2项目:扫雷,骑士与流氓问题\"}]},{\"text\":\"4.3.3不确定性问题\",\"collapsed\":true,\"items\":[{\"text\":\"4.3.3不确定性问题\",\"link\":\"/技术资源汇总(杭电支持版)/4.人工智能/4.3.3不确定性问题\"},{\"text\":\"4.3.3.1程序示例\",\"link\":\"/技术资源汇总(杭电支持版)/4.人工智能/4.3.3.1程序示例\"},{\"text\":\"4.3.3.2项目:遗传\",\"link\":\"/技术资源汇总(杭电支持版)/4.人工智能/4.3.3.2项目:遗传\"}]},{\"text\":\"4.3.4最优化\",\"collapsed\":true,\"items\":[{\"text\":\"4.3.4最优化\",\"link\":\"/技术资源汇总(杭电支持版)/4.人工智能/4.3.4最优化\"},{\"text\":\"4.3.4.1程序示例\",\"link\":\"/技术资源汇总(杭电支持版)/4.人工智能/4.3.4.1程序示例\"},{\"text\":\"4.3.4.2项目:填词游戏\",\"link\":\"/技术资源汇总(杭电支持版)/4.人工智能/4.3.4.2项目:填词游戏\"}]}]},{\"text\":\"4.4FAQ:常见问题\",\"link\":\"/技术资源汇总(杭电支持版)/4.人工智能/4.4FAQ:常见问题\"},{\"text\":\"4.5图网络略述intro&GCN\",\"link\":\"/技术资源汇总(杭电支持版)/4.人工智能/4.5图网络略述intro&GCN\"},{\"text\":\"4.6数据分析\",\"link\":\"/技术资源汇总(杭电支持版)/4.人工智能/4.6数据分析\"},{\"text\":\"4.7如何做研究\",\"link\":\"/技术资源汇总(杭电支持版)/4.人工智能/4.7如何做研究\"},{\"text\":\"4.8科研论文写作\",\"link\":\"/技术资源汇总(杭电支持版)/4.人工智能/4.8科研论文写作\"},{\"text\":\"4.9从 AI 到 智能系统 —— 从 LLMs 到 Agents\",\"link\":\"/技术资源汇总(杭电支持版)/4.人工智能/4.9从 AI 到 智能系统 —— 从 LLMs 到 Agents\"},{\"text\":\"4.10LLM Agent之结构化输出\",\"link\":\"/技术资源汇总(杭电支持版)/4.人工智能/4.10LLMAgent之结构化输出\"},{\"text\":\"4.11本章节内容的局限性\",\"link\":\"/技术资源汇总(杭电支持版)/4.人工智能/4.11本章节内容的局限性\"}]}],\"/技术资源汇总(杭电支持版)/5.富有生命的嵌入式/\":[{\"text\":\"返回上一层\",\"link\":\"/技术资源汇总(杭电支持版)/内容索引\"},{\"text\":\"5.富有生命的嵌入式\",\"collapsed\":false,\"items\":[{\"text\":\"5.富有生命的嵌入式\",\"link\":\"/技术资源汇总(杭电支持版)/5.富有生命的嵌入式/5.富有生命的嵌入式\"},{\"text\":\"5.1嵌入式是什么?可以吃吗?\",\"link\":\"/技术资源汇总(杭电支持版)/5.富有生命的嵌入式/5.1嵌入式是什么?可以吃吗?\"},{\"text\":\"5.2New meaning of C\",\"link\":\"/技术资源汇总(杭电支持版)/5.富有生命的嵌入式/5.2New meaning of C\"},{\"text\":\"5.3还玩裸机?上操作系统!\",\"link\":\"/技术资源汇总(杭电支持版)/5.富有生命的嵌入式/5.3还玩裸机?上操作系统!\"}]}],\"/技术资源汇总(杭电支持版)/6.计算机安全/\":[{\"text\":\"返回上一层\",\"link\":\"/技术资源汇总(杭电支持版)/内容索引\"},{\"text\":\"6.计算机安全\",\"collapsed\":false,\"items\":[{\"text\":\"6.计算机安全\",\"link\":\"/技术资源汇总(杭电支持版)/6.计算机安全/6.计算机安全\"},{\"text\":\"6.1Web安全\",\"collapsed\":true,\"items\":[{\"text\":\"6.1Web安全\",\"link\":\"/技术资源汇总(杭电支持版)/6.计算机安全/6.1Web安全\"},{\"text\":\"6.1.1SQL 注入\",\"link\":\"/技术资源汇总(杭电支持版)/6.计算机安全/6.1.1SQL 注入\"}]},{\"text\":\"6.2二进制安全\",\"collapsed\":true,\"items\":[{\"text\":\"6.2二进制安全\",\"link\":\"/技术资源汇总(杭电支持版)/6.计算机安全/6.2二进制安全\"},{\"text\":\"6.2.1基础工具的使用\",\"link\":\"/技术资源汇总(杭电支持版)/6.计算机安全/6.2.1基础工具的使用\"},{\"text\":\"6.2.2软件破解、软件加固\",\"link\":\"/技术资源汇总(杭电支持版)/6.计算机安全/6.2.2软件破解、软件加固\"},{\"text\":\"6.2.3漏洞挖掘、漏洞利用\",\"link\":\"/技术资源汇总(杭电支持版)/6.计算机安全/6.2.3漏洞挖掘、漏洞利用\"}]},{\"text\":\"6.3密码学\",\"link\":\"/技术资源汇总(杭电支持版)/6.计算机安全/6.3密码学\"},{\"text\":\"6.4安全杂项\",\"link\":\"/技术资源汇总(杭电支持版)/6.计算机安全/6.4安全杂项\"},{\"text\":\"6.5学习资料推荐\",\"link\":\"/技术资源汇总(杭电支持版)/6.计算机安全/6.5学习资料推荐\"}]}],\"/技术资源汇总(杭电支持版)/7.网络应用开发/\":[{\"text\":\"返回上一层\",\"link\":\"/技术资源汇总(杭电支持版)/内容索引\"},{\"text\":\"7.网络应用开发\",\"collapsed\":false,\"items\":[{\"text\":\"7.网络应用开发入门\",\"link\":\"/技术资源汇总(杭电支持版)/7.网络应用开发/7.网络应用开发入门\"},{\"text\":\"7.1WEB开发入门\",\"link\":\"/技术资源汇总(杭电支持版)/7.网络应用开发/7.1WEB开发入门\"},{\"text\":\"7.2前端部分\",\"collapsed\":true,\"items\":[{\"text\":\"7.2.1基础(三件套)\",\"link\":\"/技术资源汇总(杭电支持版)/7.网络应用开发/7.2.1基础(三件套)\"},{\"text\":\"7.2.2进阶(小项目)\",\"link\":\"/技术资源汇总(杭电支持版)/7.网络应用开发/7.2.2进阶(小项目)\"},{\"text\":\"7.2.3附录1前端介绍详细版\",\"link\":\"/技术资源汇总(杭电支持版)/7.网络应用开发/7.2.3附录1前端介绍详细版\"},{\"text\":\"7.2.4附录2大前端开发\",\"link\":\"/技术资源汇总(杭电支持版)/7.网络应用开发/7.2.4附录2大前端开发\"},{\"text\":\"7.2.5附录3跨端开发\",\"link\":\"/技术资源汇总(杭电支持版)/7.网络应用开发/7.2.5附录3跨端开发\"}]},{\"text\":\"7.3后端部分\",\"collapsed\":true,\"items\":[{\"text\":\"7.3后端部分\",\"link\":\"/技术资源汇总(杭电支持版)/7.网络应用开发/7.3后端部分\"},{\"text\":\"7.3.1基础部分\",\"link\":\"/技术资源汇总(杭电支持版)/7.网络应用开发/7.3.1基础部分\"},{\"text\":\"7.3.2进阶部分\",\"link\":\"/技术资源汇总(杭电支持版)/7.网络应用开发/7.3.2进阶部分\"}]}]}],\"/技术资源汇总(杭电支持版)/8.基础学科/\":[{\"text\":\"返回上一层\",\"link\":\"/技术资源汇总(杭电支持版)/内容索引\"},{\"text\":\"8.基础学科\",\"collapsed\":false,\"items\":[{\"text\":\"8.基础学科\",\"link\":\"/技术资源汇总(杭电支持版)/8.基础学科/8.基础学科\"},{\"text\":\"8.1经济学科普Part1\",\"link\":\"/技术资源汇总(杭电支持版)/8.基础学科/8.1经济学科普Part1\"}]}],\"/技术资源汇总(杭电支持版)/9.计算机网络/\":[{\"text\":\"返回上一层\",\"link\":\"/技术资源汇总(杭电支持版)/内容索引\"},{\"text\":\"9.计算机网络\",\"collapsed\":false,\"items\":[{\"text\":\"9 计算机网络\",\"link\":\"/技术资源汇总(杭电支持版)/9.计算机网络/9.计算机网络\"},{\"text\":\"9.1 计网速通\",\"link\":\"/技术资源汇总(杭电支持版)/9.计算机网络/9.1计网速通\"},{\"text\":\"9.2.1 物理层(待完成)\"},{\"text\":\"9.2.2 链路层(待完成)\"},{\"text\":\"9.2.3 网络层\",\"collapsed\":true,\"items\":[{\"text\":\"9.2.3 网络层\",\"link\":\"/技术资源汇总(杭电支持版)/9.计算机网络/9.2.3网络层\"},{\"text\":\"9.2.3.1 IP 协议\",\"link\":\"/技术资源汇总(杭电支持版)/9.计算机网络/9.2.3.1IP协议\"},{\"text\":\"9.2.3.2 子网与无类域间路由\",\"link\":\"/技术资源汇总(杭电支持版)/9.计算机网络/9.2.3.2子网与无类域间路由\"}]}]}]},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://gitea.xinxijishubu.asia/moyin/fzu-product\"}],\"search\":{\"provider\":\"local\"},\"footer\":{\"message\":\"Made with ❤️ by ALL 协作者\",\"copyright\":\"Copyright © 2023-present Evan You && ALL 协作者\"},\"lastUpdatedText\":\"上次更改\",\"docFooter\":{\"prev\":\"上一小节\",\"next\":\"下一小节\"},\"editLink\":{\"pattern\":\"https://gitea.xinxijishubu.asia/moyin/fzu-product/src/branch/main/:path\",\"text\":\"在 Gitea 上修改此页\"},\"externalLinkIcon\":true},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
</body>
</html>