これは警官のスレッドです。強盗のスレッドはこちらです。
バックグラウンド
Boggleは、ランダムなアルファベットの4行4 列のボード上で英語の単語を見つける必要があるボードゲームです。ボード上の隣接するセルを順番に選択することにより、ワードを構成できます。(「隣接」とは、水平方向、垂直方向、または斜めに隣接していることを意味します。)また、同じセルを1度に複数回使用することはできません。
以下はボードの例です。
I L A W
B N G E
I U A O
A S R L
このボードでは、BINGO
、ORANGE
およびWEARS
有効な言葉がありますが、SURGE
とRUSSIA
はありません。
SURGE
:ボード上に隣接するペアはありませんRG
。RUSSIA
:S
2回使用できません。
Modified Boggleは、次のルールを備えたBoggleの修正バージョンです。
- ボードサイズは
m
-by-ですn
。ここでm
、n
は任意の正の整数です。 - 各セルには、0から255までの1バイトを含めることができます。
- セルは2回以上使用できますが、2回続けて使用することはできません。
上記の例のボードを使用すると、とに加えてBINGO
、有効な文字列になります(2回続けて使用されるため、2回続けて使用されるわけではありません)が、まだペアにはなっていないためです。ORANGE
WEARS
LANGUAGE
G
RUSSIA
SS
これは、コードフラグメントを使用した別の例です。文字列from itertools import*\n
は次のボードにありますが、from itertoosl import*
orにはありませんfrom itertools import *
:
f i ' ' s
r t m l
e o o p
\n * t r
シーケンスo
を一致させるには、2つのが必要であることに注意してくださいoo
。
警官の挑戦
書く完全なプログラムを選択した言語で満たし、次のルールという。
- プログラムは、複数の実行にわたって一貫性のあるものを印刷する必要があります。
- プログラムは約5秒で終了します。
- プログラムは入力を取りません。
- プログラムと出力の両方が2バイト以上である必要があります。
- ハッシュ関数、PRNG、暗号化に関連するものは許可されていません。
次に、プログラムをレイアウトし、2つの別々のモディファイドボードに出力します。各ボードは非正方形にすることができます。1行N列および2行N列のボードは、警官と強盗の両方に特別な課題をもたらす可能性があることに注意してください。ボード上のいくつかのセルを使用できないようにする場合(制限を追加するため)、不要なバイトをいくつか選択して、それらの穴を埋めます。
たとえば、水平/垂直方向の動きのみの2x2グリッドが必要な場合は、代わりにこれを行うことができます。
a b
c d
-----------
X a X
c X b
X d X
提出物では、使用した言語、ソースコードと出力の長さ、および2つのboggleボードを指定します。ことを注意短いコードおよび/または長い出力が強盗に許可されますが、バイト数の余地を与えるように選択することができるように(つまり、実際のソリューションよりも長いコードおよび/または短い出力を指定)、。
ボードに印刷できない文字が含まれている場合は、代わりにボードをバイト値として指定できます。
警官が1週間投稿された後、それまでクラックされていなければ、ポスターによって安全とマークすることができます。それが実際に安全であるとマークされるまで、警官はまだ強盗のために開いています。安全な警官はクラックできません、そして、ポスターは意図された解決策を明らかにするべきです。
強盗の課題は、ボード上のコードとその出力を見つけて提出物を解読することであるので、ボードをできるだけ難読化する必要があります。長いコードを小さなボードに詰め込みたい場合、元のModified Boggleチャレンジへの回答が洞察を与える可能性があります。
警官のためのスコアリング
ボードのサイズが大きいか小さいかを判断するのが難しいため、安全な警官が提出するたびにスコア1としてカウントされます。スコアが最大のユーザーが勝ちます。さまざまな言語や創造的なアプローチで参加することが奨励されています。
警官の例とフォーマット
# Japt, code 9 bytes, output 20 bytes
Code board: 2 rows, 2 columns
`l
íÏ
As byte values:
96 108
237 207
Output board: 3 rows, 3 columns
175
120
643
変更されたBoggle検証スクリプト
以下のすべてのスクリプトには、サンプル入力があります。
文字列(コード/出力)&ボグル用スクリプト。これは複数行の文字列をサポートしていません。入力フォーマットは
- 単一行の文字列(コードまたは出力)、続いて
- 生のボグルボード。
バイト値を切り替えた文字列のスクリプト。ターゲット文字列が印刷可能であるが、1つ以上の改行が含まれている場合は、これを使用します。入力フォーマットは
- 文字列の行数、
- 生の文字列(おそらく複数行)、
- バイト値としてのボグルボード。
バイト値文字列とboggleのスクリプト。ターゲット文字列に1つ以上の印刷できない文字が含まれている場合に使用します。入力フォーマットは
- バイト値としての1行の文字列(コードまたは出力)、その後に
- バイト値としてのボグルボード。
[]+.
、brainfuckの重要な出力を考え出しましたが、それは不可能かもしれません。誰か気にかけてみませんか?