Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
いばらき総文連2014 コンピュータ部会 プログラミング研修会
Search
Fushimi Ryohei
September 02, 2013
Education
0
98
いばらき総文連2014 コンピュータ部会 プログラミング研修会
2013年9月に品川マイクロソフト本社で行った、いばらき総文祭2014に向けての研修会の資料です。
Fushimi Ryohei
September 02, 2013
Tweet
Share
More Decks by Fushimi Ryohei
See All by Fushimi Ryohei
Sight: "知覚旅行"のための視覚代行デバイス
sidestepism
0
500
Sight: "知覚旅行"のための視覚代行デバイス
sidestepism
0
120
Sight by 200 OK
sidestepism
2
21k
"Mirror Mirror" [SIGGRAPH ASIA 2014] Review
sidestepism
0
76
Bag-of-visual-words を用いた 2クラスの画像識別器の実装 + ハンズオン
sidestepism
2
380
SPAJAM2014 "nani-colle?"
sidestepism
0
270
プレゼンの話
sidestepism
0
230
ノンプログラマーのためのプログラミング講座 第4回「JavaScriptでゲーム開発」
sidestepism
0
160
並木中等教育学校「はじめてのプログラミング入門」
sidestepism
0
390
Other Decks in Education
See All in Education
Mathematics used in cryptography around us
herumi
2
370
Sähköiset kyselyt, kokeet ja arviointi
matleenalaakso
1
17k
Kaggle 班ができるまで
abap34
1
220
Ch2_-_Partie_3.pdf
bernhardsvt
0
110
Flinga
matleenalaakso
2
13k
Introduction - Lecture 1 - Web Technologies (1019888BNR)
signer
PRO
0
4.9k
TP5_-_UV.pdf
bernhardsvt
0
120
Design Guidelines and Models - Lecture 5 - Human-Computer Interaction (1023841ANR)
signer
PRO
0
720
開発終了後こそ成長のチャンス!プロダクト運用を見送った先のアクションプラン
ohmori_yusuke
2
190
Medicare 101 for 2025
robinlee
PRO
0
310
Lisätty todellisuus opetuksessa
matleenalaakso
1
2.3k
勉強する必要ある?
mineo_matsuya
2
2.3k
Featured
See All Featured
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
127
18k
Automating Front-end Workflow
addyosmani
1366
200k
Faster Mobile Websites
deanohume
305
30k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
28
8.3k
Embracing the Ebb and Flow
colly
84
4.5k
KATA
mclloyd
29
14k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
5
450
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
28
4.4k
Navigating Team Friction
lara
183
15k
YesSQL, Process and Tooling at Scale
rocio
169
14k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
Transcript
いばらき総文連2014コンピュータ部会 プログラミング研修会 (株)ユビキタスエンターテインメント enchant.js 開発チームリーダー 東京大学工学部 伏見遼平
今日の日程 10:30 - 11:30 enchant.js 初級編 11:30 - 12:30 実習
… アクションゲーム 13:30 - 14:15 実習 … フルーツパニック 13:15 - 13:30 enchant.js 中級編 14:15 - 15:15 Monaca + enchant.js 15:15 - 16:00 コンテスト & 講評
コンテスト & 講評会について • 今日学んだことを元に、30分間でゲームを開発 してください。 • もちろん、すでにあるゲームのソースコードを 元にしてもらってもかまいません。
• 完成した方全員にプレゼンしていただきます。 • 完成度・ユニークなアイデア・プレゼンテーシ ョンを評価します。
ࣗݾհ
෬ݟྒྷฏ ౦ژେֶֶ෦ ใֶڭҭ෦ גࣜձࣾϢϏΩλε ΤϯλʔςΠϯϝϯτ
ࣗݾհ ෬ݟྒྷฏ !TJEFTUFQJTN גࣜձࣾϢϏΩλεΤϯλʔςΠϯϝϯτ ळ༿ݪϦαʔνηϯλʔॴଐ FODIBOUKT։ൃνʔϜϦʔμʔ MFBQϓϩδΣΫτϦʔμʔ ౦ژେֶֶ෦ɾେֶӃใֶॴଐ
౦ژେֶ ڭཆֶ෦ ֶ෦ ཧֶ෦ ֶ෦ ༀֶ෦ จֶ෦ ܦࡁֶ෦ ڭҭֶ෦ ๏ֶ෦
લظ՝ఔ ޙظ՝ఔ
ࣗݾհ ੜ ɹେֶೖֶ ɹגࣜձࣾϢϏΩλεΤϯλʔςΠϯϝϯτೖࣾ ɹɹɹFODIBOUKT MFBQͷ։ൃ ɹDPEFMFBQͷ։ൃ ɹɹɹɹ౦ژେֶେֶӃใֶڭҭ෦ೖֶ ɹ౦ژେֶֶ෦ਐֶ
ʮϓϩάϥϛϯάڭҭʯͷ ͨΊͷϓϩδΣΫτ
ήʔϜΛ༡Ϳͷ໘ന͍
୯७ͳϧʔϧͰ໘ന͍
ࣗͷήʔϜΛ࡞Δͷʜ໘ന͍
ήʔϜΛ࡞Δͷͬͱ໘ന͍
લాϒϩοΫ
ϓϩάϥϚ اը ϓϩδΣΫτϚωʔδϟ ։ൃνʔϜϦʔμʔ
None
None
͜͜ͰΞϯέʔτ
தֶੜ
ߴߍੜ
େֶੜ
ઌੜ
ҵݝʹॅΜͰ͍Δਓ
ͦΕҎ֎ͷਓ
ֶߍΛ͢Ͱʹଔۀͨ͠ํ
͕ࣗࣗ༝ʹ͑Δ ύιίϯΛ͍࣋ͬͯΔ
ͦΕ8JOEPXT
ͦΕ.BD
ՈͷύιίϯԿ࣌·Ͱ ͑Δ͔ܾ·͍ͬͯΔ
ʹɺ࣌ؒҎ্ύιίϯΛ͏ਓ
ʹɺ࣌ؒҎ্ύιίϯΛ͏ਓ
ϓϩάϥϜΛॻ͍ͨ͜ͱ͕͋Δਓ
ϓϩάϥϜΛॻ͍ͨ͜ͱ͕ͳ͍ਓ
िؒʹɺ ࣌ؒҎ্ϓϩάϥϜΛॻ͍͍ͯΔਓ
िؒʹɺ ࣌ؒҎ্ϓϩάϥϜΛॻ͍͍ͯΔਓ
ͦͦϓϩάϥϜͬͯ Կ͔͍ͬͯΔਓ
ϓϩάϥϛϯάͨ͜͠ͱ͋Δਓ
ʮϓϩάϥϛϯάʯͷఆٛΛݴ͑Δਓ
ϓϩάϥϛϯάͬͯԿ͔ͩ Α͔͘Βͳ͍͚Ͳ ͬͨ͜ͱ͋Δਓ
·ͣͷճΓʹ͋ΔʮϓϩάϥϜʯΛ ࢥ͍ු͔ͯԼ͍͞
ۙʹ͋ΔϓϩάϥϜ
ۙʹ͋ΔϓϩάϥϜ
ۙʹ͋ΔϓϩάϥϜ
ۙʹ͋ΔϓϩάϥϜ
ۙʹ͋ΔϓϩάϥϜ
ۙʹ͋ΔϓϩάϥϜ
৽ӳதࣙయ ୈ̒൛ ʢݚڀࣾʣΑΓҾ༻ http://www.excite.co.jp/dictionary/english_japanese/?search=program&match=beginswith&dictionary=NEW_EJJE&block=41438&offset=1206
Hackers’ Cafe ϓϩάϥϜͱ͍͑ɾɾɾ ήʔϜϓϩάϥϜ ӡಈձͷϓϩάϥϜ ݁ࠗࣜͷࣜ࣍ୈ ςϨϏ൪ ӳޠͰ571SPHSBN ΧϦΩϡϥϜ ڭҭϓϩάϥϜͳͲ
ϓϩάϥϜۙʹᷓΕͯΔ
ܚጯٛक़େֶͷ૿Ҫढ़೭ઌੜʹΑΕɺ ͜ΜͳͷϓϩάϥϜʹͳΔͦ͏Ͱ͢ ֮·࣌͠ܭͷઃఆ ϏσΦσοΩͷը༧ ࣗಈυΞͷ։ൃ
Hackers’ Cafe ӳࣙయΛҾ͖·͠ΐ͏ ৽ӳதࣙయ ୈ̒൛ ʢݚڀࣾʣΑΓҾ༻ http://www.excite.co.jp/dictionary/english_japanese/?search=program&match=beginswith&dictionary=NEW_EJJE&block=41438&offset=1206
ʲిࢉʳ ϓϩάϥϜ ʬిࢉػʹࢦྩ͢Δ ࡞ۀखॱͷਫ਼ີͳهड़ʭ
ϓϩάϥϜ࡞ۀͷखॱͷৄ͍͠هड़
Hackers’ Cafe ϓϩάϥϜͷ͍Ζ͍Ζ ӡಈձͷϓϩάϥϜ ݁ࠗࣜͷࣜ࣍ୈ ΧϦΩϡϥϜ ։ձࣜ ۄೖΕ N ٍഅઓ
େۄૹΓ ΨΠμϯε ϓϩάϥϛϯά֓ ܭࢉػՊֶͷجૅ ΞϧΰϦζϜͱσʔλߏ ϓϩάϥϛϯά࣮श ։ ৽৽්ೖ ओෂѫࡰɾסഋ έʔΩೖ ͓৭͠ ΩϟϯυϧαʔϏε ༑ਓʹΑΔ༨ڵ ՖՇ͔Βͷखࢴ ดձ ·͞ʹखॱΛهड़ͯ͠Δ
૿Ҫढ़೭ઌੜͷྫࣔΛ࡞ۀखॱʹͯ͠ΈΔ ֮·࣌͠ܭͷઃఆ ɹˠɹ".ʹͳͬͨΒԻΛ໐Βͤ ϏσΦσοΩͷը༧ ɹˠɹ༵ʹͳͬͨΒ ɹɹɹνϟϯωϧʹ͋Θͤͯ ɹ࣌ؒը͠Ζ ࣗಈυΞͷ։ൃ ɹˠɹυΞͷલʹਓཱ͕ͬͨΒ ɹɹɹυΞΛ։͚
ɹɹɹਓཱ͕ͪڈͬͨΒ ɹɹɹυΞΛด͡Ζ
࣌ʹɺίϯϐϡʔλͱ
࣮ɺલɺίϯϐϡʔλɺ৬ۀͰͨ͠
/"$"ͷܭࢉख ίϯϐϡʔλ ͷํʑ ग़యϑϦʔඦՊࣄయɹ8JLJQFEJB
ୈೋ࣍ੈքେઓͷظ ిࢠίϯϐϡʔλ͕࢈·Ε·ͨ͠
δϣϯɾϑΥϯɾϊΠϚϯ ग़యϑϦʔඦՊࣄయɹ8JLJQFEJB ϋϯΨϦʔग़ͷΞϝϦΧͷֶऀ ֶɺཧֶɺؾֶɺܦࡁֶɺܭࢉػՊֶʹ େͳӨڹΛ༩͑ͨɻ ݪരͷ։ൃऀͷҰਓͰ͋Δɻ ͦͯ͠ిࢠίϯϐϡʔλൃ໌ऀͷҰਓ
ίϯϐϡʔλΛൃ໌ͨ͠ͱ͖ɺ ϊΠϚϯ͜͏ݴ͍·ͨ͠ ग़యϑϦʔඦՊࣄయɹ8JLJQFEJB Զͷ࣍ʹ಄ͷౕ͍͍͕Ͱ͖ͨ ࣮ࡍɺίϯϐϡʔλΑΓ ܭࢉ͕͔ͬͨΒ͍͠
&/*"$ถ܉ͷಓܭࢉ༻ίϯϐϡʔλ ग़యϑϦʔඦՊࣄయɹ8JLJQFEJB
ίϩοαεӳࠃւ܉ใ෦ͷ։ൃͨ͠҉߸ղಡػ ग़యϑϦʔඦՊࣄయɹ8JLJQFEJB
;VTF;υΠπਓՊֶऀπʔθ͕։ൃͨ͠ίϯϐϡʔλ ग़యϑϦʔඦՊࣄయɹ8JLJQFEJB
࣮࠷ॳͷίϯϐϡʔλΛ ୭͕ൃ໌ͨ͠ͷ͔ਖ਼֬ͳ ͱ͜ΖΘ͔͍ͬͯ·ͤΜ ग़యϑϦʔඦՊࣄయɹ8JLJQFEJB ΞϨɺΦϨ͕ߟ͑ͨΜͩ ͱɺϊΠϚϯ͕ݴ͍࢝ΊͨͷͰ ํͳ͘ɺͦͷޙͷίϯϐϡʔλ ͜͏ݺΕΔΑ͏ʹͳΓ·ͨ͠
ʮϊΠϚϯܕίϯϐϡʔλʯ ͦͯ͜͠ͷ࣌ͦ͜ɺ ίϯϐϡλʔϓϩάϥϜੜͷॠؒͳͷͰ͢
ϓϩάϥϛϯάݴޠͷ͍Ζ͍Ζ
࣮ɺίϯϐϡʔλ͕ཧղͰ͖Δݴޠ $16ʹΑͬͯҧ͍·͢ *OUFM "3.
ίϯϐϡʔλ͕ཧղͰ͖ΔݴޠΛ ʮػցޠ Ϛγϯޠ ʯͱݺͼ·͢
Ϛγϯޠͬͯ͜Μͳײ͡Ͱ͢
͜ΕͲ͏ͬͯॻ͘ͷ ;ͭ͏ͷਓؒʹແཧͰ͢ ͔ͩΒੲͷϓϩάϥϚʔ ੌ͍ਓ͔͍͠ͳ͔ͬͨͷͰ͢ ˣ
ͬͱ؆୯ʹϓϩάϥϜ͢ΔͨΊʹ ϚγϯޠҎ֎ͷϓϩάϥϛϯάݴޠ͕ ͨ͘͞Μ࢈·Ε·ͨ͠
FORTRAN ʹ*#.Ͱ։ൃ͞Εͨखଓ͖ܕݴޠ 'PSNVMB5SBOTMBUJPO ࣜ༁ ʹ ༝དྷ͢ΔɺՊֶٕज़ܭࢉ༻ݴޠ εʔύʔίϯϐϡʔλͳͲͰ ࠓݱࡏΘΕ͍ͯΔ
LISP ੜ·Εͷؔܕݴޠ -JTU1SPDFTTPS͕༝དྷͰɺू߹ॲཧ͕ಘҙ +BWB4DSJQUͷܥͷઌ
Cݴޠ ੜ·Εͷखଓ͖ܕݴޠ ߏԽϓϩάϥϛϯάΛಋೖ͠ɺ։ൃޮ͕Ξοϓ ݱࡏͰ෯͘ΘΕ͍ͯΔݴޠͷͻͱͭͰ͋Δ
Smalltalk ʹެ։͞ΕͨΦϒδΣΫτࢦݴޠ ͕ؔଞݴޠͷ-*41-0(0ʹӨڹΛड͚ͨ ΞϥϯɾέΠ͕ઃܭͨ͠04ͷࢥʹ·Ͱٴ͢Δ ݴޠͰɺͦͷޙͷݴޠઃܭʹઈେͳӨڹΛ༩͑Δ
C++ ʹ։ൃ͞ΕͨΦϒδΣΫτࢦݴޠ खଓ͖ܕݴޠͷ$ݴޠΛϕʔεͱͯ͠ΦϒδΣΫτ ࢦػೳΛՃͨ͠
Objective-C $ݴޠΛϕʔεͱͯ͠4NBMMUBML෩ͷΦϒδΣΫτࢦ ػೳΛՃͨ͠ͷɻ J04.BDͳͲͰ༻͞Ε͍ͯΔ
Java $ Λϕʔεͱͯ͠ચ࿅ͤͨ͞ͷɻߴͳϝϞϦ ཧػߏιϑτΣΞίϯϙʔωϯτͳͲΛ࣮ݱ
Ruby ʹ·ͭͱΏ͖ͻΖࢯ͕ൃදͨ͠ࠃ࢈ϓϩ άϥϛϯάݴޠɻʮଟ༷ੑળʯͷεϩʔΨϯͷ ͱ։ൃ͕ਐΊΒΕͨɻੈքͰ࠷ਐΜͩݴޠͷͻͱ ͭͰɺϑΝϯଟ͍ɻ
JavaScript ʹ։ൃ͞Εͨ8FCϒϥβ༻ϓϩάϥϛϯ άݴޠɻ-*41ͷྲྀΕΛΉؔܕݴޠͰ͋Γͳ͕ Βɺ+BWBʹࣅͤͨจ๏ͷ࠾༻ͰղΓཱ྆͢͞͞ ͤΔɻ)5.-Ͱ༻͞ΕΔࣄ্࣮ͷඪ४ݴޠ
enchant.js ʹ։ൃ͞Εͨࠃ࢈+BWB4DSJQU༻ΞϓϦέʔ γϣϯΤϯδϯɻಠࣗͷΫϥεΠϕϯτػߏΛΓ ࠐΈɺॳ৺ऀ͔Β্ڃऀ·Ͱ͍͘͢վྑͨ͠
લాϒϩοΫ ʹ։ൃ͞ΕͨϏδϡΞϧݴޠ FODIBOUKTΛϕʔεͱͨ͠ΫϩεϓϥοτϑΥʔϜ ͱɺ༮ࣇ͔Βେਓ·Ͱ͑ΔݴޠΛࢦͯ͠։ൃ͞ Ε͍ͯΔɻ
今日学ぶのは… 前田ブロック と enchant.js
講義 enchant.jsについて
プログラミング言語 • C • C++ • Java • PHP •
Ruby • JavaScript • Perl • Lisp • Haskell • Scheme • Objective-C • Visual Basic
プログラミング言語 • C言語・C++ - 言語の祖先 … ラテン語 - いろいろな言語に影響を与えた •
JavaScript - 比較的新しい言語 … 英語 - 使っている人が多い
プログラミング言語 • 今回扱うのは、JavaScript • プログラミングの本質的な部分に注力するため • もちろん、ソフトウェアの中身を知るためには、 C言語やアーキテクチャに関する知識が必要です。
JavaScript とは?
JavaScript とは? 4DSJQU
JavaScript とは? 4DSJQU ʷ
JavaScript とは? • Brendan Rich (Java嫌い) • Netscape … 最初に普及した無料ブラウザ
• Netscape「Javaっぽい言語を作ってくれ」 • Rich「えーっ」
JavaScript とは? 仕方ないから 見た目だけJavaっぽくしよう Brendan Rich
JavaScript とは? ʺJavaScript
JavaScript とは? • シンプルな文法 • 強力な記述力 • ただしちょっと遅い (cf.
C言語の約10倍)
JavaScript とは? • Webブラウザ上で動く • いろんなデバイスで動く - iOS (iPhone,
iPad) - Android - Mac, Windows, Linux
JavaScript とは? • 「JavaScript の知識」は 「プログラミング の知恵」ではない • プログラミングの知恵とは?
→ あとで話します
実習 前田ブロック編
(PPHMF$ISPNFͰ։͍ͯΈΑ͏ IUUQNBFEBCMPDLKQ
(PPHMF$ISPNFͰ։͍ͯΈΑ͏ IUUQNBFEBCMPDLKQ
͜ͷϓϩάϥϛϯάڥͷओ
FODIBOUKTͷެࣜΩϟϥΫλʔ γʔϧͳͲͷ άοζਐग़Λܦͯ ͍ͭʹண͙ΔΈԽ
ʮ͜ͷΫϚΛಈ͔͢खॱʯ ΛϓϩάϥϜ͠·͠ΐ͏
͜ͷதͰಈ͖·͢ ࣮ߦϘλϯ
ʮύϖοτʯͷശ
ύϖοτϒϩοΫ ΛऔΓग़͢
͜ͷͭͷϒϩοΫΛ औΓग़͍ͯͩ͘͠͞
·ͬͨ
͕ͬͨ
ԼஈͷɹɹɹΛԡ͢ͱʜ ӈ্ͷը໘͕มΘΓ·͢
ΫϦοΫ͢Δͱɺ ग़ݱํ๏͕มΘΔ ʮͨ͘͞ΜͰΔʯ ʮ্͔Βग़ͯ͘Δʯ ʹม͑ͯɹɹɹͯ͠Έ·͠ΐ͏
͜ͷϒϩοΫΛग़ͯ͜͠Α͏
՝ ͦͷ
͜ͷಈ͖Λ࡞ͬͯΈΑ͏
ώϯτ͏ϒϩοΫ͜ͷछྨ
ώϯτ͜ͷϒϩοΫΛෳ͏
ώϯτ͜ͷϒϩοΫΛෳ͏
λςͱϤίͷ δάβάΛՃ͑Δ
ը૾ΛΫϦοΫ͢Δͱ ը૾Λม͑ΒΕ·͢
ࠓ࡞Δͷ ʮγϡʔςΟϯάήʔϜʯ
γϡʔςΟϯάήʔϜʹԿ͕ඞཁ
ࣗػ
ఢ
ࣗͷ
ఢͷ
ύϖοτ͕ͭ͋Ε࡞ΕΔ
՝ ͦͷ
͜͏͍͏ϒϩοΫΛ࡞ͬͯΈ͍ͯͩ͘͞
͜͏͍͏ϒϩοΫΛ࡞ͬͯΈ͍ͯͩ͘͞ ͜ͷϒϩοΫͷ ׂʹ
৽͍͠ϒϩοΫΛհ ΠϕϯτϦεφ ϒϩοΫ ύϖοτग़ݱ ϒϩοΫ ͋Δ݅Ͱ Կ͔ͷखॱΛߦ͏ ύϖοτΛ ग़ݱͤ͞Δ
·ͣʮʙͷͱ͖ʯ ϒϩοΫΛՃ ύϖοτग़ݱ ϒϩοΫΛՃ ૣͬͯΈΑ͏
·ͣʮʙͷͱ͖ʯ ϒϩοΫΛՃ ύϖοτग़ݱ ϒϩοΫΛՃ ͳΜ͔͍͜ͱʹˠ
৽͍͠ϒϩοΫΛհ JGϒϩοΫ ݅ϒϩοΫ
JGϒϩοΫͱ݅ϒϩοΫΛ Έ߹Θͤͯ͏ ඵʹίϚͳͷͰɺඵʹ
தʹύϖοτग़ݱ ϒϩοΫΛೖΕΔ
͜ͷΧλϚϦΛதʹ ͍ΕͯΈΔ
͜ͷΧλϚϦΛதʹ ͍ΕͯΈΔ εϥΠϜͷग़ݱස͕ݮΓ·ͨ͠
ͳΜ͔ͩΒ લʹਐΜͰ΄͍͠
ʮࣗͷʯύϖοτʹ ʮಈ͖ʯϏϔΠϏΞΛՃ
ʮఢʯύϖοτʹ ʮ͋ͨΔʯϏϔΠϏΞΛՃ
͍ͩͿγϡʔςΟϯάήʔϜ
͋ͱɺఢΛଧͬͯɺ ఢͷʹͨΔͱήʔϜΦʔόʔ ࠓ·ͰशͬͨϒϩοΫ ͜ͷϒϩοΫͰ0,
ϓϩάϥϛϯά ʮ෦ΛΈ߹ΘͤΔʯ͚ͩͰͰ͖Δ ͲΜͳݴޠͰ جຊతʹಉ͡
実習 enchant.js 編
IUUQDPEFMFBQOFU
IUUQDPEFMFBQOFU ͔Β͡ΊΑ͏
注意点 赤い ×が出ていたら 「文法エラー」です。 赤い ×にカーソルを合わせると、 文法ミスの内容がわかります。 この場合は、「)」 閉じカッコが足りません。 (閉じカッコのあるべきところに、「game」
があります)
注意点 • プログラムはすべて半角で打ち込みます。 • “”() + - = などの記号や、スペースも すべて半角です。
• 全角を使うと、たとえばこんな文法エラーが 出ます
注意点 • 文法エラーがなくても、スペルミスや、必要な命令 が足りないなどでうまく動かない場合があります。 • 今回は、どうしようもなくなったら、焦らずに、 もう一度「Fork」してやり直しましょう。
アカウント作成 • 「新規登録」をクリック
アカウント作成 • ユーザ名(半角英数) • パスワード(6文字以上) を入力 • 「利用規約」にチェック
• 「プログラミング講座」をクリック
Y Z
いばらき総文連2014コンピュータ部会 プログラミング研修会 後半戦 (株)ユビキタスエンターテインメント enchant.js 開発チームリーダー 東京大学工学部 伏見遼平
総文祭の話 • 総文祭…文化部のインターハイ • 協賛部門…今回限定の部門 • 定例開催になるかどうか…今回の盛り上がり次第 • 定例開催になれば…「第1回コンピュータ部門 全国優勝」
͓τΫ
interhigh • 中高校生向け「9leap」投稿サイト • 野球で言う「練習試合」のようなもの • 事務局や他のユーザから、スコアのデータやアドバイス がもらえます • 準備中!!!
IUUQJOUFSIJHIMFBQOFU
おさらい • プログラムはすべて半角で打ち込みます。 • “”() + - = などの記号や、スペースも すべて半角です。
• 全角を使うと、たとえばこんな文法エラーが 出ます
おさらい • Sprite の基本的な使い方 - x座標、y座標、拡大、回転(rotation) - 移動 (enterframe イベントリスナ)
• クラスの作り方 - コンストラクタの定義 (initialize) - new でコンストラクタ呼び出し - 継承
おさらい • アニメーション - Sprite#frame によるパラパラアニメ - Sprite#tl によるキュー制御 •
Sprite 同士の当たり判定 • ゲームオーバー • スコア
プログラミングをなぜ学ぶのか?
1つは「複雑な現象を理解する」のため
ࣗ ఢ ࣗͷ ఢͷ ੑ࣭Λड͚ܧ͙ લʹਐΉ ఢͱͿ͔ͭΔ ৭੨ ࣗͱͿ͔ͭΔ
৭ ੑ࣭Λ֦ு͢Δ
ڞ௨͢Δ ϏϔΠϏΞ͕ଟ͍
ʮࣅͨͷΛ͘͘Γɺੑ࣭Λఆٛ͢Δʯ ʮڞ௨͢Δੑ࣭ΛऔΓग़͢ʯ ʮΫϥεͷؒͷ૬ޓ࡞༻Λఆٛ͢Δʯ ʮϞσϦϯάೳྗʯ
すごく大きなプログラムをつくる時…
すごく大きなプログラムをつくる時…
461&3."3*0
ϚϦΦ ΫϦϘʔ ϒϩοΫ ʁϒϩοΫ Ωϊί
461&3."3*0 ϚϦΦ ΫϦϘʔ ϒϩοΫ ʁϒϩοΫ είΞ ίΠϯ ϫʔϧυ λΠϜ ԡͨ͠ޙͷ
ʁϒϩοΫ Ωϊί େϚϦΦ ϑϥϫʔ ϑΝΠΞ ϚϦΦ
ϚϦΦ ΫϦϘʔ ϒϩοΫ ʁϒϩοΫ είΞ ίΠϯ ϫʔϧυ λΠϜ ԡͨ͠ޙͷ ʁϒϩοΫ
Ωϊί େϚϦΦ ϑϥϫʔ ϑΝΠΞ ϚϦΦ
ϚϦΦ ΫϦϘʔ ϒϩοΫ ʁϒϩοΫ είΞ ίΠϯ ϫʔϧυ λΠϜ ԡͨ͠ޙͷ ʁϒϩοΫ
Ωϊί େϚϦΦ ϑϥϫʔ ϑΝΠΞ ϚϦΦ
࿈བྷσʔλϕʔε
ਓΫϥε ࿈བྷΫϥε ࢯ໊ɾి൪߸Λ͍ͬͯΔ ࿈བྷݩɾ࿈བྷઌͷਓΛ͍ͬͯΔ
ਓ ࿈བྷ ࿈བྷ ਓ ਓ ࿈བྷ ਓ
࿈བྷݩ ࿈བྷઌ Ώ͏͡ ·ΏΈ Ώ͏͡ ͱΑ ·ΏΈ Α͏͚͢ Α͏͚͢ ͨ͘
Α͏͚͢ Έ͞ͱ ͱΑ ͻΖ͠ ͱΑ ΏΈ͜ ࢯ໊ ి൪߸ ·ΏΈ YYYYYYYYY ͱΑ YYYYYYYYY Α͏͚͢ YYYYYYYYY ͨ͘ YYYYYYYYY Έ͞ͱ YYYYYYYYY ͻΖ͠ YYYYYYYYY ΏΈ͜ YYYYYYYYY
࿈བྷͷߏʹண ਓɺਓͷਓ͔ΒͷΈ࿈བྷΛड͚Δ
࿈བྷݩ ࿈བྷઌ Ώ͏͡ ·ΏΈ Ώ͏͡ ͱΑ ·ΏΈ Α͏͚͢ Α͏͚͢ ͨ͘
Α͏͚͢ Έ͞ͱ ͱΑ ͻΖ͠ ͱΑ ΏΈ͜ ࢯ໊ ి൪߸ ·ΏΈ YYYYYYYYY ͱΑ YYYYYYYYY Α͏͚͢ YYYYYYYYY ͨ͘ YYYYYYYYY Έ͞ͱ YYYYYYYYY ͻΖ͠ YYYYYYYYY ΏΈ͜ YYYYYYYYY
ࢯ໊ ి൪߸ ࿈བྷݩ ·ΏΈ YYYYYYYYY Ώ͏͡ ͱΑ YYYYYYYYY Ώ͏͡ Α͏͚͢
YYYYYYYYY ·ΏΈ ͨ͘ YYYYYYYYY Α͏͚͢ Έ͞ͱ YYYYYYYYY Α͏͚͢ ͻΖ͠ YYYYYYYYY ͱΑ ΏΈ͜ YYYYYYYYY ͱΑ
ਓΫϥε ࢯ໊ɾి൪߸ɾ࿈བྷΛड͚Δਓ Λ͍ͬͯΔ ࿈བྷΫϥε
ਓ ਓ ਓ ਓ ॲཧ͕؆୯ʹͳΔ σʔλ༰ྔ͕খ͘͞ͳΔ
ʮϞσϦϯάೳྗʯ ͜Ε
プログラミングの「モデリング」は、 科学の考え方と同じ。
1つは「コンピュータを使えるようになる」ため
数学
掛け算しよう ※ 解ける人は手を挙げて
2 ×6 = ?
12222 ×1666 = ?
2 ×6 = ?
12 ×6 = ?
122 ×6 = ?
122 ×16 = ?
筆算ならできる? 1 2 2 × 1 6 7 3 2
1 2 2 0 1 9 5 2
12222 ×1666 = ?
頑張れば、解ける 1 2 2 2 2 × 1 6 6
6
(たぶん) 頑張れば、解ける 1 2 2 2 2 2 2 ×
1 6 6 6 6 6
もし、筆算を知らなかったら… 「どう解いていいかわからない」 1 2 2 2 2 2 2 ×
1 6 6 6 6 6
どう解いていいのか 分からない問題 頑張れば、時間はかかるけど 解ける問題 問題の答え 12222 ×1666 たくさんの 九九と足し算の組み合わせに 分解
20,321,852 1 2 2 2 2 2 2 × 1 6 6 6 6 6
「大きな問題を、小さな問題に分けて考える」のは 科学の考え方と同じ。
どう解いていいのか 分からない問題 問題の答え
どう解いていいのか 分からない問題 問題の答え
どう解いていいのか 分からない問題 頑張れば、時間はかかるけど 解ける問題 問題の答え
どう解いていいのか 分からない問題 頑張れば、時間はかかるけど 解ける問題 問題の答え
どう解いていいのか 分からない問題 頑張れば、時間はかかるけど 解ける問題 問題の答え コンピュータの力 数学の力、 プログラミングの力
プログラミングが できるようになりたい! ならば… 今習っている「数学」を きちんと勉強しよう
58888 ×6411 = ? 将来、こんな難しい問題が出てきても…
58888 ×6411 = ? 1 2 2 × 1 6
7 3 2 1 2 2 0 1 9 5 2 122 ×16 = ? 小さな問題に分割すれば、大丈夫
なぜプログラミングを学ぶのか 1. 複雑な現象を理解できる 2. 大きな問題を、小さく分けて解ける 「科学の考え方」を 自然に身につけられる
• 自分で考えたものを、作って動かすのは楽しい! • 複雑なアプリケーションが、自分の思い通りに動 くともっと楽しい! なぜプログラミングを学ぶのか
ͬͯԿ
͖͔ͬ͞Βઆ໌ͳ͠ʹ ͬͯΔ͚Ͳ͞ʜ UTVEBYͱ͔B[VNBTBZͱ͔ "[VNBJOUFSTFDUͱ͔ ͍͍ͬͨͬͯɺͳΜͳͷ͞
͔͜͜Β +BWB4DSJQUͷࠜװ෦Λ Ͱ͖Δ͚ͩ͝·͔ͣ͞ʹઆ໌͠·͢
GVODUJPO \^ lϙετϞμϯl B[VNB "[VNB
+BWB4DSJQUͷੈքͰʜ ѻ͑Δͷɺͯ͢zΦϒδΣΫτz GVODUJPO \^ lϙετϞμϯl B[VNB "[VNB
lΦϒδΣΫτzzϓϩύςΟzΛ͍࣋ͬͯΔ ผ໊ʮεϩοτʯʮϝιουʯ ϓϩύςΟ JNBHF HBNFBTTFUT<bUTVEBQOH`> Z TDBMF9
POFOUFSGSBNF GVODUJPO \^ B[VNB ΦϒδΣΫτ
lΦϒδΣΫτzzϓϩύςΟzΛ͍࣋ͬͯΔ ϓϩύςΟ JNBHF HBNFBTTFUT<bUTVEBQOH`> Z TDBMF9 POFOUFSGSBNF
GVODUJPO \^ ϓϩτλΠϓ "[VNBQSPUPUZQF B[VNB ΦϒδΣΫτ
ϓϩύςΟ POFOUFSGSBNF GVODUJPO \^ ϓϩτλΠϓ 4QSJUFQSPUPUZQF CFBS ϓϩύςΟ
JNBHF OVMM ϓϩτλΠϓ &OUJUZQSPUPUZQF 4QSJUF ϓϩύςΟ Y Z TDBMF9 TDBMF: ϓϩτλΠϓ /PEFQSPUPUZQF &OUJUZ
ϓϩύςΟ POFOUFSGSBNF GVODUJPO \^ ϓϩτλΠϓ 4QSJUFQSPUPUZQF CFBS ϓϩύςΟ
JNBHF OVMM ϓϩτλΠϓ &OUJUZQSPUPUZQF 4QSJUF ϓϩύςΟ Y Z TDBMF9 TDBMF: ϓϩτλΠϓ /PEFQSPUPUZQF &OUJUZ Zͷڭ͑ͯ
ϓϩύςΟ POFOUFSGSBNF GVODUJPO \^ ϓϩτλΠϓ 4QSJUFQSPUPUZQF CFBS ϓϩύςΟ
JNBHF OVMM ϓϩτλΠϓ &OUJUZQSPUPUZQF 4QSJUF ϓϩύςΟ Y Z TDBMF9 TDBMF: ϓϩτλΠϓ /PEFQSPUPUZQF &OUJUZ
ϓϩύςΟ POFOUFSGSBNF GVODUJPO \^ ϓϩτλΠϓ 4QSJUFQSPUPUZQF CFBS ϓϩύςΟ
JNBHF OVMM ϓϩτλΠϓ &OUJUZQSPUPUZQF 4QSJUF ϓϩύςΟ Y Z TDBMF9 TDBMF: ϓϩτλΠϓ /PEFQSPUPUZQF &OUJUZ
ϓϩύςΟ POFOUFSGSBNF GVODUJPO \^ ϓϩτλΠϓ 4QSJUFQSPUPUZQF CFBS ϓϩύςΟ
JNBHF OVMM ϓϩτλΠϓ &OUJUZQSPUPUZQF 4QSJUF ϓϩύςΟ Y Z TDBMF9 TDBMF: ϓϩτλΠϓ /PEFQSPUPUZQF &OUJUZ ·ͩͩΑ
ϓϩύςΟ POFOUFSGSBNF GVODUJPO \^ ϓϩτλΠϓ 4QSJUFQSPUPUZQF "[VNBQSPUPUZQF ϓϩύςΟ
JNBHF OVMM ϓϩτλΠϓ &OUJUZQSPUPUZQF 4QSJUFQSPUPUZQF ϓϩύςΟ Y &OUJUZQSPUPUZQF ϓϩύςΟ JNBHF HBNFBTTFUT<bB[VNBQOH`> ϓϩτλΠϓ "[VNBQSPUPUZQF B[VNB
ϓϩύςΟ POFOUFSGSBNF GVODUJPO \^ ϓϩτλΠϓ 4QSJUFQSPUPUZQF "[VNBQSPUPUZQF ϓϩύςΟ
JNBHF OVMM ϓϩτλΠϓ &OUJUZQSPUPUZQF 4QSJUFQSPUPUZQF ϓϩύςΟ Y &OUJUZQSPUPUZQF ͡Ό͋ɺOFX"[VNB ͬͯͲ͏͍͏͜ͱ
ϓϩύςΟ POFOUFSGSBNF GVODUJPO \^ ϓϩτλΠϓ 4QSJUFQSPUPUZQF "[VNBQSPUPUZQF ϓϩύςΟ
JNBHF OVMM ϓϩτλΠϓ &OUJUZQSPUPUZQF 4QSJUFQSPUPUZQF ϓϩύςΟ Y &OUJUZQSPUPUZQF ϓϩύςΟ JNBHF HBNFBTTFUT<bB[VNBQOH`> ϓϩτλΠϓ "[VNBQSPUPUZQF B[VNB "[VNBQSPUPUZQFΛ ϓϩτλΠϓͱͨ͠ ৽͍͠ΦϒδΣΫτΛ࡞Δ
͍ͬͨΜΕ·͠ΐ͏
OFX"[VNB ͬͯͲ͏͍͏͜ͱ ˣ ʮ"[VNBʯͱ͍͏ܕ Ϋϥε Λݩʹ ৽͍͠ΦϒδΣΫτ Πϯελϯε Λ࡞Δ Ϋϥεϕʔεͷଊ͑ํ
+BWB4DSJQUʮϓϩτλΠϓʯϕʔεͳͷʹɺ ʮΫϥεʯϕʔεͷଊ͑ํͰ͖Δෆࢥٞͳݴޠ
ʙΛͱʹͯ͠ਐΊΔ
プログラミングに、 興味を持ってもらえましたか?
ͬͱֶͼ͍ͨਓ͚ IUUQEPUJOTUBMMDPN
ͬͱֶͼ͍ͨਓ͚ νϡʔτϦΞϧ IUUQFODIBOUKTDPN 3FTPVSDFʹղઆ͋Γ ຊޠ
ͬͱֶͼ͍ͨਓ͚ IUUQMFBQOFU
ͬͱֶͼ͍ͨਓ͚ IUUQMFBQOFU
ͬͱֶͼ͍ͨਓ͚ IUUQXXXDPEFBDBEFNZDPN ӳޠ
今日学んだことは、 プログラミングにおける 「はじめの一歩」
プログラミングに関しては、 「はじめの一歩」を踏み出せない人のほうが 多いのです
実は、この講座と同じ内容を オトナの社会人向けにすでに教えています 「学生・社会人なんて関係ない!」 のがプログラミングの世界
プログラムを書いて、 面白いゲームを作ったら、 その後 どうすればいいの…?
まずは、今日作ったプログラムを 友達と共有してみよう 率直な意見を聞ける友達・先生は とても大切です!
「enchant.js」を使った ゲーム開発コンテスト 「9leap」
「9leap」に ぜひ投稿してみてください! 「優秀賞」「最優秀賞」に選ばれれば 最新ノートパソコンがもらえる & シリコンバレーに行けるチャンス!!
「9leap」本戦はちょっとハイレベルなので… 2013年・夏から高校生以下限定 「9leap youth」がスタートします。
2014年・夏には、 茨城で開催される全国総合文化祭で プログラミングが正式種目採用。 「9leap」本戦はちょっとハイレベルなので… 2013年・夏から高校生以下限定 「9leap youth」がスタートします。
2014年・夏には、 茨城で開催される全国総合文化祭で プログラミングが正式種目採用。
質疑応答