それは私です。ケーブジョンソン。
5月21日です。あなたは地球上で最高の会社であるAperture Scienceで働いており、明日、私たちの主力ウィンドウシステム(またはWindowS)のバージョン3.0 CavOSをリリースします。残念ながら、明日の朝、私たちの主要な競合他社はWindowSのバージョン3.0もリリースしています!
競合するWindowSには、CavOSにはない機能が1つあるという、Cave JohnsonのCEOに漏らされました。KlondikeSolitaireのゲームです。私、ケイブ・ジョンソンは、この省略が大幅な売上減少につながることを懸念しています。そのため、私、ケイブジョンソンは、プログラミングインターン間の競争を考案して、ソリティアのゲームを作成しました。エントリーが選ばれたプログラマーは、刺激的なGlaDOS AIプロジェクトに参加する機会を得ます。
私、ケイブ・ジョンソンには、いくつかの要件があります。
- ソフトウェアは明日出荷する必要があるため、すでに印刷され、イメージ化されたフロッピーのスペアセクターに収まるように、最短のプログラムが選択されます。
ゲームプレイについて心配する必要はありません。私たちの顧客はプリンターを持っていますか?私が必要なのは、あなたのプログラムが以下を示すリストを作成することだけです:デッキのカードの順序と、7つの山のそれぞれの内容。デッキは上から配られます。杭は下から見えるようになります。Hearts、Diamonds、Clubs、およびSpadesには、略語H、D、C、Sを使用します。King、Queen、Jack、およびAceには、略語K、Q、J、Aを使用します。各カードはスペースで区切る必要があります。最初の行はデッキを示し、2番目は最初の最小のパイルのカード、3番目は2番目のパイルのカードなどを示します。必要に応じて、10の代わりにTを使用できます。
ここではレモネードを作っています-レモンを吸いません。私、ケイブ・ジョンソンは負けたくないし、顧客も好きではない。すべてのゲームは勝つ必要があります
ゲームはランダム化する必要があります。単一のゲームをエンコードしようとしません。クロンダイクには7000兆のハンドがあり、それらの約90%が勝ちです。256以上の異なるハンドを作成できるプログラムに満足しています。言語に(タイマーなどから)乱数を取得する方法がない場合は、言語に適した方法でシードを取得できると想定してください。
お客様はかなり賢いです。勝ち勝ちのために、彼らはデッキ3で時間制限なしでDraw 3をプレイしていると仮定します
Apertureの皆さん(およびすべてのもの)を代表して、皆さんの幸運を祈ります。お待ちしています。
「キャロライン?どうやったらこの事を止められるの?」
性格外:Windowsのルール3、ドロー3、ベガス以外のソリティアを想定します。私はすべてのtを渡り、すべてのiにドットを付けようとしましたが、質問があるかどうか尋ねます。幸運を。
出力例:
5H AS 7C 8S QH ...
AH
JS 10S
JC JH 7C
9D AC 8D 7C
.
.
.