本教材はPython というプログラミング言語を用いて、ゲームを制作しながらアルゴリズムを学ぶ入門書です。
Python はソフトウェア開発や学術研究の分野で広く用いられるようになり、企業や教育機関で使われる主要なプログラミング言語の1つになりました。 また、 基本情報技術者試験に Python が加わるなど、情報処理を学ぶ人たちにとっても触れる機会の多い言語になっています。
Python の人気が高まったのは、
・記述の仕方がシンプルで、他のプログラミング言語より短い行数でプログラムを組める
・記述したプログラムを即座に実行でき、開発効率に優れている
・ライブラリが豊富で、それらの多くが使いやすい
などの理由からです。
Python はプログラミング言語の中で特に学びやすく、誰もが習得できる言語であることも、広く普及した理由として挙げられるでしょう。
本書はアルゴリズムの学習に力を入れています。 初学者が理解できるようにプログラミングの基礎からスタートし、やさしいアルゴリズムから段階を踏んで高度な内容を学ぶ構成になっていますので、 どなたにも安心して手に取っていただけます。
本教材はPython というプログラミング言語を用いて、ゲームを制作しながらアルゴリズムを学ぶ入門書です。
Python はソフトウェア開発や学術研究の分野で広く用いられるようになり、企業や教育機関で使われる主要なプログラミング言語の1つになりました。 また、 基本情報技術者試験に Python が加わるなど、情報処理を学ぶ人たちにとっても触れる機会の多い言語になっています。
Python の人気が高まったのは、
・記述の仕方がシンプルで、他のプログラミング言語より短い行数でプログラムを組める
・記述したプログラムを即座に実行でき、開発効率に優れている
・ライブラリが豊富で、それらの多くが使いやすい
などの理由からです。
Python はプログラミング言語の中で特に学びやすく、誰もが習得できる言語であることも、広く普及した理由として挙げられるでしょう。
本書はアルゴリズムの学習に力を入れています。 初学者が理解できるようにプログラミングの基礎からスタートし、やさしいアルゴリズムから段階を踏んで高度な内容を学ぶ構成になっていますので、 どなたにも安心して手に取っていただけます。
ここで言うアルゴリズムとは、問題を解決するための手順や手法のことです。 アルゴリズムを学ぶとさまざまな問題を解決する力が伸びるといわれており、 しばらく前からアルゴリズムを学ぶ大切さが、 色々なところで説かれるようになりました。
アルゴリズムと聞くと難しそうと考えてしまう方もいるかもしれませんが、心配は無用です。本書はゲームを制作していく過程で色々なアルゴリズムを習得できるようになっています。
あなたも、ゲームを作りながら、プログラミングとアルゴリズムを楽しく学んでいきましょう.
関数とスコープについて解説します。
Pygame Zero はプログラミングの教育目的で設計された、Python のゲーム開発用ライブラリです。色々な手続きをバックグラウンドで処理してくれるので、短いコードでゲームを作れるようになっています。実際、ある程度 Python のコードを書ける人であれば、Pygame Zero の習得は決して難しくないはずです。ぜひゲームプログラミングを楽しんでください。
まずは線を引いて、盤面を作ります。
リストを作って、マス目にマルバツを表示させます。
クリックしたマス目に印をつけられるようにします。
コンピュータが印をつけられるようにします。
どうすれば印が3つそろったかの判定を行えるかを考えます。
一通りゲームとして遊べるようにします。
強くするアルゴリズムを考えて、コンピュータを強くします。
tkinterでリバーシの盤面を作ります。
アルゴリズムは「問題を解くための手順」のことです。 カタカナ6文字で、なんだか抽象的で難しい言葉のように感じるかもしれませんが、 実は非常に身近にあるものです。
文字式を使うと物事の関係が一目で分かるだけでなく、文字に具体的な値を代入する (入れてみる) と、さまざまなケースでの答えが計算できるといった利点があります。
皆さんは日常的に0から9までの10種類の数字によって数を表す10進法を使っていますが、 コピュータの内部では0と1の2種類の数字だけで数を表す2進法を使って計算が行われます。
あなたは小学校で四則演算(+,-, x,÷)を習ったと思いますが、 他にもいろいろな演算や記号があります。
有名な例として、 剰余 絶対値・累乗・ルートなどが挙げられます。 また、 コンピュータは電気的に動いているため、 on/offの情報 (ビット) を情報の最小単位とし、2進法を用いて計算が行われます。
そこでビットごとに論理演算を行う、 AND OR XOR などの 「ビット演算」 が重要になってきます。
アルゴリズムを学ぶにあたって、 関数を知ることは大切です。 たとえばアルゴリズムの計算回数として「多項式関数」「指数関数」 「対数関数」 といったものが出現する場合があります。関数とは、入力が決まると出力の値が1つに決まる関係のことを指します。 何か数を入力すると、それに対応する数が出てくる機械のようなイメージです。
計算量(計算回数など)を見積もる方法について解説し、計算量の評価で重要な 「O(オー)記法」 の概念を導入します。
素数かどうかを高速に判定する方法を紹介します。また、 「背理法」という典型的な証明技法を紹介し、アルゴリズムの正当性を示す方法の1つを学びます。
自然数AとBの最大公約数を求める問題を扱います。 単純な方法で計算すると時間がかかってしまいます。 しかし、 ユークリッドの互除法を使うと、計算量O (log (A+B)) で答えが求められます。 アルゴリズムの紹介に加え、計算量にlogが出てくる理由を解説します。
前半では、 「モンテカルロ法」を理解するために大切となる、 確率と期待値の基本、期待値の線形性について解説します。 また、 後半ではアルゴリズムの改善を行う3つの応用例を紹介し、期待値の性質に慣れていくことを目指します。
モンテカルロ法は乱数を上手に使います。 一体どのようなアルゴリズムなのでしょうか。正規分布と共に解説します。
OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.
Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.
Find this site helpful? Tell a friend about us.
We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.
Your purchases help us maintain our catalog and keep our servers humming without ads.
Thank you for supporting OpenCourser.