最近(数年前)、プログラミング ウェブサイトで140バイトのテトリスの実装に関する話題がありました。...
小さいながらも、Tetrisの簡易バージョンであり、完全な実装ではないことがわかりました。コアロジック関数のみが140バイトのJavascriptに適合します。実際に実行するには、別の〜840文字のHTMLが必要です。
もっと良くできる!
この課題は、「Binary Tetris」の完全なバージョンを可能な限り少ないツイートで実装することです。
バイナリテトリスルール:
- プログラムは、少なくとも5列と6行のセルを含む競技場を表示する必要があります。
- フィールドのブロックとエッジが明確にマークされている限り、どのような表示方法を使用してもかまいません。
- 少なくとも2種類のブロックが必要です:
#
と##
。###
Lのような形状のブロックやアングルブロックなどの追加ブロックサポートは私に支持されます:Pとバイナリテトリスの最も完全なゲーム(元の機能や回転機能のような最もブロック)は、私の幸福と賞金50倍の賞金を獲得します。 - 新しいブロックが一番上の行のフィールドに追加され、1つのブロックセルが中央の列を占める必要があります。
- ブロックは固定レートで最下行に向かって下降します。ブロックは、ユーザー入力なしでも下降する必要があります。
- ブロックがフィールドの下部または下のブロックに触れると、落下が止まり、固定されます。新しいブロックが追加されます。
- 行のすべての列がブロックで満たされると、その行は空になり、上のすべての固定ブロックが1行ドロップダウンします。
- プログラムはキー入力に応答する必要があります。次の機能を実行する3つの一意のキーが必要です
- 現在のブロックを1列左にシフト
- 現在のブロックを右に1列シフト
- 現在のブロックを1行下にシフト
- 各ツイートには140文字しか使用できません。ツイートに入れることができるマルチバイト文字の使用は許可されています。
ツイートに含めることができるルールは簡単です。ツイートできる場合は、使用できます。
解釈された言語は同じルールに従います。各セクションは仕様に従う必要があります。限り何も実行時エラーが発生しない(と残りはスペック以下有効である)として、あなたの答えは有効である ゴルフのルール:
オリジナルの実装は、「tweetable」だったので、この課題は、同じことを必要とします。エントリーは、一連のツイート(140文字以下の行)として送信できる必要があります。最初のツイートには、コンパイラ/インタープリターの名前、プログラムの名前、およびコマンドライン引数が含まれている必要があります
- ファイル「P0」として保存されます
- 次のN個のツイートには、プログラムを一連の行として含める必要があります。
- 各ツイートは、T <n>という名前のファイルに保存されます(nは1..N)。
- 各行は前の行に追加され、コンパイルまたは解釈されます。有効なオブジェクトファイルまたはプログラムを生成する必要があります。
- プログラムは、最後の行が追加されるまで機能する必要はありません。
プログラムは次の方法で実行されます(疑似bash)
interp,prog,args = split P0 /\s/ touch $prog for file in ./T* do cat $prog file > $prog $interp $prog $args die("FAIL") if $? #detect error done
インタープリターは、テトリスをまだ実装していない一般に入手可能な実行可能プログラムでなければなりません。
スコアリング:
P0を含むツイートが最も少ない。スペア文字の最大数(140 * numツイート-合計文字数)で壊れた関係。
エントリの例
chrome a.htm
<html><div id="output"></div></html>
<script>cool java script here</script>
スコア= 3(334スペア)
cc a.c ;a.out
main(){/*cool prog here*/}
スコア= 2(スペア241)
tetris
スコア= 1(134スペア) が合法だった場合、それはそうではありません