簡単なゲーム・プログラムの製作に取り組むことにより、 問題解決のための処理手順を考え、 プログラム設計および作成を通じて、プログラミング技能の向上を目指す。 プログラムの作成にあたって「データをどの様に記憶させ扱うのか」に力点を 置くために、入出力は文字だけのシンプルなものとする。
簡単なゲームとして、五目並べ、オセロゲーム、トランプを テーマとする。 基本的に2人のユーザが、交互に手を入力し、その入力に会わせた盤面を 表示するものとする。 各自興味のあるゲームを1つ選び、ゲームとして利用者が便利に遊べる様に 機能を追加せよ。プログラム作成にあたって、最初に壮大なゲームの目標を決めて作るのではなく、 基本的な簡単な機能の基本形のプログラムから、少しづつ機能を追加していくこと。
- 五目並べ(renju.c)
- 五目並べ(javascript) (renju.html)
- オセロゲーム(othello.c)
- オセロゲーム(Othello.java)
- オセロゲーム(javascript) (othello.html)
- トランプゲーム(card.c)
- トランプゲーム(javascript) (card.html)
- 2次元配列の注意
- 壁の考え方の導入
- 8方向の処理をどう書くか
三目並べ
プログラミングに自信のある学生さんは、 三目並べにチャレンジしてもよい。 ただし、ルールは単純なので、ゲームは人間対プログラムとする。[1/例題] 1次元オセロ
オセロを1次元で示した以下の図で、 i=0 の場所に黒を置いたら、i=1〜3の白は反転すべきか/そのままなのか、 判定するなら、どのような処理になるのかフローチャートを描け。![]()
[2/目標設定] チェックシート
2週間の実験時間中に、実装する機能の目標を、以下のチェックシートの最初の目標設定の列に記載せよ。 このチェックシートは、1週目の実験時間の最後の段階で、どの機能まで完成したか、2つめの列に記載し、 さらに2週目の実験時間の最後の段階で、どの機能が完成したか3つめの列に記載すること。[3/例題] 基本機能の実装く
前に掲載したゲームのプログラムに、指定された場所が空いているか確認したうえで、 その場所にコマを置くか、何もしない(コマを置かず、白黒の番手の交代もしない)ように 機能を修正せよ。
ルールの詳細は、以下に示すWebページを参考にすれば良い。
五目並べ
オセロゲーム
トランプ(ポーカー)
- ポーカー(wikipedia)
ポーカーは、様々なルールがある。 また、役とその勝ち負けもすべてを正しく処理しようと思うと、 極めて複雑なプログラムを大量に作らなければならない。 この実験では、2週テーマで複雑なプログラム作成は難しいので、 ポーカーのゲームは、以下のように簡略化する。
- 2人にそれぞれ5枚のカードを配る
- それぞれ捨てるカードを指定する。
- 捨てたカードの枚数と同じだけ新しくカードを配る
- お互いのカードの役を比べて、高い役の人の勝ち。
最初で目標設定したゲームの機能を作成せよ。
プログラムができあがったら、 どこまで機能が実現できているか、 評価し、チェックシートに記載すること。
最終段階では、実験グループの他の人に、自分のプログラムを操作してもらい、 チェック項目が正しく動作しているのか、判定してもらうこと。 またレポートでは、どのようにうまく動かないのか、分かる説明を記載すること。
概要では、このレポートの簡単な説明を記載すること。 作ったプログラムが何か、そのゲームの簡単なルールなどを説明すること。
プログラムリストをWordに貼り付けると、 フォントサイズや行間の調整をしないと、無駄に紙を使ったり、 インデントが崩れるので、別に印刷してもいい。 「プログラムリスト1」とタイトルをつけ、 レポート中で「プログラムリスト1参照」と明記すること。
フローチャートを描く際は、絵を書くソフトに慣れていないなら、 定規などを使いながらの手書きの図を用いること。
チェックシート記入例
項目 作成前 1週目 自己判定 相互判定 ○○ができる ○ ○ × × △△ができる : : : :