将棋の調べ  鉄道の調べ  旅先料理の調べ  ビールコレクション

やさしい「どうぶつしょうぎ」の作り方 演習

演習問題

どうぶつしょうぎのプログラムを以下の条件で作成してください。

機能と条件

  1. コンピュータと人間が対戦できるようにしてください
  2. コンピュータと人間は、先手と後手のどちらでも指せるようにしてください
    つまり、(1) 先手:人間 v.s. 後手:コンピュータと (2) 先手:コンピュータ v.s. 後手:人間の対戦ができるようにしてください
  3. 以下の機能のうち、少なくとも1個は実装してください
    (1) 棋譜表示、(2) 「待った」機能、(3) 途中局面からの対戦の再開機能
    これはコンピュータ通しの対戦をするときに、相手のコンピュータの指し手の入力を間違えたときの責任の所在を明らかにするためです。
  4. 引き分けの判定チェックはなくても構わない
    人間が判定するようにして運用でカバーできるため
  5. 画面表示と指し手入力はどのようなものでも構わない

先頭へ戻る

テスト手順

以下のテスト手順を指し、期待される結果が得られることを確認しなさい。

-----
(1) 引き分けのパターン1
 開始画面     ---- 1回目
 1 ▲C3キリン
 2 △A2キリン
 3 ▲C4キリン
 4 △A1キリン ---- 2回目
 5 ▲C3キリン
 6 △A2キリン
 7 ▲C4キリン
 8 △A1キリン ---- 3回目
--- ここで引き分けになること ---

--(訂正)今まで(2010/5/31)の引き分けパターンは以下のものを示していました--
(1) 引分のパターン
 開始画面     
 1 ▲C3キリン
 2 △A2キリン
 3 ▲C4キリン
 4 △A1キリン
 5 ▲C3キリン
 6 △A2キリン
 7 ▲C4キリン
 8 △A1キリン
 9 ▲C3キリン
10 △A2キリン
11 ▲C4キリン
12 △A1キリン
--- ここで引き分けになること ---これは最初の開始局面も含めると4回目になります。

-----
(2) 引き分けのパターン2
開始画面      ---- 1回目
 1 ▲B2ひよこ
 2 △B2ぞう
 3 ▲B3ぞう
 4 △C1ぞう
 5 ▲A4ぞう
 6 △B2ひよこ
 7 ▲B3ひよこ
 8 △B3ひよこ
 9 ▲B3ぞう
10 △B2ぞう
11 ▲A4ぞう
12 △C1ぞう
13 ▲B3ひよこ
14 △B2ひよこ --- 2回目
--- ここで引き分けにならないこと(手番を考慮していないと引き分けになる)
15 ▲B2ひよこ
16 △B2ぞう
17 ▲B3ぞう
18 △C1ぞう
19 ▲A4ぞう
20 △B2ひよこ
21 ▲B3ひよこ
22 △B3ひよこ
23 ▲B3ぞう
24 △B2ぞう
25 ▲A4ぞう
26 △C1ぞう
27 ▲B3ひよこ
28 △B2ひよこ ---- 3回目
--- ここで引き分けになること ---

(3) ひよこが成る〜打ったひよこはならない〜ライオンがトライ勝ち
 開始画面     
 1 ▲B2ひよこ
 2 △A2ライオン
 3 ▲B1ひよこ
--- B1 のひよこがにわとりに成ること ---
 4 △B2ぞう
 5 ▲C1ひよこ打ち
--- C1 に打ったひよこがにわとりに成らないこと
 6 △A3ライオン
 7 ▲C3ライオン
 8 △A4ライオン
--- ここではまだ後手が勝ちにならないこと
 9 ▲C2ライオン
--- ここで後手がトライ勝ちになること

(4) ライオンが取られると負け
 開始画面
 1 ▲B2ひよこ
 2 △A2キリン
 3 ▲B1ひよこ
--- ここでひよこがにわとりになり、ライオンを取り、勝ちになること(ライオンが持ち駒になっていなくてもよい)

(5) すべての駒を持ち駒にする
 1 ▲B2ひよこ
 2 △B2ぞう
 3 ▲B3ぞう
 4 △C3ぞう
 5 ▲C3キリン
 6 △A2キリン
 7 ▲A2ぞう
 8 △A2ライオン
 9 ▲B3キリン
10 △B3ライオン
11 ▲A4ライオン
12 △A3ひよこ打ち
13 ▲A3ライオン
14 △B2ぞう打ち
15 ▲B2ライオン
16 △C2キリン打ち
17 ▲C2ライオン
--- ここで先手の持ち駒はすべての駒の6枚になっている
18 △B2ライオン
19 ▲B2ライオン
--- ここで先手勝ち --- 持ち駒は7枚になっていてもなくてもよい

先頭へ戻る

トーナメント

作成したどうぶつしょうぎのプログラムを使って、試合をします。試合の方法は以下のようにします。

  1. 先手と後手を交代して2試合をします。
  2. 1勝1敗のときは、短手数で勝った方を勝ちとします。
  3. 2引き分けや1勝1敗で同手数の場合はじゃんけんで勝敗を決定します。
  4. どうぶつしょうぎのルールに従わない指し手をした場合や、バグなどでどうぶつしょうぎが指せない状態になったときは、その手数で反則負けをしたものとして扱います。

先頭へ戻る

評価

作成したどうぶつしょうぎの評価は、以下のようにします。

  1. トーナメントの結果
  2. 機能の豊富さや画面の美しさ、ユーザビリティ
  3. クラス設計とプログラムの美しさ、ドキュメント類の美しさ
  4. プレゼンテーション

先頭へ戻る

作業

どうぶつしょうぎを作るときに、以下の作業をしてください。

  1. プロジェクトリーダの選定と役割分担
  2. 設計仕様書の作成とレビューの実施
  3. プログラムの開発とコードレビューの実施
  4. 試験仕様書の作成とレビューの実施
  5. 完成検査(受け入れ検査)の実施

レビューと検査は、講師に依頼してください。

先頭へ戻る


対局どうぶつしょうぎと対局本将棋のポータルサイト「将棋の調べ」へ

どうぶつしょうぎのイラストは、「素材屋じゅん」様の素材を使わせていただいております。

先頭へ戻る


将棋の調べ  鉄道の調べ  旅先料理の調べ  ビールコレクション

Copyright © 2010 GOMI Hiroshi All Rights Reserved