レポート課題2: コード読解


課題概要


課題の達成目標

  1. 他人が書いたコードを読んでみよう。
  2. 実装対象(3目並べ)において表現する必要がある状態、例えば「中央に○を書いた状態」をどのように表現しようとしているのかを読み取ろう。
  3. 実行方法の違いに伴う結果の差異を理解しよう。
  4. docstringによるコメントの書き方の参考にしよう。

課題詳細

以下に示す5点について取り組み、レポートとしてまとめよ。

  1. docstringで記述されたドキュメントを help() もしくは pydoc3 により読み、「スクリプトファイルのどの部分がどのように出力されているか」について気づいた点について報告せよ。
  2. doctestで記述されたユニットテストを実行せよ。その際に実行されたテスト数、テストが成功した数、失敗した数を報告せよ。
  3. 失敗したテストがどの部分なのか示せ。また、テストコードと実コードとを見比べ、テストが失敗している原因を分析せよ。その分析結果を元に、テストが通るように実コードを修正せよ。
  4. コードやdocstringドキュメントを読み、各関数の機能について概説(数行程度でOK)せよ。また、コードやドキュメントで気になる部分があれば、その部分について言及せよ。
  5. 本プログラムではリスト型オブジェクトにより盤面情報を表現しているが、他にどんな表現方法があるだろうか? 1例を検討し、init_board()に相当する関数を実装せよ。また、実装した関数が想定通りに動作することをdoctestで検証するコードを加えると共に、docstrginにてドキュメントを書け。

取り組み方


提出方法


ヒント

# リスト型オブジェクトの練習
data = [1, 2, 3]
print(data[0])
print(len(data))
index = 0
for item in data:
    print('index={0}, item={1}'.format(index,item))
    index += 1
 
data.append(10)
print(len(data))
print(data)