chore(i8n,learn): processed translations

This commit is contained in:
Crowdin Bot
2021-02-06 04:42:36 +00:00
committed by Mrugesh Mohapatra
parent 15047f2d90
commit e5c44a3ae5
3274 changed files with 172122 additions and 14164 deletions

View File

@@ -1,64 +1,113 @@
---
id: 59694356a6e7011f7f1c5f4e
title: FreeCell的交易卡
title: Deal cards for FreeCell
challengeType: 5
videoUrl: ''
forumTopicId: 302246
dashedName: deal-cards-for-freecell
---
# --description--
<p> Free Cell是Paul Alfille在1978年向PLATO系统推出的单人纸牌游戏。微软的Jim Horne将名称更改为FreeCell并重新实现了<a href='http://rosettacode.org/wiki/DOS' title='DOS'>DOS</a>游戏,然后是<a href='http://rosettacode.org/wiki/Windows' title='视窗'>Windows</a>游戏。 </p><p>这个版本引入了32000个编号的交易。 <a href='http://www.solitairelaboratory.com/fcfaq.html' title='链接http//www.solitairelaboratory.com/fcfaq.html'>FreeCell FAQ</a>讲述了这段历史。) </p><p>随着游戏的流行Jim Horne披露<a href='http://www.solitairelaboratory.com/mshuffle.txt' title='链接http//www.solitairelaboratory.com/mshuffle.txt'>了这种算法</a> FreeCell的其他实现开始重现微软的交易。 </p><p>这些交易编号从1到32000。 </p><p>微软的新版本有100万笔交易编号从1到1000000;某些实现允许该范围之外的数字。 </p><p>该算法使用Microsoft C的这种<a href='http://rosettacode.org/wiki/linear congruential generator' title='线性同余发生器'>线性同余生成器</a> </p> $ state\_ {n + 1} \\ equiv 214013 \\ times state_n + 2531011 \\ pmod {2 ^ {31}} $ $ rand_n = state_n \\ div 2 ^ {16} $ $ rand_n $的范围是0到32767。 <p>该算法如下: </p>使用交易编号为RNG播种。创建一个由52张牌组成的<a href='http://rosettacode.org/wiki/array' title='排列'>阵列</a> 俱乐部的王牌钻石王牌心中的王牌黑桃王牌2个俱乐部2个钻石等等等等Ace2,3,4,5,6 7,8,9,10杰克女王国王。数组索引为0到51其中俱乐部的Ace为0黑桃之王为51.直到数组为空在索引≡下一个随机数mod数组长度中选择随机卡。将此随机卡与阵列的最后一张卡交换。从阵列中删除此随机卡。 数组长度减少1.处理此随机卡。交易所有52张牌面朝上横跨8列。前8张牌分为8列后8张牌分为8张依此类推。例 <p>订购交易卡</p><p></p><pre> 1 2 3 4 5 6 7 8
*FreeCell* is the solitaire card game that Paul Alfille introduced to the PLATO system in 1978. Jim Horne, at Microsoft, changed the name to FreeCell and reimplemented the game for [DOS](https://rosettacode.org/wiki/DOS "DOS"), then [Windows](https://rosettacode.org/wiki/Windows "Windows"). This version introduced 32000 numbered deals.
As the game became popular, Jim Horne disclosed the algorithm, and other implementations of FreeCell began to reproduce the Microsoft deals. These deals are numbered from 1 to 32000. Newer versions from Microsoft have 1 million deals, numbered from 1 to 1000000; some implementations allow numbers outside that range.
The algorithm uses this [linear congruential generator](https://rosettacode.org/wiki/linear congruential generator "linear congruential generator") from Microsoft C:
<ul>
<li>$state_{n + 1} \equiv 214013 \times state_n + 2531011 \pmod{2^{31}}$</li>
<li>$rand_n = state_n \div 2^{16}$</li>
<li>$rand_n$ is in range 0 to 32767.</li>
</ul>
The algorithm follows:
<ol>
<li>Seed the RNG with the number of the deal.
</li><li>Create an <a href='https://rosettacode.org/wiki/array' title='array' target='_blank'>array</a> of 52 cards: Ace of Clubs, Ace of Diamonds, Ace of Hearts, Ace of Spades, 2 of Clubs, 2 of Diamonds, and so on through the ranks: Ace, 2, 3, 4, 5, 6, 7, 8, 9, 10, Jack, Queen, King. The array indexes are 0 to 51, with Ace of Clubs at 0, and King of Spades at 51.</li>
<li>Until the array is empty:</li>
<li>Choose a random card at index ≡ next random number (mod array length).</li>
<ul>
<li>Swap this random card with the last card of the array.</li>
<li>Remove this random card from the array. (Array length goes down by 1.)</li>
<li>Deal this random card.</li>
</ul>
<li>Deal all 52 cards, face up, across 8 columns. The first 8 cards go in 8 columns, the next 8 cards go on the first 8 cards, and so on.</li>
</ol>
**Example:**
**Order to deal cards**
<pre> 1 2 3 4 5 6 7 8
9 10 11 12 13 14 15 16
17 18 19 20 21 22 23 24
25 26 27 28 29 30 31 32
33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48
49 50 51 52 </pre><p></p><p>游戏1 </p><p></p><pre> [
['JD''2D''9H''JC''5D''7H''7C''5H']
['KD''KC''9S''5S''AD''QC''KH''3H']
['2S''KS''9D''QD''JS''AS''AH''3C']
['4C''5C''TS''QH''4H''AC''4D''7S']
['3S''TD''4S''TH''8H''2C''JH''7D']
['6D''8S''8D''QS''6C''3D''8C''TC']
['6S''9C''2H''6H']
] </pre><p></p><p>游戏617 </p><p></p><pre> [
['7D''AD''5C''3S''5S''8C''2D''AH']
['TD''7S''QD''AC''6D''8H''AS''KH']
['TH''QC''3H''9D''6S''8D''3D''TC']
['KD''5H''9S''3C''8S''7H''4D''JS']
['4C''QS''9C''9H''7C''6H''2C''2S']
['4S''TS''2H''5D''JC''6C''JH''QH']
['JD''KS''KC''4H']
] </pre><p></p>任务: <p>编写一个函数来获取交易编号并按照与此算法相同的顺序处理卡。 </p><p>该函数必须返回表示FreeCell板的二维数组。 </p><p>还可以针对<a href='http://freecellgamesolutions.com/' title='链接http//freecellgamesolutions.com/'>1000000游戏的FreeCell解决方案</a>检查交易。 </p><p> (召唤一个视频解决方案,它会显示初始交易。) </p>
49 50 51 52</pre>
**Game #1**
```js
[
['JD', '2D', '9H', 'JC', '5D', '7H', '7C', '5H'],
['KD', 'KC', '9S', '5S', 'AD', 'QC', 'KH', '3H'],
['2S', 'KS', '9D', 'QD', 'JS', 'AS', 'AH', '3C'],
['4C', '5C', 'TS', 'QH', '4H', 'AC', '4D', '7S'],
['3S', 'TD', '4S', 'TH', '8H', '2C', 'JH', '7D'],
['6D', '8S', '8D', 'QS', '6C', '3D', '8C', 'TC'],
['6S', '9C', '2H', '6H']
]
```
**Game #617**
```js
[
['7D', 'AD', '5C', '3S', '5S', '8C', '2D', 'AH'],
['TD', '7S', 'QD', 'AC', '6D', '8H', 'AS', 'KH'],
['TH', 'QC', '3H', '9D', '6S', '8D', '3D', 'TC'],
['KD', '5H', '9S', '3C', '8S', '7H', '4D', 'JS'],
['4C', 'QS', '9C', '9H', '7C', '6H', '2C', '2S'],
['4S', 'TS', '2H', '5D', 'JC', '6C', 'JH', 'QH'],
['JD', 'KS', 'KC', '4H']
]
```
# --instructions--
Write a function to take a deal number and deal cards in the same order as this algorithm. The function must return a two dimensional array representing the FreeCell board.
Deals can also be checked against [FreeCell solutions to 1000000 games](https://freecellgamesolutions.com/). (Summon a video solution, and it displays the initial deal.)
# --hints--
`dealFreeCell`是一个功能。
`dealFreeCell` should be a function.
```js
assert(typeof dealFreeCell === 'function');
```
`dealFreeCell(seed)`应该返回一个对象。
`dealFreeCell(seed)` should return an object.
```js
assert(typeof dealFreeCell(1) === 'object');
```
`dealFreeCell(seed)`应该返回一个长度为7的数组。
`dealFreeCell(seed)` should return an array of length 7.
```js
assert(dealFreeCell(1).length === 7);
```
`dealFreeCell(1)`应该返回一个与示例“Game1”相同的数组
`dealFreeCell(1)` should return an array identical to example "Game #1"
```js
assert.deepEqual(dealFreeCell(1), game1);
```
`dealFreeCell(617)`应该返回一个与示例“Game617”相同的数组
`dealFreeCell(617)` should return an array identical to example "Game #617"
```js
assert.deepEqual(dealFreeCell(617), game617);