<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>游戏 on 一共十七划</title>
		<link>https://noirzh.com/tags/%E6%B8%B8%E6%88%8F/</link>
		<description>Recent content in 游戏 on 一共十七划</description>
		<generator>Hugo</generator>
		<language>zh-CN</language>
		
		
		
		
			<lastBuildDate>Mon, 13 Nov 2023 09:18:45 +0800</lastBuildDate>
		
			<atom:link href="https://noirzh.com/tags/%E6%B8%B8%E6%88%8F/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>[A=B]攻略-第一章</title>
				<link>https://noirzh.com/a-one-instruction-esolang-chapter-1/</link>
				<pubDate>Sun, 24 Sep 2023 19:34:01 +0800</pubDate>
				<guid>https://noirzh.com/a-one-instruction-esolang-chapter-1/</guid>
				<description>&lt;h2&gt;前言&lt;/h2&gt;&#xD;&#xA;&lt;p&gt;A=B是一个很好的游戏,建议各位去玩,&lt;a href=&#34;https://store.steampowered.com/app/1720850/AB/&#34;&gt;商店链接&lt;/a&gt;&lt;/p&gt;&#xD;&#xA;&lt;p&gt;题目从简单到困难,有的时候梯度很大,争取慢慢把这系列做出来,主要是带题解的&lt;/p&gt;&#xD;&#xA;&lt;p&gt;不是很喜欢魔数写法,所以大概会更新地很慢&lt;/p&gt;&#xD;&#xA;&lt;p&gt;最后,这个游戏真的很有意思&lt;/p&gt;&#xD;&#xA;&lt;h2&gt;1.1 A到B&lt;/h2&gt;&#xD;&#xA;&lt;p&gt;没什么好说的&lt;/p&gt;&#xD;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code class=&#34;language-python&#34;&gt;a=b&lt;/code&gt;&lt;/pre&gt;&#xD;&#xA;&lt;h2&gt;1.2 大写&lt;/h2&gt;&#xD;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code class=&#34;language-python&#34;&gt;a=A&#xD;&#xA;b=B&#xD;&#xA;c=C&lt;/code&gt;&lt;/pre&gt;&#xD;&#xA;&lt;h2&gt;1.3 去重&lt;/h2&gt;&#xD;&#xA;&lt;h3&gt;思路&lt;/h3&gt;&#xD;&#xA;&lt;p&gt;显然我们最后要保留的状态是没有连续字母&lt;/p&gt;&#xD;&#xA;&lt;p&gt;只需要将重复的几个压成一个就行,不过要注意A=B这个语言的特殊性&lt;/p&gt;&#xD;&#xA;&lt;h3&gt;代码&lt;/h3&gt;&#xD;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code class=&#34;language-python&#34;&gt;aa=a&#xD;&#xA;bb=b&#xD;&#xA;cc=c&lt;/code&gt;&lt;/pre&gt;&#xD;&#xA;&lt;h2&gt;1.4 去重 2&lt;/h2&gt;&#xD;&#xA;&lt;h3&gt;思路&lt;/h3&gt;&#xD;&#xA;&lt;p&gt;同理,这个是把连续的a压没,&lt;/p&gt;&#xD;&#xA;&lt;p&gt;这里之所以会有aaa,而不是直接&lt;code&gt;aa=&lt;/code&gt;是因为假如只压缩的可能会剩下来:例如&lt;code&gt;aaa&lt;/code&gt;会被替换成&lt;code&gt;a&lt;/code&gt;&lt;/p&gt;&#xD;&#xA;&lt;p&gt;,我们这么做的本质是将多的字母先压成两个,再把这两个消除掉&lt;/p&gt;&#xD;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code class=&#34;language-python&#34;&gt;aaa=aa&#xD;&#xA;aa=&lt;/code&gt;&lt;/pre&gt;&#xD;&#xA;&lt;h2&gt;1.5 排序&lt;/h2&gt;&#xD;&#xA;&lt;h3&gt;思路&lt;/h3&gt;&#xD;&#xA;&lt;p&gt;研究语言的必经之路,排序,注意到我们现在在做的是替换字符串&lt;/p&gt;&#xD;&#xA;&lt;p&gt;我们的目的是希望各个字母都在其应该在的位置,但我们不知道数组下标,怎么样能达成这两个条件呢?&lt;/p&gt;&#xD;&#xA;&lt;p&gt;我们需要一个只看相邻的排序算法,也就是冒泡算法,实现起来不难,如下&lt;/p&gt;&#xD;&#xA;&lt;h3&gt;代码&lt;/h3&gt;&#xD;&#xA;&lt;p&gt;看到了吗,本质就是大的向后挪动,这个在单步运行时候看的更清楚&lt;/p&gt;&#xD;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code class=&#34;language-python&#34;&gt;ba=ab&#xD;&#xA;cb=bc&#xD;&#xA;ca=ac&lt;/code&gt;&lt;/pre&gt;&#xD;&#xA;&lt;p&gt;这个排序在之后会常用到的,当我们只关心字母数量之类的而不关心其位置的时候&lt;/p&gt;&#xD;&#xA;&lt;h2&gt;1.6 比较&lt;/h2&gt;&#xD;&#xA;&lt;h3&gt;思路&lt;/h3&gt;&#xD;&#xA;&lt;p&gt;比较a和b的多少,还记得去重怎么做的吗?把两个相同的数摁在一起消除&lt;/p&gt;&#xD;&#xA;&lt;p&gt;这个题也一样,我们把两个不同的字母摁在一起消除,剩下的就是多的字母&lt;/p&gt;&#xD;&#xA;&lt;p&gt;值得一提的是压字母存在两个情况&lt;/p&gt;&#xD;&#xA;&lt;h3&gt;代码&lt;/h3&gt;&#xD;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code class=&#34;language-python&#34;&gt;ab=&#xD;&#xA;ba=&#xD;&#xA;aa=a&#xD;&#xA;bb=b&lt;/code&gt;&lt;/pre&gt;</description>
			</item>
	</channel>
</rss>
