ãã®è¨äºã¯ãはてなエンジニア Advent Calendar 2017 ã®19æ¥ç®ã®è¨äºã§ãã
æ¨æ¥ã®è¨äºã¯, id:papix ã®ï½¢「雑に文章を書く」活動と, そこから得たもの - Masteriesï½£ã§ãã.
åã«ã¯ä»ãå°6ã¨å°4ã¨äºäººã®åã©ããããã®ã§ããã2å¹´ã»ã©åããåã©ããã¡ã« Scratch ã使ã£ã¦ããã°ã©ãã³ã°ãæãã¦ãã¾ããããããå¾ãç¥è¦ãªã©ãæ¸ãã¦ã¿ã¾ããï¼æè¿ã¯ãµãã£ã¦ãã®ã§ããããåã©ããã¡ãï¼
Scratch ã¨ã¯
説æãä¸è¦ãªãããæåã«ãªã£ã¦ã¾ãããScratchã¨ã¯ãMITã¡ãã£ã¢ã©ããéçºãã¦ããåã©ãåãã®ãã¸ã¥ã¢ã«ããã°ã©ãã³ã°è¨èªã§ããã¢ã©ã³ã»ã±ã¤ã®ã¹ã¯ã¤ã¼ã¯ããã¼ã¹ã«éçºããã¦ãã¾ãã
ãããã¯ã®ããã«å½ä»¤ãçµã¿åããã¦ãã¦ã¹ã§ããã°ã©ãã³ã°ã§ãããã¦ã¹ã ãã§ãç°¡åãªããã°ã©ã ã¯ä½ããã®ã§å
ç«¥ã«ããã°ã©ã ã®åºæ¬æ¦å¿µãæããã®ã«ããï¼ã¨ããã¦ããï¼ã
Scratch 2.0 ã¯Flashãã¬ã¼ã¤ã¼ãæè¼ãããã©ã¦ã¶ã ãã§åãã®ã§ãä»ããããªããããã°ã©ãã³ã°ã§ãã¾ãããã®è¨äºã®ä¸ã«ãåãããã°ã©ã ãå¹¾ã¤ãåãè¾¼ãã§ããã®ã§æ¯é試ãã¦ã¿ã¦ãã ããã
ãªãåã©ãã«ããã°ã©ãã³ã°ãæããã
義åæè²ã§ããã°ã©ãã³ã°ãå¿ é ææ¥ã ã¨ããAI社ä¼ã«åãã¦ãã¨ãè²ã è¨ããã¦ãã¾ããããå²ã¨ã©ãã§ãããã¦ãåã¯åã©ãã¨å ±éè¨èªãã§ãããèªåã®ãã£ã¦ããä»äºãåã©ãã«ç解ãã¦ãããããã¨ããã®ã大ããã¨æãã¦ãã¾ãã
æã家ã§ã®å°å ¥
ããã°ã©ãã³ã°ã¹ã¯ã¼ã«ã®ä½é¨ä¼ã«åå
Scratchèªä½ã¯ã¨ã³ã¸ãã¢ãªã触ãã°å¤§ä½ãããã¨æãã¾ãããåã©ãã«ã©ããããã³ã·ã§ã³ãã«ãªãã¥ã©ã ã§æããã®ãããä½é¨ããããã«ãç¡æä½é¨ä¼ã«åå ãã¦ã¿ã¾ããã
PC触ãã®ãåãã¦ã®åã©ãã対象ã«ãã¦ããã®ã§ããããããããããããã¹ããåçµããã ãã®ç°¡åãªãã®ã§ããããåã©ããç±ä¸ããã§ãããã®ãèªåã§ä½ãä¸ãããã®ã¨ãã¦èªãããã«ãã¦ããæ§ãå°è±¡çã§ããã
æ¸ç±ã®è³¼å ¥
åã©ããèªããããã¹ããè³¼å ¥ãã¾ãããæããããã¹ãã¨ãã¦ãã¾ãèªåã®ç解ã®ããã«ãããç¨åº¦é²ãã ããæ¬ãä¸ããã¨èªåã§åæã«ããã°ã©ã ãä½ããæ¬ãçºå±ããã¦èªåã§ä½ããããã®ãèããããã«ãªãã¨ããã§ããã
é¿é¨å çã®æ¬ãã¢ã©ã³ã»ã±ã¤ã®ã¡ãã»ã¼ã¸ãè¼ã£ã¦ã¦ã°ãã¨ãã¾ããScratch1.4ãã¼ã¹ã§ããæåã«èªã¾ããæ¬ã¨ãã¦ã¯ãã¹ãã§ã¯ã2åç®ãScratch2.0ãã¼ã¹ã«ãªã£ã¦ããã2åç®ã¨ãã¦é«åº¦åããå 容ããã®2åã¯æåã«è²·ãæ¬ã¨ãã¦ããããã§ãããã®ä»ã®æ¸ç±ã®ç´¹ä»
ï¼æã家ã§ã¯ï¼åã©ãåãã¯ã¤ãã¤ãã ã£ããã®ã®ãé¢ç½ãã£ãæ¬ãç´¹ä»ãã¾ã
ã´ã©ã¼ããã³ã®æ¬ãååScratchãå¾åPythonã¨ããæ§æãScratchã§å¦ãã§æç¶ãåããã°ã©ãã³ã°ã£ã¦ãPythonã§ãä¸ç·ã ããã¨ãã主æ¨ã ãã©åã©ãã¯ã¿ã¤ãã³ã°ã§ããªãã¦è©°ãããã¡ãã¯ããå°ãé«åº¦ãªå 容ãä¸åããã¦ã·ã¥ã¼ãã£ã³ã°ã²ã¼ã ãä½ããåºæ¬ï½å¿ç¨åç´ãããã¾ã§ãå¦ã¹ããScratch ã§ã¢ã«ã´ãªãºã ãå¦ã¹ããç·å½¢æ¢ç´¢ã¨ãã½ã¼ãã®ã¢ã«ã´ãªãºã ãScratchã§å¦ã¹ããèªåã¯é¢ç½ãèªãã ãã©ãåã©ãã«èªã¾ããã®ã¯å°ãå ããªãdo it yourself
æ¬ã§åºç¤ãå¦ãã§ããªãã¨ãªããä½ã§ãã§ãããæãæãã¦ããã£ããããã¨ã¯å¥½ãã«ä½ãããã¨ããã§ãããé³ãé³´ããããããã«ã¡ã©ã使ãããããScratchã§ã§ãããã¨ã«éçãæãããããã£ã¨é«ç´ãªè¨èªãå¦ã°ããªãããããã£ã¯ã¹ã«ãããªããã©ã£ã¡ã«è¡ã£ã¦ã楽ããã§ãï¼ï¼åã©ãã親ãï¼ããã°ã©ãã³ã°æè²æé«ã
ãã£ã¦ã¿ã
åç½®ããé·ããªãã¾ããããScratchããã°ã©ãã³ã°ã®ä¾ã¨ã㦠fizzbazz ãæ¸ãã¦ã¿ã¾ãããã
https://scratch.mit.edu/projects/194480042/#editor
Perl ãªããããªæãã§ãã
my $i = 1; my $serif = ''; while (1) { $serif = $i . '! '; if ($i % 15 == 0) { $serif = $serif . 'fizzbuzz'; } elsif ($i % 3 == 0) { $serif = $serif . 'fizz'; } elsif ($i % 5 == 0) { $serif = $serif . 'buzz'; } print $serif . "\n"; sleep(1); $i++; }
ä¸ç·ããããã¨ãããã¨ã§ãåã©ãã«æç¶ãåããã°ã©ãã³ã°ãæããã®ã« Scratch ã¯æåã®ä¸æ©ã«è¯ããªã¨æã£ã¦ãã¾ãã
ã¨ã«ããããã¦ã¹ï¼ãã©ãã¯ãããï¼ã®æä½ããæããã°ããã¼ãã¼ããã»ã¼è§¦ããã«ããã°ã©ãã³ã°ãçµããã®ã¯ç»æçã§ãåå
¥éå£ãä½ãã§ãã
ã¡ãã»ã¼ã¸ã³ã°
Scratch ã®åºæ¬ã¯æç¶ãåããã°ã©ãã³ã°ã§ãããã¹ãã©ã¤ãã®ã¯ãã¼ã³ã§ãªãã¸ã§ã¯ããä½ãããï¼ï¼ã¡ãã£ã¨éãï¼
ããã¦è¤æ°ã®ã¹ãã©ã¤ãã¨ãã®éã®ã¡ãã»ã¼ã¸éä¿¡ãã§ãããï¼ï¼ãã ãããã¼ããã£ã¹ãã®ã¿ï¼
ãªããã¯ã¹
GitHubã®ã½ã¼ã·ã£ã«ã³ã¼ãã£ã³ã°ãç´ æ´ãããã§ããï¼Scratchã§ãã½ã¼ã·ã£ã«ã³ã¼ãã£ã³ã°ã§ããï¼
ã¯ãªã¨ã¤ãã£ãã»ã³ã¢ã³ãºã®ç¶æ¿ã©ã¤ã»ã³ã¹ã§å
¬éããªããã¯ã¹ãã§ãã¾ãããªããã¯ã¹ããªã¼ã¨ãããã¥ã¼ãããããã¸ã¥ã¢ã©ã¤ãºããã¾ããä»ã®äººã®ä½ã£ãããã°ã©ã ã«èªç±ã«æ¹å¤ãå ãã¦çºè¡¨ã§ãããããããã«ã¨ãã循ç°ãçã¾ãã¾ãã
èªåã®ä½ã£ãããã°ã©ãã³ã°ãå
¬éã§ãã¦ãã³ã¡ã³ããããããããforkãã¦æ°ããããã°ã©ã ãçã¾ããã¨ããä½é¨ããã¼ãã£ã¼ã³ã§ã§ããã®ã¯ãããï¼åãå®éã³ã¡ã³ããããã£ããforkããããã¨ãããã¾ããããã¡ãã£ã¨æåãããã¾ããã
- ãªããã¯ã¹ã®ä¾ï¼ã¹ã¿ã¼ã¦ã©ã¼ãº
- https://scratch.mit.edu/projects/2694407/remixtree/
- æåãã ã®3Dã¹ã¯ãã¼ã«ãã¢ã ã£ãã®ã«ããªããã¯ã¹ã§ã·ã¥ã¼ãã£ã³ã°ã²ã¼ã ã«ãªã£ã¦ã¦ããã
ãããããã£ã¦ã¿ã
ã¨ããããã§ãScratch ã楽ããã®ã§ãåå¼·ãã¦ãèªåã§ã Scratch ããã°ãå§ãã¦ã¿ã¾ããã
ã¾ã è¨äºæ°ã¯å°ãªãã§ããæè¿æ´æ°ãæ»ã£ã¦ãã¾ãããèå³ããæ¹ã¯æ¯éèªãã§ããã ããã°ã¨æãã¾ãã
oniscratch.hatenablog.com
ããããè¨äº
- 複数のクローンされたスプライト同士のあたり判定 - 大西Scratch日記
- ç°¡åãªã·ã¥ã¼ãã£ã³ã°ã²ã¼ã ãä½ã£ã¦ãè¤æ°ã®ã¯ãã¼ã³ãããã¹ãã©ã¤ãå士ã®å½ããå¤å®ãèãã¾ãã
- 変数のスコープ - 大西Scratch日記
- ã¯ãã¼ã³ã«ãããå¤æ°ã®ã¹ã³ã¼ãã«ã¤ãã¦èª¿ã¹ã¾ãã
- Scratchでタイピング練習ソフト - 大西Scratch日記
- Scratchããæ¬æ ¼çãªããã°ã©ãã³ã°è¨èªã«ç§»è¡ããããã«ã¯ã¿ã¤ãã³ã°ãæããªãã¨ï¼ã¨ããããã§ä½ãã¾ãã
- Scratchã«ã¯ãæ¼ããããã¼ã³ã¼ããåå¾ããããã¨ãã§ããªãã®ã§ã26åå²ããããããã³ã¼ãã«ãªã£ã¦ã¾ãããç¬è¦§ãã ãã
- ゼルダが楽しいので草を燃やすプログラムを書いた - 大西Scratch日記
- ã¼ã«ãã«ã¯ã¾ã£ã¦ããã°ã©ãã³ã°ãããªããªã£ãåã©ãã®æ°ãå¼ãããã«ä½ã£ããã¤ã§ã
ãã®ä»ãããããã£ã¦ã¾ãï¼è¦ã¦ãã ããï¼ï¼ã¢ããã¤ã¹ãã ããï¼
Scratch ã®çºå±ã»ä»å¾
Scratch2MCPI
ã¿ããªå¤§å¥½ããã¤ã³ã¯ã©ããã§ããã°ã©ãã³ã°ãåå¼·ãããï¼ã©ãºãã¤ã§ Mincraft Pi ãåããã¦ãScratch ã§ããã°ã©ãã³ã°ã§ãã¾ãï¼åã©ãã®èå³ãå¼ããèªä½PCï¼ã©ãºãã¤ï¼ãããã¤ã¯ã©ããScratchãã§å®å ¨åå©ã§ãã
Scratch 3.0
Flashã§åä½ãã¦ãã Scratch ã HTML5, WebGL ã¨ãã£ãæ¨æºåæè¡ã§ä½¿ããããã«ãªããï¼
Appendix
æè²
- http://techkidscamp.jp/
- åã©ãåãã®ããã°ã©ãã³ã°è¬åº§ããã£ã³ãã¨ã¹ã¯ã¼ã«ãã£ã¦ã
- ææã®ä¸é¨ãå ¬éãã¦ãã http://techkidscamp.jp/scratch/
- ホーム - 京都クリエイティブワークショップ
- è¦ããã¨ãã人ããã£ã¦ã
ãµã¤ããªã©
- http://www.kodomonokagaku.com/magazine/programming/
- åä¾ã®ç§å¦ã«ããææãããã Tech Kids ç£ä¿®
- 【旧版】Scratch 1.4入門 (全15回) - プログラミングならドットインストール
- ãããã¤ã³ã¹ãã¼ã«ã®Scratchè¬åº§
- スクラッチ(Scratch)とは
- ææã®PDFãå ¬éãã¦ãã
- 第1回 オブジェクト指向プログラミング | 日経クロステック(xTECH)
- Scratch 㧠OOP ã¨ã並åå¦çãåæ£ããã°ã©ãã³ã°ãªã©ãå¦ã¶ï¼ããã¢ãã¯ã§ããã
- Scratch普及のリーダー・阿部和広さんインタビュー 前編 | Device Plus - デバプラ
- é¿é¨å çã®ã¤ã³ã¿ãã¥ã¼
æå¾ã«
é§ã足ã«ãªãã¾ããããããã°ã©ãã³ã°ã¯æ¥½ããã§ãããããããåã©ãã«æããã®ãã¾ã楽ãããæªæ¥ã®æ¥æ¬ã®ããã«ãæãåã®æªæ¥ã®ããã«ãèªå·±æºè¶³ã®ããã«ãåã©ãã¨ã®å¯¾è©±ã®ããã«ãããã°ã©ãã³ã°ãæãã¾ãããï¼
ããªãã®ç¥è¦ãæãã¦ãã ããï¼