LoginSignup
1
1

More than 5 years have passed since last update.

全くのゼロから始めるボードゲームのプログラミングと機械学習 [2日目]

Posted at

前回の振り返り

全くのゼロから始めるボードゲームのプログラミングと機械学習 [1日目] - Qiita

  • 目下の目標は「Pythonでカルカソンヌを再現する」
  • 参考とする書籍の選定
  • Python勉強環境の準備

7年前に買った参考書籍をやっと使い始めました。

参考書籍の紹介

Pythonゲームプログラミング入門 | Will McGugan, 杉田臣輔, 郷古泰昭 |本 | 通販 | Amazon
前回紹介した通りPythonでのゲーム制作については上記の書籍を参考に学んでまいります。目次を紹介しているサイトがありましたので下記引用させていただきます。

・はじめに
・序文
・第1章 Python 入門
・第2章 Python 探検
・第3章 Pygame 入門
・第4章 ビジュアルの生成
・第5章 物体の動きの作成
・第6章 ユーザー入力を受け付ける
・第7章 人工知能を導入する
・第8章 3次元に移行する
・第9章 3次元を探検する
・第10章 効果音の作成
・第11章 ライト、カメラ、アクション!
・第12章 OpenGL のシーンの設定
・付録A Gmae Objects リファレンス
・付録B ゲームのパッケージ化

引用元:Pygameの日本語の解説本「Pythonゲームプログラミング入門」 - 強火で進め

まさに現在の自分が望んでいる内容がそろっています。

  • 第1章 Python 入門
  • 第3章 Pygame 入門
  • 第7章 人工知能を導入する

この辺が本プロジェクトにとっては非常にホットなテーマとなりそうです。8章以降はボードゲームをプログラミングしたいという自分の目標からするとやや逸脱した内容になりそうですが、せっかくなので合わせて学んでいきたいと思います。

Python勉強開始

ひとまずPython実行環境も整えましたので、丁寧に1から学んでいきたいと思います。非常にあたりまえな話も出てきてしまうかもしれませんがタイトルの通りゼロスタートですので泥臭くいこうと思います。

因みに書籍ではPython2.4が使われています。
現行のPythonはPython3.7とpython2.7のようですね。ひとまず大は小を兼ねる(?)ということでPython3.7を使ってみることにいたしました。

Python3.7
>>> print "hello world!"

なんとこれでエラーが発生。まさかHello world!で躓くとは……
調べてみたところ3系からprintは関数に変更されていたのですね。
Python2からPython3.0での変更点 - Qiita

Python2.7
>>> print "hello world!"
>>> hello world!

2系では上手くいきました。知ってる人からすると初歩的で当たり前の話なのだろうけれど、Pythonを使ったことがない自分からすると勉強になりました。参考書にあわせて2系を使っていこうと思います。

そのほか

  • 数値型や変数について
  • リスト、タプルについて
  • インデントの大切さ

などを学びましたがこの辺はjavaの経験からある程度なじみがありますし、さすがにネット上にいくらでも優れた情報がありますので本記事では割愛させていただきます。

今後の予定

  1. ボードゲームをプログラミング
    1. Pythonの基礎勉強 👈
    2. Pygameの基礎勉強
  2. ボードゲームのAI作成
  3. 機械学習によるAI強化

Pygameの章に入るまではまだまだPythonの基礎勉強が続きそうです。

今回の振り返り

  • やったこと
    • 参考書の内容確認
    • Pythonでコマンド実行
  • わかったこと
    • Pythonの2系と3系は大きく違う
    • Pythonの変数や型などについて
    • Pythonはインデックスが重要
  • つぎにやること
    • Pythonの関数について勉強
    • モジュール作成
    • 勉強の計画を立てる
1
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1