2. プログラミング入門:タート
ルグラフィックスとコードコン
バットによる演習
Pythonプログラミング講座:基礎から応用まで
(15)
URL: https://www.kkaneko.jp/pro/pf/index.html
1
金子邦彦
2-1. オブジェクト,メ
ソッド
2
オブジェクトとメソッド
オブジェクト:コンピュータでの操作や処理の対象と
なるもの
メソッド: オブジェクトに属する機能や操作.オブジェ
クトがもつ能力に相当する
引数:メソッドが行う操作の詳細に関する情報.
ソッド呼び出しのときに、引数を指定できる
t.goto(0,100)
3
t.goto(0,100) t オブジェクト
goto(0,100) メソッド
間を「.」で区切っている
引数
クラスとオブジェクト
クラスは,同じ種類のオブジェクトの集まりと考えること
ができる
オブジェクト生成では,クラス名を指定
t = turtle.Turtle()
4
人間
学生
学生でもあり人間でもある
人間だが,学生ではない
クラス名
プログラミング学習のためのタートルグラフィッ
クス
カーソル(画面上を移動する亀の形をしたポインタ)を
使って絵を描く
タートルグラフィックスを用いた演習により,プログラム
によって図形を描画する.
プログラムの動作を視覚的に理解できる
論理的思考力や課題解決力の向上にもつながる
5
(, 0)
(, 100)
(100, 0)
タートルグラフィックスの機能をイン
ポートする「import turtle」が必要
タートルグラフィックスの基本機能
主なメソッド
goto(<横方向の値>,<縦方向の値>指定座標への移動
forward(<移動量>) 前進
backward(<移動量>) 後退
right(<角度>) 右回り回転
left(<角度>) 左回り回転
6
メソッド
オブジェクト
メソッドは、オブジェクト
が持つ機能を呼び出すため
のもの
goto」は指定座標への移
オブジェクトとメソッドの実践例①
7
オブジェクトが動く
import turtle
t = turtle.Turtle()
t.goto(0,100)
タートルグラフィックスの機能をインポート
オブジェクト生成.変数 t にセット.
座標 (0, 100) に移動
実行結果
(0, 100)
(0, 0)
最初の位置は
(0, 0)
オブジェクトとメソッドの実践例②
8
import turtle
t = turtle.Turtle()
t.goto(0,100)
t.goto(100,0)
実行結果
(100, 0)
(0, 100)
(0, 0)
最初の位置は
(0, 0)
オブジェクトが動く
タートルグラフィックスの機能をインポート
オブジェクト生成.変数 t にセット.
座標 (0, 100) に移動
座標 (100, 0) に移動
9
亀(タール)
の最初の位置
(0, 0)
(プラスの数, 0)
(マイナスの数, 0)
(0, プラスの数)
(0, マイナスの数)
縦方向の値と,横方向の値を,メソッド goto の引
数として指定
座標系と goto メソッドの引数
Trinket の概要
Trinket オンライン PythonHTML 等の学習サイト
ブラウザで動作
有料の機能と無料の機能を提供
自作プログラムの公開と共有が可能
Python の標準機能に加え,外部ライブラリ
matplotlib.pyplot, numpy, processing, pygal が利用可能
10
公開プログラムごとに固有の URL が割り当てられる
https://trinket.io/python/0fd59392c8
Run」ボタンによるプログラムの開始,「STOP」ボタンに
よる終了
メイン画面でのプログラム編集と再実行が可能
左側で実行結果を確認
Trinket の基本操作
11
確認編集用の
メイン画面
実行結果
実行、STOP ボタン
演習.基本的なプログラ
ミング
12
13
実行結果
(100, 0)
(0, 100)
(0, 0)
最初の位置は
(0, 0)
import turtle
t = turtle.Turtle()
t.goto(0,100)
t.goto(100,0)
タートルグラフィックスの機能をインポート
オブジェクト生成.変数 t にセット.
座標 (0, 100) に移動
座標 (100, 0) に移動
trinket の次のページを開く
https://trinket.io/python/f29bfe71cd
実行結果が,次のように表示されることを確認
14
実行が開始しないときは、「実行ボタン」で実行
プログラムを書き替えて再度実行することも可能
実行、STOP ボタン
プログラムの変更と再実行
次のように書き換えて再実行し、結果が変わる
とを確認
15
実行、STOP ボタン
書き換え
16
亀の最初の位
置は (0, 0)
(プラスの数, 0)
(マイナスの数, 0)
(0, プラスの数)
(0, マイナスの数)
プログラムの改良と発展
次を参考に、自分で引数を書き替えたり、プログラ
ム内にt.goto(<引数>)」を増やして思い通りの
図形を目指す。
まとめ
オブジェクト:コンピュータでの操作や処理の対象と
なるものである.
メソッドオブジェクトが持つ機能や操作を表すもの.
: t.goto(100,0)では t はオブジェクトgoto はメ
ソッド
引数:メソッドには,操作の詳細を指定するための引
数を設定できる.
例:t.goto(100,0) では、引数は「100,0
プログラムの修正や改良を繰り返し行うことで,目的
の動作を実現できる.
17
2-2. コードコンバット
Code Combat)を用いた
プログラミング演習
18
Pythonプログラミング学習:コードコンバット
コードコンバットCodeCombat)では,プログラミ
ングの基礎ゲーム形式で学ぶ
キャラクターを動かすためのプログラムを作成しなが
ら,段階的にプログラミングスキルを向上させること
ができる
19
授業における学習範囲と利用形
本授業では以下の範囲で学習を進める
無料,クラスコード不要,Python の基本5レベル 授業範囲
無料,クラスコード使用,より本格的な利用
クラスコードの使用には,メールアドレスの登録などが必要
有料会員登録(500以上のレベル)は任意
各自の判断で行う
20
Python基礎トピックス
オブジェクトメソッド
hero.moveDown()
hero オブジェクト
moveDown() メソッド
文字列"(ダブルクォーテーション)または'(シン
グルクォーテーション)で囲む
メソッドの,引数指定
hero.attack("fence", 36, 26)
hero.attack(enemy1)
21
オブジェクトとメソッド
オブジェクト:プログラム上の操作対象となるも
メソッド:オブジェクトが実行できる動作
22
オブジェクトとメソッド
Python プログラム)
実行画面
オブジェクトが動く
オブジェクトとメソッドの活用
画面上のキャラクター(heroに対して,
moveDown()moveRight()などのソッド
し,意図した動作を実現.
23
オブジェクトとメソッド
Python プログラム)
実行画面
オブジェクトが動く
引数の使用方法
引数を使用することで,攻撃対象の指定
hero.attack("fence"))や移動距離の設定など,
より複雑な動作を実現.
24
オブジェクトとメソッド
Python プログラム)
実行画面
オブジェクトが動く
演習
基本プログラミング
オブジェクトの操作
メソッドの呼び出し
引数の使用
文字列の扱い
25
学習準備(1):Webブラウザでのアクセス
方法
https://codecombat.com
26
課金に関するメッセージが表示された場合は,
無視を推奨.心配なことがあるときは,無理
に使用しないこと.
課金のメッセージの例
学習準備(2):初期設定と言語選択
私は学生です」を選択
必要に応じて言語設定日本語に変更
アカウント登録やログインは行わない
27
学習準備(3):アクセス権限の確認
今すぐプレイ」を選択
クラスコードの有無の確認では,本授業では,クラスコード
を使用しない形式で学習を進める.
28
ゲーム開始(1):基本ステージの選択
29
キースガードのダンジョン」を選択し,「ゲームスター
」をクリック.基本的なプログラミング学習の出発点とな
る.
ゲーム開始(2):初期ダンジョンへの挑戦
30
最初のダンジョン
ゴール
最初のダンジョンを選択する.
画面上にはゴールが表示される.
音声が流れるので,各自で適切な音量に調整すること.
ゲーム開始(3):ゲーム環境の起動
31
ゲームスタート」をクリックして,起動する.
次以降の画面で,プログラミングについての画面が表示
される.
プログラミング環境(1:言語設定の確認
32
Python(デフォルト)」を選択し,「次へ」をクリッ
ク.
この設定により,Python言語が選択される.
プログラミング環境(2):使用アイテ
の選択
33
使用可能なアイテムダブルクリックで選択
ゲーム後半ではアイテムが増える(それに応じてメソッ
ドが増える)
プログラミング環境(3):ゲーム開始準備
34
ゲームスタート」をクリックし,準備を完了する.
プログラミング実行(1):レベルスタート
手順
35
目標をよく読む
ゲームスタート」をクリックし,開始する.
プログラミング支援(1:ヒント機能
の活用
36
ヒント」ボタンをクリックすることで,課題解決のた
めのヒントを参照できる.
ヒントが英語で表示される場合があるが,これは翻訳の
不完全さによるものである.(動作不具合ではない)
プログラミング支援(2:メソッド説
の参照
37
メソッド」リストから必要なメソッドを選択すると,
その使用方法に関する説明を確認できる.
説明が英語で表示される場合があるが,これは翻訳の不
完全さによるものである.(動作不具合ではない)
プログラミング実践(1):基本命令の入力
38
編集画面で「hero.moveDown()」などのプログラムを入
し,「実行」ボタンでその動作を確認する.
コーディング実践(2):プログラム動作
の確認
39
実行」ボタンをクリックすると,入力したプログラム
に従ってキャラクターが動作する.
hero.moveRight()右に移動hero.moveDown()
に移動する.
問題解決方法:学習支援機能の活用
プログラミングで迷った場合は,「ミッション
(目標)」や「ヒント」を確認する.これらの機
能を活用することで,効果的な学習が可能となる.
40
すべての
目標達成
を目指す
課題達成(1):プログラム完成までの手順
目標:成功!」と表示されるまで,編集画面でプログラ
ムを書き換えて「実行」を繰り返す.
目標達成後は「完了」をクリックする.
41
課題達成(2):次のステージへの進み方
42
完了確認後,「続ける」をクリックして次に進む
これにより,段階的な学習を進めることができる.
発展学習(1):追加ステージの選択方法
赤い旗で示される次のレベルを選択できる.
青い旗クリア済みのレベルを示し,「(ロック)」と表示
される項目は有料コンテンツとなる.
43
赤い旗をたどる
青い旗はクリア済み
「(ロック)」と表示される
場合は有料
44
発展学習(2):新規装備の獲得と活用
新しいレベルでは追加のアイテム利用可能となる場合
がある
装備はダブルクリックで選択して使用する.
発展学習(3):無料コンテンツの範囲確認
無料かつクラスコードを使用しない形式で,
Python5つの基本レベまでを学習できる.
それ以降のレベルは有料コンテンツとなる.
45
無料で、クラスコードを使わずに、Python
5つのレベルを学ぶことができる
発展学習(4):追加機能とアカウント登録
以下の選択は各自の判断に委ねられる(授業の成績には影響
しない)
CODECOMBATプレミアム(有料)への登録
クラスコードを使用した本格的な学習(無料,要ユーザ登
録)
46
私は学生です
セレッソのクラスコードを
入れる
メールアドレスなどの登録が必要.
ユーザ名,パスワードは自分で決める