Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Minecraft Pi Editionをハックしてみよう

3,583 views

Published on

OSC2014 Tokyo/Fall懇親会にて発表。

Published in: Engineering
  • Be the first to comment

Minecraft Pi Editionをハックしてみよう

  1. 1.    お ば ん で す |\     ___    /‾/  | \ _ / ́՞ ՞`\ /  / |    |   し  |   / \__(    ਊ   }_/     \_____/      ||   //      m   m
  2. 2. 飲んでるか!
  3. 3. 私からは 小ネタを 少々……
  4. 4. Minecra* Pi Edi.onを ハックしてみよう Ejectコマンドユーザー会 あっきぃ ( id:Akkieso* ) 2014/10/18 OSC2014 Tokyo/Fall
  5. 5. 自己紹介 • あっきぃ です • 1988年(昭和63年)生まれ • 北海道根室市出身(日本最東端の駅の近く) • 渋谷で仮想化エンジニアしてます • @Akkieso* – フォロー非推奨(ツイート量多い) – 学生は特に非推奨(学業に専念しろ) – Ejectに絡めて謎メンションされるとキレます
  6. 6. イカらないで♡  くコ:彡 • むり♡つらい♡ 私「久しぶりに鉄道模型楽しい」 ??「Ejectですか?!」
  7. 7.   ☝         ՞  _人人人人人_  > (     ) <  ☞   ̄Y^Y^YY^Y^Y ̄  ՞       ਊ
  8. 8. クソリプはつらいよ • 有名税で片付けるの辛すぎィッ!! • SNS疲れを起こしてフォロワーを700人くらいブ ロック・ブロック解除した – 再フォローはOKですが前述のお約束を守っても らえると幸い • クソリプについては議論が各所起きているよ うなのでみんなが幸せになれるコミュニケー ション環境になるといいですね
  9. 9. 愚痴ってしまって 失礼いたしました (◞‸◟)
  10. 10. Ejectコマンドユーザー会とは • CD-­‐ROMドライブのトレイ開閉を利用して • トレイに色んなことをさせる工作を作り • リモートやタイマー等で実行することで • QoLの向上を試みるユーザーの集いです • 主にオープンソースカンファレンスで活動 • 公式サイトは Eject で検索 • Google Groupsへの入会お待ちしています • 現在55名強(ML参加人数)
  11. 11. トレイに色んなことをさせる工作 • ハムスターにエサをあげる • エアコンの電源を操作する • AC電源を操作する • 除夜の鐘をつく – 去年もやりました
  12. 12. 本題
  13. 13. Minecra* Pi Edi.onとは • Raspberry Pi向けのマイクラ(直球) • PC版の普通のマイクラから機能を削ったサブ セット版のようなもの • Pythonスクリプトでワールド内の情報を取得 したり操作したりできる
  14. 14. なぜマイクラがハックできるのか • Raspberry Piは子どもたちの教育のために作 られているので、教育のためのドキュメントも 作られている • 楽しみながらプログラミングを学ぶために、 Minecra*が用意されている
  15. 15. マイクラのドキュメント • hZp://www.raspberrypi.org/learning/ge]ng-­‐ started-­‐with-­‐minecra*-­‐pi/ • インストール(現在はバンドルされている)、実 行、Pythonスクリプトを使ったハックについて 解説されている
  16. 16. わたしもつくってみた
  17. 17. なんこれ • CD-­‐ROMドライブ型の ハウスがある • CD-­‐ROMドライブハウ スのEjectボタンを押 すと、リアルのCD-­‐ROMドライブがEjectする
  18. 18. ソースコード • サンプルに 手を入れた • 程度 import os from mcpi import minecra* mc = minecra*.Minecra*.create() try: while True: #Get the block hit events blockHits = mc.events.pollBlockHits() # if a block has been hit if blockHits: # for each block that has been hit for blockHit in blockHits: # do something with the block px = blockHit.pos.x py = blockHit.pos.y pz = blockHit.pos.z if px == 80 and py == 8 and pz == -­‐29 : mc.postToChat("UIIIN") os.system('eject -­‐T /dev/sr0') except KeyboardInterrupt: print("nnStopped.n") exit()
  19. 19. まとめ • Raspberry Piは本体だけじゃなく、教育もセット のプロジェクト • Minecra*楽しい✌('ω'✌ )三✌('ω')✌三 ( ✌'ω')✌
  20. 20. おわり♡

×