SlideShare una empresa de Scribd logo
1 de 22
Descargar para leer sin conexión
Turtle Graphics
で遊ぼう!
用意するもの
• Eclipse(総合開発環境)
自分でJavaソースコードを書く、コンパイル、
実行まで出来る環境があればそれでもOK
• Turtleクラス
偉大なライブラリを作って頂いた先人に感謝
Eclipse
• USBフラッシュメモリ内に保存
各自OSに対応したEclipseをコピーして下さい
Windows 32bit・64bit
Mac 32bit・64bit
Turtleクラス
• USBフラッシュメモリに保存
 各自Turtleフォルダごとコピー下さい
• GitHubから入手する
https://github.com/arienkakkowara/TurtleGraphics
上記のリポジトリをcloneして下さい
Turtleクラス
• TurtleGraphicsとは?
 TurtleGraphics(タートルグラフィックス)は
子供にプログラミングを紹介するのによく使わ
れます。TurtleGraphicsはWally Feurzigと
Seymore Papertが1966年に開発したLogoプ
ログラミング言語の一部でした。
引用:http://docs.python.jp/3.3/library/turtle.html
TurtleGraphicsで遊ぶ
• TurtleFrameクラスの詳細
コンストラクタ
TurtleFrame()
ウィンドウを
400☓400の大きさで生成
TurtleFrame(int
width, int height)
ウィンドウを
width☓heightの大きさで生成
メソッド
void add(Turtle t) カメtをウィンドウに追加
void remove
(Turtle t)
カメtをウィンドウから削除
void clear() 今までに書かれた線を全て削除
void addMesh() 方眼紙のようなマス目を表示
TurtleGraphicsで遊ぶ
• Turtleクラスの詳細(その1)
コンストラクタ
Turtle() (200, 200)の位置、0度の向きでカメ生成
Turtle(int x, int y,
int angle)
(x, y)の位置、angle度の向きでカメ生成
メソッド
void fd(int n) nだけカメを前に進める
void bk(int n) nだけカメを後に進める
void rt(int n) n度だけカメを右に回転する
void lt(int n) n度だけカメを左に回転する
void setColor(Color
c)
カメの色をcに変更する
TurtleGraphicsで遊ぶ
• Turtleクラスの詳細(その2)
メソッド(続き)
int moveTo(int x,
int y)
(x, y)の方向を向き、(x, y)まで移動する
移動した距離を返す
int moveTo(Turtle
t)
カメtの方向を向き、tと同じ位置まで移動
移動した距離を返す
int moveTo(int x,
int y, int angle)
(x, y)の方向を向き、(x, y)まで移動、
angleの角度をむく
移動した距離を返す
int getX() 現在のx座標の値を返す
int getY() 現在のy座標の値を返す
int getAngle() 現在の向いている角度angleを返す
TurtleGraphicsで遊ぶ
• Turtleクラスの詳細(その3)
メソッド(続き)
void up() ペンを上げる
void down() ペンを下げる(進んだ軌跡を線として描画)
boolean isDown() ペンを上げる:false 下げる:trueを返す
フィールド
Color tcolor
初期値:緑色
カメの絵の色
double tscale
初期値:0.4
カメの大きさを表す
static boolean
withAurtleAll
初期値:true
true→通常の描画 false→瞬時に描画
TurtleGraphicsで遊ぶ
• Turtleクラスの詳細(その3)
メソッド(続き)
void up() ペンを上げる
void down() ペンを下げる(進んだ軌跡を線として描画)
boolean isDown() ペンを上げる:false 下げる:trueを返す
フィールド
Color tcolor
初期値:緑色
カメの絵の色
double tscale
初期値:0.4
カメの大きさを表す
static boolean
withAurtleAll
初期値:true
true→通常の描画 false→瞬時に描画
習うより
慣れろ!
TurtleGraphicsで遊ぶ
• 基本的な流れ
①ウィンドウ生成
↓
②カメ生成
↓
③ウィンドウにカメ追加
↓
④カメに命令
• サンプルコード
class Test {
pubic static void main(String[] args) {
TurtleFrame f = new TurtleFrame(700, 500);
Turtle t = new Turtle(200, 200, 0);
f.add(t);
t.fd(100);
t.rt(90);
t.fd(130);
}
}
TurtleGraphicsで遊ぶ
TurtleGraphicsで遊ぶ
• サンプルコード
class Test {
pubic static void main(String[] args) {
TurtleFrame f = new TurtleFrame(700, 500);
Turtle t = new Turtle(200, 200, 0);
f.add(t);
t.fd(100);
t.rt(90);
t.fd(130);
}
}
ウィンドウ生成
• サンプルコード
class Test {
pubic static void main(String[] args) {
TurtleFrame f = new TurtleFrame(700, 500);
Turtle t = new Turtle(200, 200, 0);
f.add(t);
t.fd(100);
t.rt(90);
t.fd(130);
}
}
TurtleGraphicsで遊ぶ
②カメ生成
• サンプルコード
class Test {
pubic static void main(String[] args) {
TurtleFrame f = new TurtleFrame(700, 500);
Turtle t = new Turtle(200, 200, 0);
f.add(t);
t.fd(100);
t.rt(90);
t.fd(130);
}
}
TurtleGraphicsで遊ぶ
③ウィンドウにカメ追加
• サンプルコード
class Test {
pubic static void main(String[] args) {
TurtleFrame f = new TurtleFrame(700, 500);
Turtle t = new Turtle(200, 200, 0);
f.add(t);
t.fd(100);
t.rt(90);
t.fd(130);
}
}
TurtleGraphicsで遊ぶ
④カメに命令
TurtleGraphicsで遊ぶ
• 実行結果
TurtleGraphicsで遊ぶ
• もっと遊ぼう!
 ステップ1
  カメを複数作って動かす
 ステップ2
  for文やif文で華麗に制御する
 ステップ3
  Thread(スレッド)で匠のようにあやつる
 ステップ4
  TurtleGraphics3dに挑戦してみる
TurtleGraphicsで遊ぶ
• もっと遊ぼう!
 ステップ1
  カメを複数作って動かす
 
 キーワード
オブジェクト生成
TurtleGraphicsで遊ぶ
• もっと遊ぼう!
 ステップ2
  for文やif文で華麗に制御する
!
 キーワード
for文、if文、break、continue
TurtleGraphicsで遊ぶ
• もっと遊ぼう!
 ステップ3
  Thread(スレッド)で匠のようにあやつる
!
 キーワード
Thread、run、start
TurtleGraphicsで遊ぶ
• もっと遊ぼう!
 ステップ4
  TurtleGraphics3dに挑戦してみる
 
 キーワード
TurtleGraphics3d

Más contenido relacionado

Similar a Turtle Graphicsで遊ぼう!

TypeScriptをオススメする理由
TypeScriptをオススメする理由TypeScriptをオススメする理由
TypeScriptをオススメする理由Yusuke Naka
 
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼう
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼうGraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼう
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼうKoichi Sakata
 
全部入り!WGPで高速JavaScript+HML5体験
全部入り!WGPで高速JavaScript+HML5体験全部入り!WGPで高速JavaScript+HML5体験
全部入り!WGPで高速JavaScript+HML5体験AdvancedTechNight
 
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!Masaki Muranaka
 
XMLpro 1回目 環境導入
XMLpro 1回目 環境導入XMLpro 1回目 環境導入
XMLpro 1回目 環境導入XMLProJ2014
 
PHP7をDockerで動かしたという話
PHP7をDockerで動かしたという話PHP7をDockerで動かしたという話
PHP7をDockerで動かしたという話侑弥 濱田
 
はじめてのDockerパーフェクトガイド(2017年版)
はじめてのDockerパーフェクトガイド(2017年版)はじめてのDockerパーフェクトガイド(2017年版)
はじめてのDockerパーフェクトガイド(2017年版)Hiroshi Hayakawa
 
JJUG CCC 2017 Fall オレオレJVM言語を作ってみる
JJUG CCC 2017 Fall オレオレJVM言語を作ってみるJJUG CCC 2017 Fall オレオレJVM言語を作ってみる
JJUG CCC 2017 Fall オレオレJVM言語を作ってみるKoichi Sakata
 
Glassfishで始める モテる!簡単クラスタ入門
Glassfishで始める モテる!簡単クラスタ入門Glassfishで始める モテる!簡単クラスタ入門
Glassfishで始める モテる!簡単クラスタ入門Takafumi Yoshida
 
SphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまで
SphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまでSphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまで
SphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまでStudy Group by SciencePark Corp.
 
Scala Daysに行ってみて
Scala Daysに行ってみてScala Daysに行ってみて
Scala Daysに行ってみてKota Mizushima
 
Guide to GraalVM (JJUG CCC 2019 Fall)
Guide to GraalVM (JJUG CCC 2019 Fall)Guide to GraalVM (JJUG CCC 2019 Fall)
Guide to GraalVM (JJUG CCC 2019 Fall)Koichi Sakata
 
DLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミングDLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミングterurou
 
Sphinxの環境構築が再現できない問題をDockerで解決してみた
Sphinxの環境構築が再現できない問題をDockerで解決してみたSphinxの環境構築が再現できない問題をDockerで解決してみた
Sphinxの環境構築が再現できない問題をDockerで解決してみたStudy Group by SciencePark Corp.
 
ゆるふわアーキを支える技術
ゆるふわアーキを支える技術ゆるふわアーキを支える技術
ゆるふわアーキを支える技術Shinichi Kozake
 

Similar a Turtle Graphicsで遊ぼう! (20)

clominal
clominalclominal
clominal
 
TypeScriptをオススメする理由
TypeScriptをオススメする理由TypeScriptをオススメする理由
TypeScriptをオススメする理由
 
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼう
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼうGraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼう
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼう
 
Open modeler
Open modelerOpen modeler
Open modeler
 
全部入り!WGPで高速JavaScript+HML5体験
全部入り!WGPで高速JavaScript+HML5体験全部入り!WGPで高速JavaScript+HML5体験
全部入り!WGPで高速JavaScript+HML5体験
 
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
 
XMLpro 1回目 環境導入
XMLpro 1回目 環境導入XMLpro 1回目 環境導入
XMLpro 1回目 環境導入
 
PHP7をDockerで動かしたという話
PHP7をDockerで動かしたという話PHP7をDockerで動かしたという話
PHP7をDockerで動かしたという話
 
はじめてのDockerパーフェクトガイド(2017年版)
はじめてのDockerパーフェクトガイド(2017年版)はじめてのDockerパーフェクトガイド(2017年版)
はじめてのDockerパーフェクトガイド(2017年版)
 
JJUG CCC 2017 Fall オレオレJVM言語を作ってみる
JJUG CCC 2017 Fall オレオレJVM言語を作ってみるJJUG CCC 2017 Fall オレオレJVM言語を作ってみる
JJUG CCC 2017 Fall オレオレJVM言語を作ってみる
 
Vert.x.tari.tari
Vert.x.tari.tariVert.x.tari.tari
Vert.x.tari.tari
 
Glassfishで始める モテる!簡単クラスタ入門
Glassfishで始める モテる!簡単クラスタ入門Glassfishで始める モテる!簡単クラスタ入門
Glassfishで始める モテる!簡単クラスタ入門
 
SphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまで
SphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまでSphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまで
SphinxのCIの続き Azure DevOpsでのビルド結果を、認証付きAzure App Serviceに公開するところまで
 
Scala Daysに行ってみて
Scala Daysに行ってみてScala Daysに行ってみて
Scala Daysに行ってみて
 
Guide to GraalVM (JJUG CCC 2019 Fall)
Guide to GraalVM (JJUG CCC 2019 Fall)Guide to GraalVM (JJUG CCC 2019 Fall)
Guide to GraalVM (JJUG CCC 2019 Fall)
 
入門 シェル実装
入門 シェル実装入門 シェル実装
入門 シェル実装
 
DLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミングDLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミング
 
Dockerを社内で使うために
Dockerを社内で使うためにDockerを社内で使うために
Dockerを社内で使うために
 
Sphinxの環境構築が再現できない問題をDockerで解決してみた
Sphinxの環境構築が再現できない問題をDockerで解決してみたSphinxの環境構築が再現できない問題をDockerで解決してみた
Sphinxの環境構築が再現できない問題をDockerで解決してみた
 
ゆるふわアーキを支える技術
ゆるふわアーキを支える技術ゆるふわアーキを支える技術
ゆるふわアーキを支える技術
 

Más de Arien Kakkowara

補償光学を用いた太陽観測
補償光学を用いた太陽観測補償光学を用いた太陽観測
補償光学を用いた太陽観測Arien Kakkowara
 
クラスタリングについて
クラスタリングについてクラスタリングについて
クラスタリングについてArien Kakkowara
 
知的システムなんとか
知的システムなんとか知的システムなんとか
知的システムなんとかArien Kakkowara
 
第5回LOCAL学生部総大会開催告知LTその2
第5回LOCAL学生部総大会開催告知LTその2第5回LOCAL学生部総大会開催告知LTその2
第5回LOCAL学生部総大会開催告知LTその2Arien Kakkowara
 
第5回LOCAL学生部総大会開催開催告知LT
第5回LOCAL学生部総大会開催開催告知LT第5回LOCAL学生部総大会開催開催告知LT
第5回LOCAL学生部総大会開催開催告知LTArien Kakkowara
 
はじめてのらいとにんぐとーく?
はじめてのらいとにんぐとーく?はじめてのらいとにんぐとーく?
はじめてのらいとにんぐとーく?Arien Kakkowara
 
はじめてのらいとにんぐとーく
はじめてのらいとにんぐとーくはじめてのらいとにんぐとーく
はじめてのらいとにんぐとーくArien Kakkowara
 

Más de Arien Kakkowara (9)

補償光学を用いた太陽観測
補償光学を用いた太陽観測補償光学を用いた太陽観測
補償光学を用いた太陽観測
 
クラスタリングについて
クラスタリングについてクラスタリングについて
クラスタリングについて
 
知的システムなんとか
知的システムなんとか知的システムなんとか
知的システムなんとか
 
Opening Slide
Opening SlideOpening Slide
Opening Slide
 
第5回LOCAL学生部総大会開催告知LTその2
第5回LOCAL学生部総大会開催告知LTその2第5回LOCAL学生部総大会開催告知LTその2
第5回LOCAL学生部総大会開催告知LTその2
 
第5回LOCAL学生部総大会開催開催告知LT
第5回LOCAL学生部総大会開催開催告知LT第5回LOCAL学生部総大会開催開催告知LT
第5回LOCAL学生部総大会開催開催告知LT
 
はじめてのらいとにんぐとーく?
はじめてのらいとにんぐとーく?はじめてのらいとにんぐとーく?
はじめてのらいとにんぐとーく?
 
しくった
しくったしくった
しくった
 
はじめてのらいとにんぐとーく
はじめてのらいとにんぐとーくはじめてのらいとにんぐとーく
はじめてのらいとにんぐとーく
 

Último

東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2Tokyo Institute of Technology
 
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ssusere0a682
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ssusere0a682
 
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料Takayuki Itoh
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024koheioishi1
 
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationYukiTerazawa
 
UniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScriptUniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScriptyuitoakatsukijp
 

Último (7)

東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
 
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
 
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
 
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
 
UniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScriptUniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScript
 

Turtle Graphicsで遊ぼう!