Python独学ならTech-Joho TOP > いろいろやってみた >pygameを使ってPythonで絵を描く
pygameとは
pygameは、画像や音楽を含むプログラムを作りやすくするPythonのライブラリの一つです。
ゲームと言う名前が入っていますが、ゲームだけに限らず、マルチメディアなアプリを作ることができるそうです。
この記事では、pygameを使って簡単にお絵かきをしてみます。
参考 pygame公式
pygame
2.pygameインストール
pipでpygameをインストールしましょう。
anaconda prompotや、comand prompt、power shellなどの、黒い画面で、下のコマンドを実行してください。
>>>pip install pygame
下のように、”Successfully installed”と出たらインストール成功です。
>>>pip install pygame
Collecting pygame
Downloading pygame-1.9.3-cp36-cp36m-macosx_10_9_intel.whl (4.8MB)
100% |████████████████████████████████| 4.8MB 136kB/s
Installing collected packages: pygame
Successfully installed pygame
3.まずは絵を書いてみる
絵を書いてみましょう。
シンプルに四角形(矩形)を描いてみましょう。
下の内容のファイルpygametest.pyを作成して下さい。
pygametest.py
pygame.display.update()
import pygame
from pygame.locals import *
import sys
pygame.init()
screen = pygame.display.set_mode((300, 200))
pygame.display.set_caption("This is pygame sample")
while(True):
screen.fill((0,0,0,))
pygame.draw.rect(screen, (255,255,0), Rect(10,10,20,50))
pygame.display.update()
for event in pygame.event.get():
if event.type == QUIT:
sys.exit()
次に、ファイルを保存したディレクトリで下のコマンドを実行してください。
>>> python pygametest.py
このような黄色い長方形が左上に表示された小さなウインドウが出てくるはずです。
このウインドウを消すには、”python pygametest.py”を打ち込んだ黒い画面(ターミナル)でCtrl(コントロール)とCを同時に押して下さい。
4.解説
作成したコードの各部分の意味を解説していきます。
import pygame
from pygame.locals import *
import sys
この部分では、pygameモジュールなど、必要なモジュールををインポートしています。
pygame.init()
screen = pygame.display.set_mode((300, 200))
pygame.display.set_caption("This is pygame sample")
この部分では、ウインドウを作っています。
“pygame.display.set_mode((300, 200))”で、幅300ピクセル、高さ200ピクセルのウインドウを作っています。
これは変数screenに代入されています。
“pygame.display.set_caption(“This is pygame sample”)”では、ウインドウ上部のタイトルを指定しています。
“This is pygame sample”と表示されているのがわかると思います。
while(True):
screen.fill((0,0,0,))
pygame.draw.rect(screen, (255,255,0), Rect(10,10,20,50))
pygame.display.update()
この部分では、画面に表示する内容を決めています。
“while(True):”があるので、まず無限ループがつくられます。
その無限の繰り返しの中で、
“screen.fill((0,0,0,))”は背景を透明にします。
“pygame.draw.rect(screen, (255,255,0), Rect(10,10,20,50))”は、黄色の長方形を作っています。
参考
pygame.Rect
” (255,255,0)”が黄色を指定しています。
pygameでは、色を(R,G,B)を0から255で指定するので、(255,255,0)は、Rつまり赤色とGつまり緑色が最大値を指定しています。
光の三原色の合成を考えると、赤と緑で黄色になります。
参考
光の3原色による色の合成 – 東京高専情報工学科
“Rect(10,10,20,50))”の部分はRectanble、つまり矩形を作っています。
最初の10,10は矩形の左上の座標です。
後ろの20,50は、それぞれ矩形の幅と高さです。
まとめると、ウインドウの左上から右に10ピクセル、下に10ピクセルのところに、幅20ピクセル、高さ50ピクセルの矩形を描け、という命令になります。
while(True):
for event in pygame.event.get():
if event.type == QUIT:
sys.exit()
最後に、この部分は、pygameの作ったウインドウを終了することができるようにしています。
“python pygametest.py”を打ち込んだ黒い画面(ターミナル)でCtrl(コントロール)とCを同時に押す以外にも、
矩形が表示されているウインドウをクリックしたあと、Ctrl+Cを押しても終了することができます。
図形を描画する 人工知能に関する断創録
この続きの、更に高度なお絵かきの方法を追加していく予定です。
2019年度版のシラバスを検索してまとめた最新版が下のリンク先でこうかいされています。
2019年度版はこちら
インターネット上の情報を手動をピックアップ!
インターネット上でアクセス可能なシラバス情報を元に、Pythonについての授業がある大学をピックアップしてみました。
もちろん、全ての大学を網羅しているわけではありません。
また、随時情報を追加中です。
2018年度開講の講義・演習等に、Pythonを扱うと明記されている学校をピックアップしています。
早稲田大学
早稲田大学は、シラバスの検索システムに外部からアクセスすることができます。
サイトはこちらです。
早稲田大学シラバス検索システム
キーワード欄に”Python”を入力して検索したところ、2018年2月20日現在、36件がひっかかりましたが、開講年度が18年度は1件のみです。
ですが、おそらく2018年度も2017年度もそう変わりが無いと思われます。
Python自体の入門の授業は1つのみで、あとは何らかの学術のツールとしてPythonを利用しています。
自然言語処理や機械学習など、Pythonの使いみちとしてよくWeb上の記事に出てくる内容もありますが、
創造理工学研究科など、工学系の学部・研究科が開講する科目には、流体力学や電磁気学の解析用や、社会シミュレーション等、大学以外では見かけない内容もあります。
また、グローバルエデュケーションセンターや人間科学研究科等、理系ではない組織が開講する授業も1/3程度ありました。
慶応義塾大学
慶応義塾大学のシラバスはこちらにありました。
慶應義塾大学 講義要綱
講義要綱の欄にPythonといれて、すべてのキャンパスを選んで検索すると、2018年2月22日現在、5件の講義がでてきました。
こちらも2017年度分です。
内容としては、経済学部、および理学部の初歩的な演習や概論的な内容で、プログラミングをがっつり学ぶわけではないようです。
上智大学
上智大学のシラバスもオンライン検索が可能です。
シラバス(講義概要)検索
キーワード”python”で、検索した結果3件が該当しました。
こちらも、2017年の結果です。(2018年2月23日現在)
上智大学は文系のイメージがありますが、その通りにこれまでで最も少ない件数です。
授業の内容としては、全学向けのいわゆるアルゴリズムとデータ構造の授業、電気系の数値解析、宇宙核工学の修士課程の授業、となっており、理系での利用が主でした。
青山学院大学
青山学院大学も、シラバスを検索する機能が公開されていましたので、”python”で検索してみました。
青山学院大学 講義内容検索
全部で17件がヒットしました。(2017年度の結果、2018年3月8日現在)
理工学部情報テクノロジー学科と、経営システム工学科の授業が大半を占めます。
python自体というよりは、豊富な計算系のライブラリを生かした応用的な内容が主なようです。
また、教育人間科学部の心理学プログラミングなど、文系の内容も目を引きます。
明治大学
明治大学は、Oh-o! Meijiというシラバスの検索システムを持っています。
Oh-o! Meiji – 明治大学
キーワード(シラバス全文対象)の欄にpythonを入力した結果、5件がでてきました。(2018年2月27日現在)
一つは、理工学部の情報系の演習ですが、数値計算や自動ツイートなど、応用的な内容も含まれた比較的高レベルな演習に思われます。
あと2つ、理工系の大学院向けの授業があります。
さらに、駿河台の大学院商学研究科の院生向けの授業もあります。
文系でもPythonの利用が広がっているみたいですね。
日本大学
日本大学のシラバスのシステムは、外部からアクセスできますが、学部ごとに別れているようです。
その中から、工学系をピックアップしてpython関連の授業を探してみました。
理工学部
日本大学理工学部(2017年度)
なんと、検索結果は0件でした。
Pythonを明示的に使用する授業がありません。
ちなみに、C言語だと30件、Javaだと15件がひっかかります。
型付けのある、やや伝統的な、プログラミング言語を利用する方針のようです。
生産工学部
Campusmate(生産工学部)
生産工学部では、シラバスの本文検索ができませんでした。
なので、授業の名称で検索しましたが、少なくとも名前にpythonを含む授業は無いようです。(2017年度)
工学部
工学部のシラバスは、ログインが必要なシステム内でしか見られないと思いきや、ゲストユーザとして参照することができました。
日本大学工学部ポータルサイト
しかし、キーワード「python」で引っかかる授業はありませんでした。(2017年度)
ちなみに、「C言語」では16件です。
Pythonを使わないという傾向は日本大学の学部全体にあるようです。
つづく…
Python独学ならTech-Joho TOP > Python問題集 >変数への代入の練習問題(1)
問題
変数str_xに、文字列’tanuki’を代入せよ
下の欄に回答を入力し、「回答完了」を押して下さい!回答例が表示されます。
回答完了
ただいま、正解判定機能を試運転中です。
実行結果の例
今回は、問題の答えを入力して実行したとしても、入力された回答以外、何も表示されません。
回答例
答え合わせをしてみましょう。
str_x = 'tanuki'
解説
Pythonで変数に値を代入するには、
=を書いて、=の左に変数名を、=の右に代入する値を書きます。
下のような感じです。
変数名 = 代入する値
例えば、
変数aに1を代入するときは、このように書きます。
a = 1
こちらでおさらいしましょう。
変数に値を代入する方法(第4回 )