* 第7回 C言語の応用(○×ゲーム) [#rc70dc02]
** 課題 [#m62f83f5]
- [[プログラムの提出のしかた>../提出]]
- [[C言語のコンパイルと実行のしかた>../C言語環境]]
*** 中級〜上級レベル [#i20acf70]
w1) ○×ゲーム(Tic-Tac-Toe)を作る。以下がプログラムの行う処理の説明である。
> ''準備''
> 1. 2次元配列を用いて、3×3の盤面を定義し、全部のマスを空に初期化する。※ たとえば、整数配列int board[3][3]で定義する。
> ''入力''
> 2. 次の手が、先手の番か後手の番かを表示する。※ もちろんだが、先手と後手は交互にくる。
> 3. キーボードから、手(座標)を読み込む。※ たとえば、「1 2」とか「1b」とか…
> 4. 盤面に、その手を保存する。※ たとえば、空なら「0」、○なら「1」、×なら「2」のように決めておく。
> 5. 盤面の状態を表示する。※ 2重ループを使う。
> ''判定''
> 6. タテ・ヨコ・ナナメに1列そろっているかどうか判定し、そろっていればその手番の勝利とする。
> 7. すべてのマスが○か×で埋め尽くされても勝負がつかなかったら、そこまでで終わりとする。
> ''反復''
> 8. 以上2.〜7.の手順を、先手と後手を交互にしながら繰り返す。
w2) ○×ゲームをコンピュータとの対戦型にしなさい。上級レベルでは、コンピュータは必勝の手を打ってくるようにしなさい。