あなたの使命は、それを受け入れることに決めたら、ユーザーにTic-Tac-ToeのゲームをプレイできるJavaプログラムを作成することです。
おそらくあなたが知っているように、Tic-Tac-Toeは紙と鉛筆で普通に演奏される単純なゲームです。まず、紙の上に簡単な3 x 3グリッドを作成します。次に、2人のプレイヤーは、グリッド上の空のスペースでXsとOsをマークして、交互に交代します。自分のマークの3つを水平、垂直、または対角の列にする最初のプレイヤーが勝利します。いずれかの選手が連続して3つのマークを付ける前に、グリッド内のすべてのスペースが満たされている場合、そのゲームはドローです。
<! - 1 - >この挑戦のルールと指示は次のとおりです。
-
コンピュータは人間に対してプレーします。コンピュータはOです。
-
プログラムは短いウェルカムメッセージを表示することから始まり、最初の移動のためにプレイヤーにプロンプトを表示する必要があります。例:
Tic-Tac-Toeへようこそ。あなたの最初の移動を入力してください:
-
グリッドの四角形を指定するには、列の文字A、B、Cと行の数字1,2,3を使用します。
<!左上の正方形にXを置くために、プログラムがプレイヤーにプロンプトを促すときには、人間のプレイヤーはテキストA1を入力することになる(図8参照)。動く人間が移動した後、プログラムはボードの現在の状態をコンソールに表示する必要があります。人間の演奏をマークするにはXを使い、コンピュータの演奏をマークするにはOを使います。縦棒文字(キーボード上のバックスラッシュ文字、Enterキーのすぐ上にあります)とハイフンを使用して、単純なグリッドにボードを描きます。
<! - 3 - >
たとえば、ユーザーが最初の移動としてA1を入力した場合、プログラムは次のように表示されます。
-
X | | --- | --- | --- | | --- | --- | --- | |
人間の移動後、プログラムは移動を決定し、それをユーザにアナウンスし、更新されたボードを表示し、ユーザの移動を促す。たとえば、あなたはこれを見るかもしれません:
私はA2:X | O | --- | --- | --- | | --- | --- | --- | |あなたの次の移動を入力してください:
-
1人のプレイヤーが3つ連続して得点するか、またはすべての四角が勝者なしで満たされるまで、プレイが続けられます。あなたのプログラムは、いずれかの選手が3連勝して勝利したかどうかを判断できなければなりません。 (これはこのプログラミング課題の中で最も難しい部分です)。
ゲームが終了すると、ゲームの結果を示すメッセージが表示されます。 "人間のプレーヤーが勝つならば、"私はあなたを打つ! "コンピュータプレーヤーが勝った場合、または"それはドローです! "ゲームが抽選で終了する場合。
人間とコンピュータのプレイヤーは、どちらのプレイヤーもまだ占有していない四角だけをプレイすることができます。
-
プログラムは、いずれかのプレーヤーがゲームを勝ち取ったとき、またはゲームが引き分けのときに終了する。もう一度再生したい場合は、プログラムを再度実行する必要があります。
-
コンピュータの動きの仕方を自由に決めることができます。私は最初の空の広場でコンピュータを常に演奏させることをお勧めします。これは明らかにTic-Tac-Toeをプレイする最良の方法ではなく、プレイするたびにコンピュータを倒すことに問題はありません。しかし、このシンプルなプレー戦略を選択すると、グリッドを内部的に表現する方法、プレーヤーがいつゲームに勝ったか、ゲームが終わったときを判断する方法など、プログラミングの他の面に焦点を当てることができます。
-
(「Javaプログラミングの課題:シンプルチック・タックト・プログラムに配列を追加する」では、プログラムがそのプレイを決定するためのより良い戦略を思いつくように求められます)。
-
完全なゲームのためのコンソールディスプレイ:
Tic-Tac-Toeへようこそ。あなたの最初の移動を入力してください:
A1
X | | --- | --- | --- | | --- | --- | --- | |私はA2でプレイします:X | O | --- | --- | --- | | --- | --- | --- | |次の移動を入力してください:
B1 X | O | --- | --- | --- X | | --- | --- | --- | |私はA3でプレイします:X | O | O --- | --- | --- X | | --- | --- | --- | |次の移動を入力してください: C 1 X | O | O --- | --- | --- X | | --- | --- | --- X | |あなたは私を打つ! あなたを始めるためのヒントをいくつか挙げておきます: グリッドを表現する最良の方法は配列です。ここでは、A1、A2、A3、B1、B2、B3、C1、C2、C3という9つの変数を使用します。 グリッド変数にint型を使用すると、正方形にXが含まれていることを示すために1を使用し、正方形にOが含まれていることを示す2を使用することができます。
可能な8つの行は勝てる可能性があります。プレイヤーは、以下の四角形の組み合わせのいずれかが1(Xの場合)または2(Oの場合)のいずれかである場合に勝ちます。A1 - A2 - A3 A1 - B1 - C1 A1 - B2 - C3 B1 - B2 - B3 A2 - B2-C2 A3-B2-C1 C1-C2-C3 A3-B3-C3
-
ゲームが抽選であるかどうかを判断するには2通りの方法があります。最初の9つのすべての正方形をチェックすることです:正方形のいずれかが空で、いずれのプレイヤーも勝っていない場合、ゲームは抽選です。 2回目は動きをカウントすることです:9回の移動が行われ、いずれのプレーヤーも勝っていなければ、試合はドローです。
-
このプログラミング課題の解決策は、
-
Java Dollies、
4th Edition製品ページの[ダウンロード]タブで見つけることができます。
-
幸運!