TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

A history of Tetris randomizers (2018)

120 点作者 Impossible超过 5 年前

10 条评论

simonlc超过 5 年前
One randomizer I left out of this article (for the sake of brevity) is the Game Boy&#x27;s version. It has much more bias as detailed in the post below. According to The Tetris Company founder it was also a last minute addition to the game. When they were testing a late build by Nintendo, it had a fixed sequence or something like that. So Nintendo flew in some devs to where Henk was, and over the weekend they programmed this new randomizer.<p><a href="https:&#x2F;&#x2F;tetrisconcept.net&#x2F;threads&#x2F;randomizer-theory.512&#x2F;page-9#post-51035" rel="nofollow">https:&#x2F;&#x2F;tetrisconcept.net&#x2F;threads&#x2F;randomizer-theory.512&#x2F;page...</a>
评论 #20875864 未加载
评论 #20878779 未加载
spbaar超过 5 年前
Not listed here is Tetris the Grandmaster 2. TGM2 hits the sweet spot between tgm1 and tgm3 in terms of predictability from the perspective of many fans. It increases the number of rolls to avoid dealing a piece in the 4-piece long history from 4 to 6. Essentially, it decreases the odds of a &quot;history duplicate&quot; from ~10% to 3%. With a 1 piece preview, it encourages a very unique type of planning, where you know what piece you need to prepare for immediately (at high speeds this means holding inputs before it even enters the play field), and also know with almost certainty the next piece is going to be 1 of 4 pieces. Unlike bag systems where the duplicate chance is 2% every 7 pieces here it&#x27;s only 1% constantly, and the chance of drought is also much lower than bag. The chance of a 10 piece drought for I pieces is almost 0, but you&#x27;re basically guaranteed to have a random unpleasant drought of 11-13 pieces in a long enough bag7 game. This strongly encourages you to use the hold mechanic strategically for safety, breaking flow and speed.<p>This may all seem academic, and it is very important for the type of high speed games tgm is, but it really is the biggest thing I miss playing modern tetris games. Barring other gimmicks, you build and plan the exact same way in every modern tetris game. With the ever present hold mechanic to switch out a piece, you don&#x27;t even need multiple piece previews that some new games give you. Consider, after playing 3 pieces, you know with certainty the next 4. With the hold plus 1 piece preview, you spend over half your time in the second half of the bag knowing the next three pieces.
评论 #20880035 未加载
evilotto超过 5 年前
Maybe not an &quot;official&quot; tetris game, but the the BasTet randomizer is worth a mention - it tries to give you the worst possible block at all times. &gt;:)<p><a href="http:&#x2F;&#x2F;fph.altervista.org&#x2F;prog&#x2F;bastet.html" rel="nofollow">http:&#x2F;&#x2F;fph.altervista.org&#x2F;prog&#x2F;bastet.html</a>
评论 #20877934 未加载
评论 #20874631 未加载
bjourne超过 5 年前
There is actually a &quot;Tetris Standard&quot; written by Colin Fahey which mandates that tetrominoes should be drawn from a Bernoulli distribution. <a href="https:&#x2F;&#x2F;www.colinfahey.com&#x2F;tetris&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.colinfahey.com&#x2F;tetris&#x2F;</a><p>&quot;When a piece is spawned, the type of piece is selected using the following algorithm: pieceIndex = 1 + (randomInteger % 7); &#x2F;&#x2F; 1..7 Because there is a constant p (= 1&#x2F;7) chance of selecting a specific kind of piece, and all pieces of the same type are indistinguishable, the probability of having exactly k pieces of a specific type after n trials follows a Binomial distribution&quot;<p>However, the standard isn&#x27;t adopted by all. A competing set of guidelines says that the tetrominoes should be generated using the bag of 7 system described in the article. <a href="https:&#x2F;&#x2F;tetris.wiki&#x2F;Tetris_Guideline" rel="nofollow">https:&#x2F;&#x2F;tetris.wiki&#x2F;Tetris_Guideline</a>
评论 #20876921 未加载
bArray超过 5 年前
My thinking would be to bias piece selection based on a complete history of previous selection, i.e.:<p><pre><code> const pieces = [&#x27;I&#x27;, &#x27;J&#x27;, &#x27;L&#x27;, &#x27;O&#x27;, &#x27;S&#x27;, &#x27;T&#x27;, &#x27;Z&#x27;]; byte[] probs = [32, 32, 32, 32, 32, 32, 32]; piece getRandPiece(){ int v = Math.random(pieces.length * 32) int sum = 0; int r = 0; for(int x = 0; x &lt; pieces.length; x++){ sum += probs[x]; &#x2F;&#x2F; check if random value with range if(v &lt; sum){ probs[x] -= pieces.length + 1; r = x; } &#x2F;&#x2F; increase the probability of each piece being selected ++probs[x]; } return pieces[r]; } </code></pre> I think the benefits would be:<p>* Unlikely flood and drought<p>* Completes in a predictable time (will always loop for each piece)<p>* One random number requested (can be surprisingly expensive if on a slow processor or excessive numbers of calls are made)<p>Are there any negatives to this approach?
评论 #20879649 未加载
maaaats超过 5 年前
&gt; The 7-bag has a consistent piece output, making it more predictable. It’s easy to know where in a bag you are, and when a piece you need might come. Because of how predictable this random generator is, it’s actually possible to play forever. <i>Overall it’s a silly system that makes you wonder how it ever became the official randomizer.</i><p>I actually like the bag one, knowing where in a bag you are gives an edge, and thus it adds an extra dimension to the game I feel.
评论 #20875003 未加载
评论 #20877468 未加载
评论 #20874969 未加载
PavlikPaja超过 5 年前
I think the best compromise would be a bag with let&#x27;s say five of each piece; every time 7 pieces are dealt, you add a whole set to the bag.<p>No need for unnecessary complications - the pice becomes less numerous and less likely to come when there was a flood, and more common and more likely to come when there was a drought. You can even add a set after less than seven pieces, to increase randomness (and thus difficulty) over time.
Balanceinfinity超过 5 年前
Have to say, I liked the original in the floor console. It wasn&#x27;t &quot;fair&quot; except in the sense that the chance was evenly distributed, so when I was playing against my friend, over a period of 2-3 hours, the positive and negative breaks evened out (like in backgammon - play it enough and the randomness from the dice rolls gets netted out). The bag approach seems too easy.
ArtWomb超过 5 年前
Thanks for posting. I <i>love</i> research like this ;)<p>Reminds me of a similar result in which &quot;locally noisy&quot; bots inserted into human coordination games can yield a positive outcome!<p><a href="https:&#x2F;&#x2F;www.nature.com&#x2F;articles&#x2F;nature22332" rel="nofollow">https:&#x2F;&#x2F;www.nature.com&#x2F;articles&#x2F;nature22332</a>
te超过 5 年前
&gt; Pseudo random number generators try to mimic real randomness, but don’t have the properties required to deal out 70,000 Z-pieces in a row.<p>Citation?
评论 #20885360 未加载