9148d06d49 2023-07-05 1: <!DOCTYPE html>
9148d06d49 2023-07-05 2: <html xmlns="http://www.w3.org/1999/xhtml" lang xml:lang>
9148d06d49 2023-07-05 3: <head>
9148d06d49 2023-07-05 4: <meta charset="utf-8" />
9148d06d49 2023-07-05 5: <meta name="generator" content="pandoc" />
9148d06d49 2023-07-05 6: <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
9148d06d49 2023-07-05 7: <title>关于二解</title>
9148d06d49 2023-07-05 8: <style>
9148d06d49 2023-07-05 9: code{white-space: pre-wrap;}
9148d06d49 2023-07-05 10: span.smallcaps{font-variant: small-caps;}
9148d06d49 2023-07-05 11: div.columns{display: flex; gap: min(4vw, 1.5em);}
9148d06d49 2023-07-05 12: div.column{flex: auto; overflow-x: auto;}
9148d06d49 2023-07-05 13: div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
9148d06d49 2023-07-05 14:
9148d06d49 2023-07-05 15: ul.task-list[class]{list-style: none;}
9148d06d49 2023-07-05 16: ul.task-list li input[type="checkbox"] {
9148d06d49 2023-07-05 17: font-size: inherit;
9148d06d49 2023-07-05 18: width: 0.8em;
9148d06d49 2023-07-05 19: margin: 0 0.8em 0.2em -1.6em;
9148d06d49 2023-07-05 20: vertical-align: middle;
9148d06d49 2023-07-05 21: }
9148d06d49 2023-07-05 22: .display.math{display: block; text-align: center; margin: 0.5rem auto;}
9148d06d49 2023-07-05 23: </style>
9148d06d49 2023-07-05 24: <style type="text/css">
9148d06d49 2023-07-05 25: @media screen and (min-aspect-ratio:1/1) {
9148d06d49 2023-07-05 26: html {
9148d06d49 2023-07-05 27: background-color: f8f8f8;
9148d06d49 2023-07-05 28: background-image:
9148d06d49 2023-07-05 29: linear-gradient(
9148d06d49 2023-07-05 30: 45deg,
9148d06d49 2023-07-05 31: #eee 25%,
9148d06d49 2023-07-05 32: transparent 25%,
9148d06d49 2023-07-05 33: transparent 75%,
9148d06d49 2023-07-05 34: #eee 75%),
9148d06d49 2023-07-05 35: linear-gradient(
9148d06d49 2023-07-05 36: 45deg,
9148d06d49 2023-07-05 37: #eee 25%,
9148d06d49 2023-07-05 38: transparent 25%,
9148d06d49 2023-07-05 39: transparent 75%,
9148d06d49 2023-07-05 40: #eee 75%);
9148d06d49 2023-07-05 41: background-size: 8px 8px;
9148d06d49 2023-07-05 42: background-position: 0 0, 16px 8px;
9148d06d49 2023-07-05 43: }
9148d06d49 2023-07-05 44: body {
9148d06d49 2023-07-05 45: border: solid #a0a0a0 1px ;
9148d06d49 2023-07-05 46: border-radius: 20px ;
9148d06d49 2023-07-05 47: padding: 26px ;
9148d06d49 2023-07-05 48: margin: 16px ;
9148d06d49 2023-07-05 49: color: #101010 ;
9148d06d49 2023-07-05 50: background-color: #efefef;
9148d06d49 2023-07-05 51: padding: 2em 18%;
9148d06d49 2023-07-05 52: }
9148d06d49 2023-07-05 53: }
9148d06d49 2023-07-05 54: h1,h2,h3,h4,h5,h6 {
9148d06d49 2023-07-05 55: font-size: 1.5em;
9148d06d49 2023-07-05 56: color: #3F5770;
9148d06d49 2023-07-05 57: border-bottom: 0.1em solid #666666;
9148d06d49 2023-07-05 58: margin: 1.2em 0em;
9148d06d49 2023-07-05 59: }
9148d06d49 2023-07-05 60: a {
9148d06d49 2023-07-05 61: background-color: white;
9148d06d49 2023-07-05 62: text-decoration-color: blue;
9148d06d49 2023-07-05 63: }
9148d06d49 2023-07-05 64: a:visited {
9148d06d49 2023-07-05 65: color: blue;
9148d06d49 2023-07-05 66: text-decoration-color: white;
9148d06d49 2023-07-05 67: }
9148d06d49 2023-07-05 68: nav ul li {
9148d06d49 2023-07-05 69: margin: 1.2em 0em;
9148d06d49 2023-07-05 70: }
9148d06d49 2023-07-05 71: p::before {
9148d06d49 2023-07-05 72: content: " ";
9148d06d49 2023-07-05 73: }
9148d06d49 2023-07-05 74: p {
9148d06d49 2023-07-05 75: margin: 1.2em 0;
9148d06d49 2023-07-05 76: }
9148d06d49 2023-07-05 77: .title {
9148d06d49 2023-07-05 78: background-color: white;
9148d06d49 2023-07-05 79: font-size: 2em;
9148d06d49 2023-07-05 80: text-align: center;
9148d06d49 2023-07-05 81: }
9148d06d49 2023-07-05 82: b {
9148d06d49 2023-07-05 83: background-color: white;
9148d06d49 2023-07-05 84: }
9148d06d49 2023-07-05 85: a {
9148d06d49 2023-07-05 86: target: _blank;
9148d06d49 2023-07-05 87: }
9148d06d49 2023-07-05 88: </style>
9148d06d49 2023-07-05 89: <!--[if lt IE 9]>
9148d06d49 2023-07-05 90: <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
9148d06d49 2023-07-05 91: <![endif]-->
9148d06d49 2023-07-05 92: </head>
9148d06d49 2023-07-05 93: <body>
9148d06d49 2023-07-05 94: <div class="title">
9148d06d49 2023-07-05 95: 关于二解
9148d06d49 2023-07-05 96: </div>
9148d06d49 2023-07-05 97: <p>「二解」指超越了原残局作者设定血量的解局方法。</p>
9148d06d49 2023-07-05 98: <hr />
9148d06d49 2023-07-05 99: <p>有些残局作者(如
9148d06d49 2023-07-05 100: QB)会故意降低残局的解局血量,以求血量好看或减少对玩家的压迫感或诱惑玩家解局。他们甚至可能会在残局里添加只用于减少伤害的减伤卡(如《伤害瘦身》)。在这些残局作者的设计下,残局会自然而然的拥有大量二解。</p>
9148d06d49 2023-07-05 101: <hr />
9148d06d49 2023-07-05 102: <p>实战与残局的逻辑其实是不一样的。实战的信息不是完全公开的,而残局的信息是完全公开的。因此,实战其实是求不完全信息博奕下的最优解,而残局则是求完全信息博奕下的最优解。残局作者主动将最优解的血量换成次优解甚至更次解,是残局作者的自由,并且也与实战更为相似,即实战中的玩家尚未求得不完全信息博奕下的最优解,决斗便已结束了。</p>
9148d06d49 2023-07-05 103: <hr />
9148d06d49 2023-07-05 104: <p>实战难以多次重复,而残局可以多次重复,因此在残局中求得最优解是可以做到的。而若残局作者把血定低了,则解法会容忍少许的渣操。考虑到高超的操作所带来的乐趣会边际效应递减,则提高解法的容错率将是一种思路。</p>
9148d06d49 2023-07-05 105: <hr />
9148d06d49 2023-07-05 106: <p>其实,残局作者把解局血量定低的最大危害是:残局难以进步了。由于能力、精力、时间等各种因素的制约,残局作者所知道的最优解未必是该残局真正的最优解,在这一前提下把残局解局血量定低了,则真正的最优解将很难出现。</p>
9148d06d49 2023-07-05 107: <hr />
9148d06d49 2023-07-05 108: <p>实战与残局还有一点不同:实战总有些局面会让玩家十死无生,而残局即使再难,它也是有解的,会给玩家留下九死一生的希望。抱持着希望的残局玩家,将在残局中做到淋漓尽致的反击。此即「长风破浪会有时,直挂云帆济沧海」 。在这一过程中,将有诸多古怪思路涌现,很有可能会出现二解。</p>
9148d06d49 2023-07-05 109: <hr />
9148d06d49 2023-07-05 110: <p>有一种残局制作方法是将一大堆的相关卡片迅速摆好局面,然后通过残局作者的测试来获取解局血量,典型的代表者如无名、幽厉。据无名所说,有了残局编辑器后,局面很快就能摆好,但测试却需要花费远比摆残局更多的时间。这一方法,其实指明了残局的重点应该是测试,更进一步地说,应该是二解,再本质一点说,是残局解法认知的进步。「文章本天成,妙手偶得之」 ,残局作者把血定高,才能倒逼玩家操作高超。</p>
9148d06d49 2023-07-05 111: <hr />
9148d06d49 2023-07-05 112: <p>残局作者只知道他目前所知的最优解,但可以肯定有人是打不到这个解的,那么残局作者该去迁就他们吗?迁就到什么水平的玩家才合适呢?(可以靠发布多版本残局来解决这一层次矛盾)</p>
9148d06d49 2023-07-05 113: <hr />
9148d06d49 2023-07-05 114: <p>残局作者并不需要尽善尽美,只需做到有解即可。残局作者是残局的第一个玩家,他可能玩的并不好,但会成为后来者的一个参照。</p>
9148d06d49 2023-07-05 115: <script>
9148d06d49 2023-07-05 116:
9148d06d49 2023-07-05 117: document.onmouseup = function(event) {
9148d06d49 2023-07-05 118: var 元素 = event.target
9148d06d49 2023-07-05 119:
9148d06d49 2023-07-05 120: if (元素.tagName == "PRE"
9148d06d49 2023-07-05 121: || 元素.tagName == "CODE") {
9148d06d49 2023-07-05 122: var 文本 = 元素.textContent
9148d06d49 2023-07-05 123: navigator.clipboard.writeText(文本)
9148d06d49 2023-07-05 124: }
9148d06d49 2023-07-05 125:
9148d06d49 2023-07-05 126: }
9148d06d49 2023-07-05 127:
9148d06d49 2023-07-05 128: document.addEventListener('touchend', function(event) {
9148d06d49 2023-07-05 129: var target = event.target;
9148d06d49 2023-07-05 130: if (target.tagName == "PRE" || target.tagName == "CODE") {
9148d06d49 2023-07-05 131: var range = document.createRange();
9148d06d49 2023-07-05 132: range.selectNodeContents(target);
9148d06d49 2023-07-05 133: window.getSelection().removeAllRanges();
9148d06d49 2023-07-05 134: window.getSelection().addRange(range);
9148d06d49 2023-07-05 135: var successful = document.execCommand('copy');
9148d06d49 2023-07-05 136: target.removeAttribute('contenteditable');
9148d06d49 2023-07-05 137: window.getSelection().removeAllRanges();
9148d06d49 2023-07-05 138: }
9148d06d49 2023-07-05 139: });
9148d06d49 2023-07-05 140:
9148d06d49 2023-07-05 141:
9148d06d49 2023-07-05 142:
9148d06d49 2023-07-05 143: </script>
9148d06d49 2023-07-05 144: </body>
9148d06d49 2023-07-05 145: </html>