CoderDojo名古屋 子供のための無料プログラミング道場

【第44回例会終了報告】

日時:2017年9月10日(日)13:30~16:00
場所:あいちNPO交流プラザ 会議コーナー1・2

参加 : 11名
メンター&サポーター :宇津、今城さん、田口さん、佐藤さん、中京大学 加納先生、ちびっこメンターS君



今回から、スタジオ にニンジャの作品を登録するようにしました。
家に帰ってからでもじっくり他のニンジャの作品をみたり遊んだりすることが出来るようになりました。今回は 「CoderDojo Nagoya 44th, on 10th Sep. 2017」という名前です。
みなさん、上のリンクをクリックして、ぜひ他のニンジャの作品も遊んでみてください!



ちびっこメンターS君とN君のペア
ちょっとめずらしいペアでお願いしてみました。 f:id:CoderDojoNagoya:20171001170820j:plainテーマはS君得意のシューティングゲームです。
ボタンを押すと空間からビームの粒子みたいなものが 自機に集まってきて、ボタンを離すと発射します。 集まってくる粒子でも敵を倒せるので、バリア的にも 使えるのだとか!あいかわらずすごいクオリティです。
N君はすごく難しかった、と言っていましたが いい刺激になるといいなと思ってます(^ ^) f:id:CoderDojoNagoya:20171001170957j:plain



K君はソロで作品作成です
鳥が羽ばたくプログラムを作ってくれました。 f:id:CoderDojoNagoya:20171001170436j:plain
鳥の絵はもちろん手描き。 羽ばたく絵を5枚ほどアニメーションになるよう描きました。 Scratchのコスチュームを描く機能だけで よくここまで描くとみんな感心してます。 「カモ」と「ツル」の羽ばたく2つの作品でした。
f:id:CoderDojoNagoya:20171001170508j:plainf:id:CoderDojoNagoya:20171001170513j:plain
羽ばたく様子はインターネットで鳥の写真を参考にして描いたようですよ!



メンター今城さん
久しぶりの今城さんです。
f:id:CoderDojoNagoya:20171001165345j:plain
今日は一人でゴソゴソしているのでどうしたのかな?と思っていたら、 なんと、オトナニンジャとして、作品を作ってくれていました。 本日のテーマ「カミナリ」「ピカピカ」の二つを取り入れてくれていました。いつも上手にテーマを取り入れてくれていますよね!
f:id:CoderDojoNagoya:20171001165632j:plain
雲を移動させてボタンを押すと雷がおち、したにあるピアノの鍵盤に 当たると音が鳴る、とても面白い発想の作品でした!



K君とH君
ペアプログラミングでは、お互いの考えをよく聞いたり、自分の考えをきちんと説明をしたりすることが「面白い」作品作りにはとても大切です。 二人とも自分で作りたい気持ちがとても強かったので、意見がぶつかることもあります。
f:id:CoderDojoNagoya:20171001164447j:plain
ジャンプのプログラムにもそれぞれこだわりがあって、苦労していました。 f:id:CoderDojoNagoya:20171001164645j:plain
ジャンプのプログラムは奥が深く、いろいろ作り方もあって、作る人の個性も出ます。 作るととても面白い題材ですね。 そんな中でも、最後には何とか作品を仕上げてくれました!黄色いボールを左右に操作しながらジャンプして赤い壁を越えていきます。右端までたどり着くとどんどんステージが変わっていきます
f:id:CoderDojoNagoya:20171001165102j:plain



IちゃんHちゃん
恥ずかしがり屋のIちゃんといつもにこにこのHちゃん。
f:id:CoderDojoNagoya:20171001163325j:plain
うえからブロックが落ちてくるので、スイカを左右に操作してブロックをよけるゲームです。 f:id:CoderDojoNagoya:20171001163738j:plain
最初はなかなか意見も出しづらそうでしたが、 後半作品が形になってくると、Hちゃんの積極で明るい性格も手伝ってか 二人とも楽しそうにしてくれていました。
ブロックが下まで行ったら、左右の位置をランダムに決めてまた上から降ってくるやり方を覚えましたね



H君とメンター田口さんのペア
前回の続きの「ファンタジーゲーム」です。
f:id:CoderDojoNagoya:20171001163032j:plain
前回のプログラムを少し壊してしまったのか もう一度作り直しの部分が多かったようです。 同じようなプログラムでも何度も繰り返し作ると 身についてくると思うので、これからが楽しみですね



Y君とH君のペア
f:id:CoderDojoNagoya:20171001162117j:plain
イデアの方向性がなかなかまとまらず、何度か作品を作り替えていたようです。早めにテーマが固まるといいですね。最後はうまく作品として仕上げてくれました。
f:id:CoderDojoNagoya:20171001162524j:plain
赤と黄色のキャラクターを操作して迷路の中を通り抜けるゲームです。赤い壁にぶつかってはいけません。
途中、色々アイデアがあって作りかけていたものもたくさんあったので、 それらも見てみたいですね。



MちゃんとT君のペア
姉弟でのペアです。お家でも楽しんでやってくれてるそうです。
f:id:CoderDojoNagoya:20171001161932j:plain
作品はどれも手描き。カミナリさまもとても上手に描いてくれています。
f:id:CoderDojoNagoya:20171001161727j:plain
絵を描くのは結構時間がかかるんですが、短時間でこれだけ描けるなんてすごいですね。



記念撮影!
f:id:CoderDojoNagoya:20171001161304j:plain




また、次回Dojoで会いましょう!



記:宇津

【第43回例会終了報告】

日時:2017年8月20日(日)13:30~16:00
場所:あいちNPO交流プラザ 会議コーナー1・2

参加 : 7名
メンター&サポーター :宇津、土岐さん、竹中さん、中京大学加納先生



f:id:CoderDojoNagoya:20171008214614j:plain 今回は夏休みのためか、人数が少な目。CoderDojoを開催していて言うのもなんですが、せっかくの夏休みなので、家族で外へお出かけもいいと思います(^-^)僕もアウトドアとか好きですよ~。
今回は、3人組でのプログラミングとほかの子はソロ。CoderDojo名古屋としてはペアプロでないのは久しぶりです(^_^)



Y君
初参加のY君。初参加だけれども、お家では独学でいろいろ勉強しているようです。頼もしい!
f:id:CoderDojoNagoya:20171008215151j:plain 作品はストーリー性のある作品です。
リンゴが上から落ちてきて、岩にはさまります。f:id:CoderDojoNagoya:20171008215345j:plain
f:id:CoderDojoNagoya:20171008215413j:plain そうすると、魔法のじゅうたんが、次々仲間を呼んできて、 仲間が岩を少しずつ壊していきます。 f:id:CoderDojoNagoya:20171008215513j:plainf:id:CoderDojoNagoya:20171008215556j:plain f:id:CoderDojoNagoya:20171008215831j:plain f:id:CoderDojoNagoya:20171008215630j:plain f:id:CoderDojoNagoya:20171008215650j:plain 最後には、見事岩は割れてリンゴが取り出されます。 f:id:CoderDojoNagoya:20171008215720j:plain お題も盛り込んでいて、「ぺらぺら」で絨毯を、「ずっしり」で岩を登場させています。 それぞれのキャラクターがセリフをしゃべったり、岩に少しずつひびが入ったり、 割る時の効果もいろいろあり、とても面白いですね。 初参加とはとても思えない仕上がりです!また遊びに来て下さいね!



H君
3DモデリングツールBlenderに挑戦。
f:id:CoderDojoNagoya:20171008220045j:plain
f:id:CoderDojoNagoya:20171008220105j:plain
ダンボー(ニャンボー?)のような動物のキャラクターを作っていました。
ところが、事件発生!操作の途中で突然、これまで作っていたモデルが消えてしまったのだそうです。 これはショックですね。僕も仕事で一日かけて作っていた書類がソフトがフリーズして飛んでしまったことがあります。 ショックで呆然としてしまいますよね。
メンターもちょっと見てみましたがあまり使ったことないのでよくわからず。。。 ある操作をするといつもなるそうなので、解決できるといいのですが。。。



常連のK君
今回は2作品を発表してくれました。。おなじみ、鳥の図鑑、と 消しゴムの冒険 です。 f:id:CoderDojoNagoya:20171008220324j:plain
鳥の図鑑では、新しい種類の鳥の写真を追加してくれたようです。
f:id:CoderDojoNagoya:20171008220420j:plain
f:id:CoderDojoNagoya:20171008220426j:plain
写真は、自分で実物の写真を撮ってくることにこだわっています。



もう一つは、消しゴムの冒険。 横スクロールアクションゲームです。 今回は4人同時に遊べるよう4人プレイに対応してくれました。
f:id:CoderDojoNagoya:20171008220558j:plain
f:id:CoderDojoNagoya:20171008220627j:plain
制作時間には、ほかにもいろいろ作っていたようですけれど、非公開のようです(笑) またいろいろ見せて下さいね。



H君
Hくんの作品タイトルはファンタジーゲーム。
f:id:CoderDojoNagoya:20171008220750j:plain 幽霊や、コウモリ、魔王が出てきます。それぞれHPを持っていて、 騎士が触ると、HPが減っていき、0になったら倒せます。
f:id:CoderDojoNagoya:20171008220807j:plain 今回は魔王についてプログラムを作ってくれました。 魔王は、HPが0になると、地獄に落ちる(?)ように、画面の下へと 落ちていきます。ただ消えるだけじゃないアイデアがいいですね! 今回は変数を使ってHPを表現したり、それが0になったかどうか判定したり することを学んでくれたようですよ!



Nくん、Hくん、Iちゃんの3人組です。
f:id:CoderDojoNagoya:20171008221416j:plain 形がかくかくの魔王を勇者が魔王を倒してまるまるの魔王にするゲーム。
魔王に攻撃をされるとかくかくになってしまうのだとか。f:id:CoderDojoNagoya:20171008221648j:plain
魔王や勇者はすべて手描き。 絵も個性的だし、魔王の設定がまた個性的で楽しいですね。 魔王の攻撃は口から黒い液体(?)のようなものをだします。 f:id:CoderDojoNagoya:20171008221816j:plain もうすぐ出るぞ、というアクションまで用意されているのが芸が細かいですね。
f:id:CoderDojoNagoya:20171008221833j:plain 3人とも絵がとても上手で、設計図にはとてもたくさんのイラストを描いてくれていました。 作品には盛り込めなかったアイデアもいっぱいです。
魔王の動きは、乱数を使って1)左に動く、2)右に動く、3)攻撃をする、というロジックを うまく作ってくれました。
構想がいろいろあったので、攻撃が当たった後の処理などはまだこれからですが、 お家でも続きを作ってみてくださいね。できあがりが楽しみですね。



3人はほかにも、chibi:bit(チビビット)というマイコンボードを 紹介してくれました。 f:id:CoderDojoNagoya:20171008231826j:plain 25個のLED、加速度センサー、方位センサー、Bluetooth、明るさセンサー、ボタンスイッチ、 などなど、さまざまなセンサーを盛りだくさんで3~4000円程度で購入できるお買い得なボードです。 プログラムもパソコンでscratchのようにブロックを組み合わせて作れて、USBでプログラムを送ります。
f:id:CoderDojoNagoya:20171008222114j:plain
イギリスではmicro:bit(マイクロビット) という名前ですべての子供たちに配られるようですよ!
※なお、10/4現在ではmicro:bitが正式に日本で発売されて、chibi:bitは取り扱いがなくなったようです。
micro:bit~スイッチサイエンス

ボタンを押したらメッセージが表示されたり、 ボードを振ってプログラムを動かしたり、 方位を矢印で表示したり、 といろいろな作品を紹介してくれました。 CoderDojoでも楽しめるといいなと感じました。 紹介ありがとう!

記念撮影をパシャリ!
f:id:CoderDojoNagoya:20171008223816j:plain

またDojoで会いましょう!

【第40回例会終了報告】

日時:2017年7月2日(日)13:30~16:00
場所:あいちNPO交流プラザ 会議コーナー2・3

参加 : 18名
メンター&サポーター :宇津、中京大学 加納先生、ちびっこメンターS君、玉井さん、田口さん、竹中さん、土岐さん



今日はチャンピオンの僕(宇津)が少し発表をしました。試しに作ってみた電子工作です。(写真は別で撮影したもの) f:id:CoderDojoNagoya:20170902235225j:plain
光センサーを使って、明るいと5個あるLEDが全部消えて、どんどん暗くするとLEDが一つずつ点灯していくものです。
使った機材は、Raspbery PI3、光センサー、ADコンバーター、 LED 5個、あとは抵抗など。 制御するプログラム言語はPythonです。
ミソは光センサーのアナログ信号をデジタル信号に変えてプログラムで処理するところ。 光センサーで得られた明るさは電圧が大きい/小さいで表されています。 それをADコンバーターというチップがプログラムで処理できる数字に変化してくれます。 あとはみんなが良く知っている、もし数字が○○より大きければ△△する、というプログラムで LEDをいくつ点灯させるか変えるだけです。

f:id:CoderDojoNagoya:20170902235331j:plain
どこまで伝わったかわかりませんが、みんな興味津々。試しに光センサーを手で覆ったり、手を放したり。 みんなが興味を持ってくれれば、今後電子工作教室もやってみたいと思っています。

次の本を参考にしました。 内容は大人向けの文章で書いてありますが書いてある通りに作れば、簡単に作れます。 結構詳しく書いてあるので逆にわかりやすいかも? 電子工作初心者の僕でも簡単に作れました。ちなみに僕の電子工作レベルは中学校の技術家庭のレベルです(^^;
お父さん、お母さんと一緒にやってみてもいいかもしれませんね。

カラー図解 最新 Raspberry Piで学ぶ電子工作 作って動かしてしくみがわかる (ブルーバックス) 新書 – 金丸 隆志 (著)

パーツは一つ一つお店で購入するのは初心者には大変です。 違いがぜんぜん分かりませんでした(^^; なので、書籍の内容に対応したパーツセットを秋月電子から購入しました。 間違って違うパーツを購入することが無いので安心です。

Raspberry Piで学ぶ電子工作 パーツセット




さて、今回もペアプログラミングのお題を決めました。お題は、「三角」「ゆれる」「くち」。みんなからはこんなアイデアが出てきました。

  • 三角
    • ピラミッド
    • 正三角形
    • 豚の鼻
  • ゆれる
    • 地震
    • ブランコ
    • 風鈴
    • 口をプルプルさせる
  • くち
    • くちぶえ

毎回、面白いアイデアが出ますね。さあ、どんな作品に仕上がるでしょう。



チビッコメンターのS君です。
f:id:CoderDojoNagoya:20170902235620j:plain
S君は作品を2つ発表してくれました。1つはシューティングゲーム。 あいかわらず、敵や弾やら大量に飛び交い、えぐいゲームです(笑) S君はあっというまに、こんなゲームをつくって毎回感心します。
f:id:CoderDojoNagoya:20170903023240j:plain

こちらは遺伝的アルゴリズムを使って迷路を解くプログラムです。
f:id:CoderDojoNagoya:20170903000317j:plain
前回の加納先生の講義で遺伝的アルゴリズムを聞いて、一週間で作ってきてくれたのだとか!!会場一同驚きです。
迷路の中を車がランダムに進みます。最初はすぐに壁にぶつかってしまうのですが、何度もやり直しているうちにゴールにたどり着けるようになります。
迷路の画面をいくつも用意して、いろいろな迷路でゴールできるようになることを見せてくれました。


f:id:CoderDojoNagoya:20170903000441j:plain
どんなふうに迷路を進んでいくかをホワイトボードに説明してくれています。進み方をランダムに作って、 なるべく壁にぶつからずに進めた方法を残して、最終的にはゴールにたどりつける方法が残るのだそうです。



いつも元気なN君
f:id:CoderDojoNagoya:20170903000718j:plain 次々に右から飛んでくる大きな弾を主人公のキャラクターがよけるゲームです。
f:id:CoderDojoNagoya:20170903001052j:plain 大きいからよけるのが大変!弾はスプライトをコピーしてたくさん作ってくれましたね。
画面の左端に弾が到着したら消えるよう、画面の左端に緑の線を置くことでこれに触れたかどうかで判定をしてますね。 「画面の端に触れたら」という条件にすると、画面の上や下、右端でも当てはまってしまうので緑の線をつかいました。
うまくいきましたね!


Hくん
f:id:CoderDojoNagoya:20170903001359j:plain
シューティングゲームを作る予定でしたが、どうやら宇宙空間を宝箱が漂っています。 f:id:CoderDojoNagoya:20170903001742j:plain
マウスで猫を操作して、宝箱をゲットします。 星の絵もあるので、今後星をとるとなにか起きるプログラムも作れそうですね。 宝箱もいっぱい増やしたいそうです。作りたいことがいっぱいあって楽しみですね。


RくんとKくん
f:id:CoderDojoNagoya:20170903002130j:plain
シューティングゲームです。 f:id:CoderDojoNagoya:20170903002027j:plain 時間がたつにつれて月が満ち欠けします。これもお題の三角形からの発想だとか! 右と左、二つの飛行機が戦える2人プレイの作品です。 それぞれミサイルを発射します。 爆発の効果がいい感じで出てましたね!


EちゃんとAちゃん
f:id:CoderDojoNagoya:20170903002437j:plain
ペンを使っておにぎりを描くプログラムです。テーマの三角形を生かしてくれてますね。 ペンを使った作品は少ないので新鮮ですね。おにぎりを描いた後は、黒いスプライトで海苔をペタッと。 f:id:CoderDojoNagoya:20170903004154j:plainf:id:CoderDojoNagoya:20170903004157j:plain
三角形の最後の頂点の位置を合わせるのが難しいんじゃないかなと思います。 まわりの小さいおにぎりは、スプライトで描いてくれているようですね。


Hくん
f:id:CoderDojoNagoya:20170903004531j:plain
画面のボタンをクリック連打していくと、経験値のようなもの(Gold)が貯まってだんだんレベルアップしていきます。 f:id:CoderDojoNagoya:20170903004657j:plain
敵のHPのようなものは、今回も例によってとても大きくて作った本人も倒したことが無いのだとか(笑)H君はこういう細かなこだわりのゲームが多くて面白いですね。


Kくん
今日はとりの図鑑をつくるとのこと。でも、今日は発表はないみたい。彼の納得いくものじゃないと発表したくないのかもしれません。こだわり派ですね。また次の作品を楽しみにしていますね。


Mちゃんとお友達のMくん
f:id:CoderDojoNagoya:20170903010826j:plain
海に船がうかんでいます。背景には家をたくさん並べてくれましたね。 スペースキーを押すと弾を発射します。 f:id:CoderDojoNagoya:20170903011318j:plain
弾を発射するプログラムは、なかなか難しいんです。 初め隠している弾を発射位置に動かす。隠している状態から表示する。 相手に向けて動かす。画面の端についたら隠す。 などなど、いくつか手順を踏まないとうまく動かないんですが頑張って作ってくれましたね。


Yくん・Kくんペア
f:id:CoderDojoNagoya:20170903012106j:plain
制限時間までにボタン連打で(?)ピラミッドを登るゲーム。 f:id:CoderDojoNagoya:20170903012336j:plain 制限時間を制御するタイマーで苦戦しましたがうまく作ってくれました。 お題の三角形でピラミッドを取り入れてくれましたね。 時間内にたどり着かないと爆発します。 f:id:CoderDojoNagoya:20170903012515j:plain
この爆発音は自分たちの声で作ってます。一同大爆笑!


SくんとNくんの兄弟ペア
f:id:CoderDojoNagoya:20170903012929j:plain f:id:CoderDojoNagoya:20170903013040j:plain
兄弟で初参加です。scratchもほぼ初めてでした。緊張気味だったけど頑張って参加して作品を作ってくれましたね!
作品ではコウモリが3匹登場し、羽をバタバタしながら飛び回ります。ハトはキーボードで操作することが出来ます。 f:id:CoderDojoNagoya:20170903013222j:plain
コウモリの動きがなかなか雰囲気出てましたね。ぜひ、また遊びに来てくださいね!


IちゃんとAちゃん
f:id:CoderDojoNagoya:20170903013414j:plain
前から三角形の障害物が向かってくるのを、ジャンプして飛び越える作品を作ってくれました。 f:id:CoderDojoNagoya:20170903013544j:plain
ジャンプのプログラムは簡単そうでなかなか難しいんですがうまく作りましたね。
三角形に当たると、猫が「いたい」とつぶやくところがかわいいですね。 当たった回数も変数を使って、左上にカウントするようになっています。


NくんHくんペア
f:id:CoderDojoNagoya:20170903013936j:plain
街づくりゲーム。時間が経つと少しずつお金が貯まって、家を建てるのにお金を使えます。 f:id:CoderDojoNagoya:20170903014105j:plain
建てる家によって必要なお金の額が変わってくるんですって。うまいこと考えてくれていますね。
クローンをうまく使って家がだんだん増えていってますね。


僕(宇津)もひとつ発表をしました。
木の形をペンで描くプログラムです。
最初にレベルを入力します。 f:id:CoderDojoNagoya:20170903014829j:plain レベル1では枯れ木のような幹と枝しかない木ですが、
f:id:CoderDojoNagoya:20170903014715j:plain
レベル2にするとそれぞれの枝の位置に、レベル1と同じ形の木が描かれます。
f:id:CoderDojoNagoya:20170903015047j:plain
レベルをひとつあげていくと、同じ形の木がどんどん細かく描かれていきます。
レベル8では細かい枝がたくさん描かれて葉が生い茂った木のように見えますね。 f:id:CoderDojoNagoya:20170903015138j:plain
ロッコリのようにも見えるかな?
このように、ある形の一部分を切り取っても全体と同じような形であるものを 「フラクタル」と呼びます。
このような形は、自然の中にもたくさんあります。 ブロッコリーの仲間の「ロマネスコ」もそのひとつ。小さな一部をみても全体をみても同じような形が 繰り返されていて面白いですよね。

Wikipediaより ロマネスコ
f:id:CoderDojoNagoya:20170903015357j:plain:w450




集合写真
f:id:CoderDojoNagoya:20170903021820j:plain




それではまたDojoで会いましょう!

【第39回例会終了報告】特別講演 中京大学加納教授「ゲームで使われる人工知能」

日時:2017年6月25日(日)13:30~16:00
場所:あいちNPO交流プラザ 会議コーナー2・3

参加 : 17名
メンター&サポーター :中京大学 加納教授、宇津、田中さん、石川さん、玉井さん、ちびっこメンターS君、山岡さん、田口さん、岩田さん


今回は、スペシャルゲストとして、中京大学の加納教授に来ていただき、みんなに小さな授業をしてくれました。
テーマは「ゲームで使われる人工知能
f:id:CoderDojoNagoya:20170717101103j:plain f:id:CoderDojoNagoya:20170717104255j:plain f:id:CoderDojoNagoya:20170717102746j:plain


簡単なお話から最新の人工知能のとても高度な内容まで、分かりやすくとても楽しくお話してくれて素晴らしい授業でしたね。
もっとたくさんの人に聞いてもらいたいぐらいですが、今回は内容を簡単にかいつまんで紹介しますね。


ゲームでは敵がプレーヤーのキャラクターを倒そうと自動的に動きます。
それは敵の動きがプログラムされているためそのように動くのですが、加納先生は、みんなが大好きな横スクロールアクションゲームを例に、自分のキャラクターに知能があるようにプログラムするとどんなことができるのか紹介してくれました。
※イメージがわきやすいよう似たような感じのyoutube動画をリンクします。

Infinite Mario AI - Long Level by Robin Baumgarten



どう実現するか、のひとつとして「ルールベースシステム」を紹介してくれました。
f:id:CoderDojoNagoya:20170717104821j:plain 「もし○○なら××である」というルールで知識を表現する方法。
このルールをたくさん作ればかしこくなれる!
例として、お医者さん。
高熱で、頭痛があり、だるければ、インフルエンザ。
首が痛い、頭痛、だるい、ならば、扁桃炎。
頭痛、嘔吐、ならば、胃腸風邪。
などなど。


これを先ほどのゲームに利用すると、
主人公の1マス右に敵がいれば左に動く。
主人公の2マス右に敵がいればジャンプする。
主人公の1マス右が崖ならば、ジャンプする。
というルールが作れます。
f:id:CoderDojoNagoya:20170717111600j:plain


こんな簡単なルールをいくつか組み合わせただけで
うまくゲームをクリアするプログラムを紹介してくれました。
また、Scratchでも同じようなことをできることを見せてくれました。
僕たちが操作するよりもずっとうまく動いていて驚きましたね。




でも、これではプログラムを作る人が頭が良くないと、
キャラクターもかしこく動いてくれませんね。
先生は次に、どうやったら自動的にかしこく動くようにできるか、
その方法を紹介してくれました。


その一つが「遺伝的(いでんてき)アルゴリズム」。
生き物の進化(しんか)をまねして作る方法です。

f:id:CoderDojoNagoya:20170809003905j:plain
生きものの進化と生物多様性 -種の多様性・遺伝子の多様性 -生物多様性 - 環境省

多くの生き物は人間も含めてお父さんお母さんから生まれます。
そのとき、お父さんとお母さんに少しずつ似た子どもが生まれますね。
それは、お父さんとお母さんの特徴を遺伝子(いでんし)というものを使って
半分ずつもらって生まれてくるからです。
これをプログラムに応用します。


例えば、
f:id:CoderDojoNagoya:20170717122517j:plain
ランダムに戦い方の特徴を決めた「勇者」を複数作ります。
それぞれの「勇者」が「敵」と戦います。
そして、「敵」に勝った「勇者」だけが生き残ります。
生き残った「勇者」を二人づつ組み合わせて親とし、その特徴を半分ずつもらった子供を作ります。
その子供「勇者」たちが「敵」と戦います。
戦いに勝った「勇者」がまた子供を作り、、、と繰り返していくと
とても強い「勇者」が作れる、というわけです。



先生は、「勇者」のかわりに、迷路をクリアする車のプログラムを紹介してくれました。
Scratchのプログラムが公開されているのでぜひ試してみてください。

Car with a genetic algorithm https://scratch.mit.edu/projects/79331554/ by TheMinerMan44

f:id:CoderDojoNagoya:20170717123445j:plain

ランダムにいろいろな走り方をする車をたくさん用意します。
このうち、壁にぶつからずにできるだけゴール近くまで走った優秀な車を残します。
その優秀な車の走り方を組み合わせて、その走り方を受け継ぐ子供を作ります。
その子供の車を走らせ、優秀な車を残します。
これを次の世代と繰り返していくと、だんだん遠くまで走れる車が生まれてきます。
そして、最後にはゴールまでたどり着くことができる車が誕生します。



次に先生は、生き物が進化していく仕組みが最新の研究でどのように生かされているかというのを紹介してくれました。
名古屋大学のヨアキムチャック(Michał Joachimczak)先生の研究です。

Harnessing evolutionary creativity: evolving soft-bodied animats in simulated physical environments by Michał Joachimczak, Rishemjit Kaur, Reiji Suzuki, Takaya Arita, Graduate School of Information Science, Nagoya University

f:id:CoderDojoNagoya:20170717143249j:plain
たくさんの細胞のようなものがつながり、それぞれが筋肉のように伸び縮みします。
この細胞のようなものの動きを進化させるとあたかも動物が足や尾を使うかのように移動します。
水の中のような環境で進化させると、どうでしょう。
まるで魚のような動き方をします。
ところでオタマジャクシは成長するとカエルになります。
先ほどの水の中のような環境で進化した生き物を陸のような環境で体の形を変えられるよう進化させるとどうでしょう。
なんと、足のようなものが生えて歩けるようになりました!
では、豚やクリオネの絵を描き、その形に先ほどの細胞を埋めて陸や水の中で進化させたらどうなるでしょう。
それぞれ、歩いたり泳いだりするようになるのですが、本当の豚の筋肉のような部分が進化して動くようになっていることがわかります。
クリオネも同様でした。
是非、リンク先の動画を見てみてください。



さて、ここからは脳のお話です。
f:id:CoderDojoNagoya:20170718094436j:plain 人間は、46億年前の地球が誕生してから、進化するにつれていろいろな物事を伝える方法を手に入れてきました。

先生は大きく次の3つを教えてくれました。

種類 説明
遺伝子 お父さんお母さんから体の特徴を受け継ぐ
自分で体験したことを学んで考える
言葉 体験していないことでもあたかも体験したかのように知ることができる

人間は言葉を手に入れたことで地球の歴史の46億年のうちたったの5,000年で急速に進化を遂げたと考えられるかもしれません。
遺伝子の進化だけではちょっと時間がかかりそうですね。
先ほどは遺伝子の仕組みをまねた人工知能でしたが、こんどは脳の仕組みをまねたらどんなことができるのか紹介してくれました。



次の例は脳の仕組みをまねたプログラムでアニメのキャラクターを見分けるものです。

「ディープラーニングでおそ松さんの六つ子は見分けられるのか 〜実施編〜」bohemia日記 by ぼへみあ (id:bohemian916) 氏

f:id:CoderDojoNagoya:20170718103007p:plain それぞれのキャラクターは少しずつ顔の特徴が違うのですがプログラムにそれを学習させると違った場面でもだれがだれだか見分けられるのだそうです。
なかなか人間が見ても難しいですよね。



先生が最後に紹介してくれた研究は、穴の開いた写真をコンピューターが自動的に予想して穴があるところを描いてくれるプログラムです。

ディープネットワークによるシーンの大域的かつ局所的な整合性を考慮した画像補完 by 飯塚里志、シモセラ エドガー、石川博

たとえば、もとの画像がこちら。
f:id:CoderDojoNagoya:20170731191140j:plain
それをこのように画像に白く穴を空けたところを
f:id:CoderDojoNagoya:20170731190800j:plain
こんな風にコンピューターが学習した知識で穴を埋めてくれます。
f:id:CoderDojoNagoya:20170731190904j:plain
すごいですね。まるでこれがもともとの写真だったみたいです。

ほかには、柵の向こうに人がいる写真。 f:id:CoderDojoNagoya:20170731191911p:plain
人の部分を白く消すと、
f:id:CoderDojoNagoya:20170731192038p:plain
コンピューターが考えて、自然な感じで穴を埋めてくれます。
f:id:CoderDojoNagoya:20170731192457p:plain
まるで、初めから人はいなかったみたいですよね!すごい研究です。
詳しくは、上のリンクから論文の紹介ページに飛べます。その中に動画がありますのでぜひ見てみてください。


加納先生は、「皆さんもぜひプログラムを勉強して、こんな研究をしてみてください」と締めくくられました。

とても面白い研究をたくさん紹介してくれましたね。お話もとても分かりやすく説明してもらえたんじゃないかと思います。ゲームを作ったりすること以外にもプログラムでこんなことができるんだ、という気づきのきっかけになったらいいですね。是非、みなさんもたくさん勉強して面白いプログラムを作ってみてくださいね。


加納先生、素晴らしい授業をありがとうございました!!

今回は、長くなりましたので、みんなの活動の様子はお休みです。すいません(^_^;


恒例の集合写真
f:id:CoderDojoNagoya:20170731194522j:plain
また、Dojoで会いましょう!


記:宇津 義一

CoderDojo名古屋 中京大学加納教授講演 ~ ゲームの中で使われている人工知能

6/25(日)の CoderDojo名古屋 では、中京大学人工知能やロボットを研究している 加納教授が遊びに来てくれます。
普段の活動の間に、ゲームの中で使われている人工知能などのお話を 30分ぐらいして頂ける予定です。
子供向けにとても楽しく、わかりやすくお話ししてくれるのが得意な先生なのでとても楽しみですね。
皆さん、ふるってご参加ください。

■第39回CoderDojo名古屋
6/25(日) 13:30~16:00
ウィルあいち内 2F NPO交流プラザ
※定員枠について、メンターの数により追加する可能性があります。どうぞあきらめずキャンセル待ちでお申込みいただければと思います。

 

 

【第38回例会終了報告】

日時:2017年6月11日(日)13:30~16:00
場所:あいちNPO交流プラザ 会議コーナー2・3

参加 : 13名
メンター&サポーター :宇津、田中さん、西川さん、azennto君、石川さん、ちびっこメンターS君、玉井さん


今回は参加ニンジャも13人と多く、会議室も隣のスペースも借りて2倍の広さで行いました。
西川さん、石川さんは初参加です。新しいメンターが増えてくれるのはより多くのニンジャを受け入れられるようになってうれしいですね。お二人とも子供には慣れている様子で安心です。
学生のazennto君、S君もメンターとして参加です。学生のメンターがだんだん充実してきますね!


さて、今回も基本的に、ペアプログラミングで活動します。1人でじっくり取り組みたいニンジャは1人でプログラミングを行います。 f:id:CoderDojoNagoya:20170618232343j:plain まずは、ペアプログラミングの説明から。 ドライバーはプログラムを書く人、ナビゲーターはそのプログラムを横から見てプログラムがおかしくないか、もっといいアイデアがないかアドバイスする人。 ドライバーは作ろうとする小さな機能をナビゲーターに伝えます。2人の考えがうまく伝わらなかったりよくわからなかったらよく話し合おう。そうしたら、きっと面白いプログラムが出来上がるはず!


今日のお題は、「ぐるぐる」「ペン(scratchで絵を描く機能)」「数」。
みんなで思いつくままアイデアを出してもらいました。 このうち、どれか1つを使ってもいいし、3つとも使ってもいいし、1つも使わなくても大丈夫。 今日の作品のアイデアにつながるでしょうか。 f:id:CoderDojoNagoya:20170618232245j:plain 「数」から1度にたくさんの人の話を聞ける「聖徳太子」を思い浮かぶニンジャもいれば、「ネイピア数(自然対数の底)」を思いつく子もいて、 みんなの発想の広さに驚きます。


A君H君のペア。
ペンでお絵かきするものを作るのだとか。どんな作品に仕上がるかな。 f:id:CoderDojoNagoya:20170618232514j:plain いろいろ悩んでいるご様子。途中で方針変更もアリです。 f:id:CoderDojoNagoya:20170618232700j:plain 作品発表では二人なかよく発表してくれました。 f:id:CoderDojoNagoya:20170619020203j:plain できた作品は、宇宙空間を宝箱がただよいます。今は1つしか動かないけれど、この先は他の宝箱も動く予定です。猫も動かせるようになるかな?星や宝箱に触れるとどうなるのか楽しみですね。 f:id:CoderDojoNagoya:20170619020228j:plain


S君とN君。
S君はお題の「数」を使った作品! N君は格闘もの! 2人の創作性の違いから今回は別々に作ることになりました(笑) f:id:CoderDojoNagoya:20170618232534j:plain f:id:CoderDojoNagoya:20170714145233j:plain

S君はScratch Catが足し算、引き算、掛け算、割り算の問題を出すので、それを人が答えるプログラム。 f:id:CoderDojoNagoya:20170619004131j:plain f:id:CoderDojoNagoya:20170619004610j:plain 計算の問題はだんだん難しくなります。メンターが「乱数を使うと毎回違った問題を作れるよ」と言うと、「だんだん難しくしたいからこのままの問題の順番がいい」のだとか。こだわりです。余計なお世話でした(^^;)

N君はキャラクターを動かしながらビームを発射するプログラムを作ってくれました。 f:id:CoderDojoNagoya:20170619004740j:plain f:id:CoderDojoNagoya:20170619004837j:plain 玉をキャラクターから発射するのはなかなか奥が深いです。メンターと一緒にフローチャートを考えながら作ってくれました。移動も矢印キーを押しっぱなしにした時に入力待ちでかくかく動くのが嫌で滑らかに動かすことにとてもこだわっていました。 f:id:CoderDojoNagoya:20170619004924j:plain


こちらは、RちゃんMちゃん初参加のMちゃんのお友達3人組。 f:id:CoderDojoNagoya:20170618232628j:plain f:id:CoderDojoNagoya:20170618232554j:plain 3人のアイデアを紙に書いてまとめます。さすが上級生! f:id:CoderDojoNagoya:20170618232544j:plain聖徳太子」「スーパーマリオ」「シューティングゲーム」が一つになったものだとか。どうなるの? 人数が多いとアイデアをまとめるのも大変です。3人のアイデアはうまくまとまるんでしょうか。 f:id:CoderDojoNagoya:20170619005154j:plain 相談も真剣です。「聖徳太子は難しい!」ってことで横から近づいてくる敵に弾を当てるプログラムを作ってくれました。 f:id:CoderDojoNagoya:20170619005402j:plain 途中、「弾が当たったのに敵が消えない。なんで?!」という場面もありました。
どうやら弾と敵両方に「当たり判定」を作ったので、敵の当たり判定が動く前に弾の当たり判定が動いて弾が先に消えてしまっていたようです。弾の当たり判定処理から敵を消す「メッセージ」を送ることで解決しました。やったね!
初参加のMちゃんも楽しんでくれたようです。よかった!「ニャリオン!」


H君とチビッコメンターのS君。
H君はいつもこだわりのプログラムを、S君はハイレベルなプログラムを書く二人組。 初めはそれぞれ1人で作るつもりだったけれどアイデアが一致したのか、以前二人で作った敵を次々と倒していく「無双」系のゲームの続きを作ります。完成度がさらに高くなるんでしょうか。 f:id:CoderDojoNagoya:20170618232640j:plain 発表の様子です。 f:id:CoderDojoNagoya:20170619010348j:plain どうやら前回のプログラムを改造し、一つ敵を倒すとその「爆風」で近くの敵も次々倒せるようにしたようです。爽快! 前回は、うっかりしているとあっという間に敵に囲まれてしまっていたけど、うまくゲームらしく工夫しましたね。 f:id:CoderDojoNagoya:20170619010413j:plain ボスはとても強いので、海に落とすと楽なのだとか!!ゲーム性があります!


こちらはEちゃんAちゃんペア。
落ちてくる「ぐるぐる」をキャッチするゲームを作るそうです。初参加からどんどんレベルを上げていく二人。どんな仕上がりになるのでしょうか。 f:id:CoderDojoNagoya:20170618232650j:plain 発表の様子。 f:id:CoderDojoNagoya:20170714145235j:plain 写真ではわかりませんが、船が画面横からなんと前後に揺れながら移動してきます。波に乗っている感じがよく出ています。芸が細かくていいですね。 f:id:CoderDojoNagoya:20170619010841j:plain 船が来るタイミングを狙ってぐるぐるを落とします。船に当たると得点プラス。当たらずに海まで落ちると得点マイナス。作っている最中、船に当たったのになぜか得点が増えない!ことがありました。どうやら、船に当たってプラスした後、落ち続けて海まで落ちてマイナスしていたことに気づきました。うまく解決できましたね!


K君とK君
お得意のスーパーマリオのようなアクションゲーム。 こちらも二人で作る予定が。。。? f:id:CoderDojoNagoya:20170618232710j:plain

f:id:CoderDojoNagoya:20170619012217j:plain それぞれ独自路線で行くようです(笑)

K君は予定通り横スクロールアクションゲームを作ってくれました。 f:id:CoderDojoNagoya:20170717162102j:plain なかなかスーパーマリオのようなアクションゲームに仕上がりました。
クリア画面も用意されています。 f:id:CoderDojoNagoya:20170619012821j:plain

もう一方のK君は前回発表の続き、とりのずかん f:id:CoderDojoNagoya:20170619014431j:plain f:id:CoderDojoNagoya:20170619014441j:plain f:id:CoderDojoNagoya:20170619014237j:plain 新しい鳥の写真も増えていました。全部自分で撮影したらしいですよ!
「撮影が難しいのは?」との質問には「すずめはじっとしてくれないから難しい」のだとか。動物園の鳥よりも野生の鳥のほうが難しいようです(笑)


K君とメンターのazennto君。
f:id:CoderDojoNagoya:20170618232720j:plain K君はまだ参加間もないけれどすっかり楽しんでくれている様子。azennto君はCoderDojo天白でメンターをしていましたが、日程の都合などからCodoerDojo名古屋のほうにも来てくれるようになりました。
ぐるぐると並んだ玉をそろえると消えるパズルゲームを作るようです。なんだか難しそう。
f:id:CoderDojoNagoya:20170618232808j:plain いろいろ試行錯誤して作ってくれたようです。 f:id:CoderDojoNagoya:20170619015146j:plain f:id:CoderDojoNagoya:20170619014921j:plain 黒いものが迷路の中のようなものをぐるぐる動いていくのを見せてくれました。これがどんな色の玉に触れたかで、どんな玉が並んでいるのかを判定しようとしていたのだとか。完成はしていないそうですが、見た目よりもずっと難しいことをしようとしていたようです。azennto君のアイデアかな?K君ついてこれたかな?!


それではまた次回CoderDojo名古屋で会いましょう!


募金額:4,000円 ありがとうございました。


記:CoderDojo名古屋チャンピオン 宇津 義一

【第37回例会終了報告】

日時:2017年5月21日(日)13:30~16:00
場所:あいちNPO交流プラザ 会議コーナー3

参加 : 10名
メンター&サポーター :宇津、ちびっこメンターS君、田中さん、玉井さん、中垣内さん、土岐さん




今回のお題は「きらきら」「点」「燃える」の3つ。みんなで思いつくままにアイデアを出し合って、こんなものが出てきました。

f:id:CoderDojoNagoya:20170524211937j:plain

きらきら
  星、かがやく、川

  名前の点、天
燃える
  敵を打った時に燃える、火、炎耐性、ローソク


お題は作品に取り入れてもいいし取り入れなくてもOK。さあ、みんなどんな作品に仕上がるんでしょうか!
今日何を作ろうかアイデアがでなくて困ってしまわないように、とお題を出していますが、みんな自由に言い合えるので雰囲気が良くなって楽しい空気ができるきっかけになっているような気がします。


K君とHちゃんペア。
今回はベテランK君とビギナーHちゃんのペアです。珍しいペアです。面白いものが出来上がるといいですね。
f:id:CoderDojoNagoya:20170524211909j:plain 相談した結果は、地上から空に飛んでいる宇宙人をミサイルで倒すゲームです。
コンセプトやアイデアはHちゃんですね。プログラムはK君のアドバイスで進めたようです。
f:id:CoderDojoNagoya:20170524212037j:plain なんと宇宙人のデザインは絵が得意なK君の手書きキャラ!愛嬌のあるキャラクターで面白いですよね!コマネチしながら飛んでます(笑)動画でお見せできないのが残念。
発表では面白いキャラクターにみんな大爆笑でした! f:id:CoderDojoNagoya:20170524212031j:plain


K君は個人でも作品発表をしてくれます
f:id:CoderDojoNagoya:20170524212056j:plain 作品は、とりのずかん。
f:id:CoderDojoNagoya:20170524212057j:plain f:id:CoderDojoNagoya:20170524212102j:plain f:id:CoderDojoNagoya:20170524212103j:plain 写真はすべて自分で撮影。K君は絵が好きだし、鳥も大好き。ただならぬ鳥への愛着を感じます(笑)


他にも、二つの消しゴムが冒険する横スクロールアクションゲームも発表してくれました。消しゴムや鉛筆、定規など登場します。デザインはもちろんK君の手書きです。
f:id:CoderDojoNagoya:20170524212126j:plain f:id:CoderDojoNagoya:20170524212129j:plain
鳥がいもむしをついばみながら進む横スクロールアクションゲームも発表してくれました。たくさん作品がありますね!
f:id:CoderDojoNagoya:20170524212151j:plain



RちゃんMちゃんのペア
f:id:CoderDojoNagoya:20170717155400j:plain f:id:CoderDojoNagoya:20170524204535j:plain とても真剣な表情でとりくんでます。
f:id:CoderDojoNagoya:20170711170303j:plain まだ初参加から数回目ですがとても上手に発表してくれる二人です。
作品は、海の中を魚やカニなどが泳ぎます。猫を操作して魚などにタッチするとその生き物に応じて「octopus」や「crab」などと名前を教えてくれます。 f:id:CoderDojoNagoya:20170524204628j:plain 魚などの泳ぐ速さを少し変えたりと工夫をしてくれましたね。



こちらはA君H君のペア。
f:id:CoderDojoNagoya:20170711171146j:plain メンターと一生懸命考えて作ります。
f:id:CoderDojoNagoya:20170524211906j:plain f:id:CoderDojoNagoya:20170524204559j:plain テーマは、シューティングゲーム。左の杖のようなものから緑色のビームが出て、右側の宇宙船を打ちます。
弾を打つプログラムはよくあるんですが、意外と難しい。自分のキャラクターから発射、弾を移動させる、画面の端で消える、キーを押すと自分のキャラクターの位置に弾を配置する、表示する、といろいろ処理を書かないといけません。
頑張って発射できるところまで完成しました! f:id:CoderDojoNagoya:20170524204601j:plain 発表中もインタビューまでしてくれました(笑)


いつも元気いっぱいのN君と上級生のK君のペアです。
f:id:CoderDojoNagoya:20170524204618j:plain メインのアイデアはN君。上級生のK君はそのアイデアをうまくプログラムにしてくれていました。
作品はN君が好きなキャラもの。 f:id:CoderDojoNagoya:20170524204613j:plain キャラクターを矢印キーで動かして、ボタンで光線を発射します。
構想では自分のHPが少なくなったら光線をうって敵を倒すというのもありました
f:id:CoderDojoNagoya:20170524204615j:plain 発表も二人で楽しそうにしてくれました。




こちらも上級生のY君とこだわり派のS君のペア
f:id:CoderDojoNagoya:20170711171927j:plain 年の差ペアではうまいこと上級生がサポートをしてくれていいですね。 f:id:CoderDojoNagoya:20170711171835j:plain 作品は、海にたくさんの魚が泳いでいるところを、サメを操作して魚を食べるプログラム
f:id:CoderDojoNagoya:20170524212001j:plain キーを押すとサメが口を開けます。これだけたくさん魚が泳いでいるとアクアリウムみたいですね。
まだ魚を食べるところまでは完成していませんが、食べた数で得点を増やしたりするアイデアを持っているそうです。
f:id:CoderDojoNagoya:20170524212029j:plain f:id:CoderDojoNagoya:20170524212030j:plain Y君の妹さんも机の下から応援してくれています!



集合写真をパシャリ
f:id:CoderDojoNagoya:20170711172247j:plain よく撮り忘れるので、終わりそうだったらぜひ「集合写真~!」と声をかけてください(笑)


みんなの楽しんでいる姿をみてメンターみんなも嬉しいです。またDojoで会いましょう!


5000円の募金を頂きました。ありがとうございます。


記録:宇津 義一