noanoa 日々の日記

micro:bit、Scratch、Minecraft @小学生向けプログラミング教室(三鷹)

Ruby

三鷹 Rubyくらぶ活動報告(非公式)2021.9.12

9/12に行われた、小中高校生がプログラミングを学ぶ「Rubyくらぶ」(三鷹)
の非公式活動報告です。続きを読む

夏休みRubyプログラミング講座(小中高生向け)が実施されました

IMG_3707

まちづくり三鷹が行う「夏休みRubyプログラミング講座」(小学生コース)、(中高生コース)が今年も行われました。

続きを読む

高専カンファレンス Ruby Hack Challenge に参加しました

Ruby本体(Rubyインタプリタ)をハックするイベント「高専カンファレンス Ruby Hack Challenge - Rails寺子屋特別編」に参加してきました。今回は高専生カンファレンス連動イベントだったのですが、自分は一般枠の社会人参加です。

IMG_2773
続きを読む

DXOpal;ブロック崩しdemo

ブロック崩しをDXOpal で書いてみた


DXOpal game


# DXRuby版 ブロック崩し
# http://blog.livedoor.jp/noanoa07/archives/2045851.html
# を DXOpal に移植
# Original;
# 2014-03-17 松江Ruby会議05に参加してきた - mirichiの日記
# http://d.hatena.ne.jp/mirichi/20140317/p1
# License: public domain

require 'dxopal'
include DXOpal

bar   =  Sprite.new(0, 460, Image.new(100,  20, C_WHITE))

walls = [Sprite.new(  0, 0, Image.new( 20, 480, C_BLUE)),
         Sprite.new(  0, 0, Image.new(640,  20, C_BLUE)),
         Sprite.new(620, 0, Image.new( 20, 480, C_BLUE)),
         bar]

ball  =  Sprite.new(300, 400, Image.new(20, 20).circle_fill(10, 10, 10, C_WHITE))
dx = 4
dy = -4

image = Image.new(58, 18, C_WHITE)
blocks = []
5.times do |y|
  10.times do |x|
    blocks << Sprite.new(21 + 60 * x , 21 + 20 * y, image)
  end
end

Window.load_resources do
  Window.loop do
    bar.x = Input.mouse_pos_x

    Sprite.draw(walls)

    ball.x += dx
    if ball === walls
      ball.x -= dx
      dx = -dx
    end

    col_x = ball.check(blocks).first
    if col_x
      col_x.vanish
      ball.x -= dx
      dx = -dx
    end

    ball.y += dy
    if ball === walls
      ball.y -= dy
      dy = -dy
    end

    col_y = ball.check(blocks).first
    if col_y
      col_y.vanish
      ball.y -= dy
      dy = -dy
    end

    ball.draw

    Sprite.draw(blocks)
  end
end


関連記事)
→・DXOpal;Rubyで書いたゲームがブラウザで動いた

 

DXOpal;Rubyで書いたゲームがブラウザで動いた

DXRuby で書いた Ruby のゲームプログラムが、ブラウザで実行できると知って試してみました。

とはいえ、DXOpal は DXRuby互換API ライブラリなので、そのまま動くという訳ではなくある程度の書き換えは必要です。
実際にやってみた記録を残しておきます。(実行環境;dxopal 1.0.0)

続きを読む

Ruby/GTK3を今時のGlade, XML, Builder, CSSで書く8 - 描画

Glade を使って、gtk3 で図形を描画します。(Gtk::DrawingAreaCairo::Contex
図形を描画するには、まず描画領域(DrawingArea)を配置し、その中で画像描画ライブラリcairo を使って図形を描画します。

続きを読む

Ruby/GTK3を今時のGlade, XML, Builder, CSSで書く7 - メニュー

Glade を使って、gtk3 で文字を入力するメニューを表示します。 
メニューにはメニューバー,ツールバー,ポップアップメニューがありますが、ここではメニュバー(Gtk::MenuBar)を取り上げます。続きを読む

Ruby/GTK3を今時のGlade, XML, Builder, CSSで書く6 - テキスト入力

Glade を使って、gtk3 で文字を入力するテキストボックス(Gtk::Entry)を表示します。続きを読む

Ruby/GTK3を今時のGlade, XML, Builder, CSSで書く5 - テキスト

Glade を使って、gtk3 でテキストを表示します。(Gtk::TextViewGtk::ScrolledWindow続きを読む

Ruby/GTK3を今時のGlade, XML, Builder, CSSで書く4 - 画像、アニメーション

Glade を使って、gtk3 で画像(Gtk::ImageGdk::Pixbuf)を配置し、周期的呼び出し(Gtk.timeout_add,GLib::Timeout)でアニメーションを表示します。

続きを読む

Ruby/GTK3を今時のGlade, XML, Builder, CSSで書く3- ボタン

Glade を使って、gtk3 でボタンを配置していきます。
 続きを読む

Ruby/GTK3を今時のGlade, XML, Builder, CSSで書く2- 部品の配置

Glade を使って、ウィンドウに GUIの部品(Widget;ウィジェット)を配置しいく方法を述べます。

続きを読む

Ruby/GTK3を今時のGlade, XML, Builder, CSSで書く1- 基本,ウィンドウ

いまどきのGTK+3 は、UI部分は Gladeを使ってXMLを書いて Gtk::Builderで読み込み、色指定などは CSSで指定するスタイルみたいです。そこで、以前書いた;
Ruby/GTK2,GTK3 プログラミング Tips 1〜9
をそのスタイルに書き換えていこうと思います。続きを読む

Ruby/GTK2,GTK3 プログラミング Tips(8)- 描画

(2017.11.14 追加記事;

gtk2,gtk3 で図形を描画します。(Gtk::DrawingAreaCairo::ContextGdk::Drawable続きを読む

Ruby/GTK2,GTK3 プログラミング Tips(7-2)- メニュー2

(2017.10.27 追加記事;
gtk2,gtk3 でメニューを表示する、今回は B. 手作業で作っていく方法を述べます。続きを読む

Ruby/GTK2,GTK3 プログラミング Tips(7-1)- メニュー1

(2017.10.27 追加記事;
gtk2,gtk3 でメニューを表示します。(Gtk::UIManagerGtk::MenuBar続きを読む

Ruby/GTK2,GTK3 プログラミング Tips(6)- テキスト入力

(2017.10.19 追加記事;
→・Ruby/GTK3を今時のGlade, XML, Builder, CSSで書く6 - テキスト入力


gtk2,gtk3 で文字を入力するテキストボックス(Gtk::Entry)を表示します。続きを読む

Ruby/GTK2,GTK3 プログラミング Tips(5)- テキスト

(2017.9.18 追加記事;
gtk2,gtk3 でテキストを表示します。(Gtk::TextView,Gtk::ScrolledWindow)続きを読む

Ruby/GTK2,GTK3 プログラミング Tips(4)- 画像、アニメーション


gtk2,gtk3 で 画像(Gtk::Image,Gdk::Pixbuf)や周期的呼び出し(Gtk.timeout_add,GLib::Timeout)でアニメーションを表示します。続きを読む

Ruby/GTK2,GTK3 プログラミング Tips(3)- ボタン

(2017.8.26 追加記事;
→・Ruby/GTK3を今時のGlade, XML, Builder, CSSで書く3- ボタン


gtk2,gtk3 で GUIの基本部品(Widget;ウィジェット)であるボタン(Gtk::Button)を作ります。続きを読む

Ruby/GTK2,GTK3 プログラミング Tips(2)- 部品の配置

(2017.8.25 追加記事;
gtk2,gtk3 で作ったウィンドウに GUIの部品(Widget;ウィジェット)を配置していきます。続きを読む

Ruby/GTK2,GTK3 プログラミング Tips(1)- 基本,ウィンドウ

(2017.8.13 追加記事;
→・Ruby/GTK3を今時のGlade, XML, Builder, CSSで書く1- 基本,ウィンドウ


Ruby で GUI を作るのに Ruby/GTK2,GTK3 を使おうと思いましたが、情報が少なくて苦労しました。
せっかくなので、まとめておきます。続きを読む

Ruby、Pythonでプログラミングできるロボットカーを探す

→ Pi2Go を購入しました

プログラミングして走るロボットカーでライントレースさせて DIP制御までやりたいと思っています。
 
それも、電子工作よりプログラミングを楽しみたいと思い、ハンダ付けしないキットや完成品をさがしてみました。

C言語でプログラミングするロボットカーは安価なものがいろいろありますが、Ruby や Python でプログラミングできるものはなかなかありません。あってもパソコンからWi-FiやBuletoothで無線制御するものが多く、それだとどうしても遅延が起こって DIP制御には向きません。

以下、検討したロボットです;
続きを読む

Minecraftで Rubyを使ってプログラミングして「ライフゲーム」を作ってみた

lifegeme


マインクラフトでRubyを使ってprogrammingしたサンプルの第2弾、ライフゲーム(Conway's Game of Life)を作ってみました。続きを読む

Minecraftで Rubyを使ってプログラミングして「ブロック崩し」を作ってみた

block_game

マインクラフトでRubyを使ってprogrammingしたサンプルってまだ少ないので、ブロック崩し(Breakout)を作ってみました。続きを読む

「チノクライシス」教えてもらった

さらに、今月の「U-18プログラミングくらぶ(Ruby三鷹教室)」で教えてもらったのが、
Sくんがデバッグの手伝いをしたという、

チノクライシス
 chi-know-crisis
           <img via baton8.com>

活躍してるね。


→・Rubyプログラミングコンテストに小3で入賞した作品「ワクワクworknote」
→・「ひよこれくと」見せてもらった
 

「ひよこれくと」見せてもらった

同じく、今月の「U-18プログラミングくらぶ(Ruby三鷹教室)」で見せてもらったのが、
Nくんの作った
ひよこれくと
 hiyocollect
     <img via play.google.com>

Javaで作ったそうです。
Android向けゲームなんで、自分では試せないのが残念。
(ただいまバージョンアップ準備中だそうです。)


→・Rubyプログラミングコンテストに小3で入賞した作品「ワクワクworknote」
→・「チノクライシス」教えてもらった

Rubyプログラミングコンテストに小3で入賞した作品「ワクワクworknote」

今月の「U-18プログラミングくらぶ(Ruby三鷹教室)」の会場で、
中高生国際Rubyプログラミングコンテスト in Mitaka2015
 で最年少の小学3年生で審査員特別賞をもらった二ノ方くんの作品「ワクワクworknote」
を本人から見せてもらいました。

Rubyを知ってから 1年もしないうちに作品を応募してしまうなんてすごいです。

その上、自分で HTMLを打って「ワクワクworknote」のホームページまで作ってしまったそうで、余計びっくり!(プログラムもダウンロードできます)

リンクしておきます
→・https://worknote.parseapp.com
worknote_web
     <img via worknote.parseapp.com>


追記)
他にも、見せてもらいました。
→・「ひよこれくと」見せてもらった
→・「チノクライシス」教えてもらった
 

Mindstorms EV3 を Ruby で動かす(ev3dev_ruby)

(2016.6.17 修正;
 ev3dev_ruby gem を公開したので一部書き換えました。)

LEGO Mindstorms EV3 に ev3dev という  Debian Linux ベースの OS を載せて、ev3dev_ruby gem を使って Ruby(CRuby)でプログラミングする方法をメモしておきます。

その他の、EV3RT という TOPPERS リアルタイムOS を載せて mruby で動かす方法についてはこちらを
→・Mindstorms EV3をmrubyで動かす方法(Macで環境構築編) - noanoa07 - Qiita
→・来年のETロボコンにmrubyで参加しようと思ってるひとへ(2015年版) - 
yamanekko -
Qiita
 
続きを読む

RubyMotion Starter(無料版)でFlappy Bird を動かす

flappy

RugyKaigi2015 で、RubyMotion に無料版が出たのと、motion-game というゲームライブラリで Flappy Bird が100行で書けてクロスプラットフォームで動く、というのを知りました。
そこで、実際に試してみたら色々とハマったので、その時のメモです。
続きを読む

Rubyで動かす戦車対戦ゲームをまとめてみた

Ruby で AIプログラムを組んで対戦するタンクゲームには、RRobots(Tk、Gosu)、RTanque(Gosu)、opal-robots(Opal)、 RubyRobots(Opal)、Rubyrobots(dRuby)などがあります。それぞれの特徴を比べてみました。
続きを読む

Ruby で Minecraft の mod を作る RubyCore が出た!

Minecraft の mod を作るには、普通 Java を使いますが、Ruby でもできるようにする RubyCore というものが 2015年8月に公開されていました。

→・RubyCore: Mods for minecraft using Ruby language - minecraftforum続きを読む

Minecraft プログラミング in Ruby

01

Minecraft で Rubyプログラミングを楽しむ情報をまとめてみました。

(2015.10.21 追加記事を書きました;
→・Ruby で Minecraft の mod を作る RubyCore が出た!) 続きを読む

Minecraft PC 版に Mod を入れてプログラミングを楽しむ方法

2.Minecraft PC 版に Mod を入れる
a)Raspberry Jam Mod、mcpiapi mod 
について今回は解説します。
続きを読む

Raspberry Pi の Minecraft Pi 版でプログラミングを楽しむ方法

前回の記事「Minecraft でプログラミングを楽しむ4つの方法」の
1.Raspberry Pi に入っている Minecraft Pi 版を使う
について今回は解説します。
続きを読む

Minecraft でプログラミングを楽しむ4つの方法

Minecraft

Minecraft の世界をプログラミング言語(Python、Ruby、Scratch 等)を使って操作することもできます。プログラムを組むことで、自動的にブロックを積んだり、プレーヤーを動かしたりできるのです。

そうすることで、Minecraft をより深く楽しんだり、プログラミング自体をより楽しむことができます。

それにはいくつかの方法があるので、まとめてみました。

(2015.10.21 追加記事を書きました。これで 5つになりました;
→・Ruby で Minecraft の mod を作る RubyCore が出た!続きを読む

「ブロック崩し」追加課題 1c);衝突判定の自作(色)

DXRuby の衝突判定を自作していきます。

今回は、色で判定します。

→・「ブロック崩し」の追加課題
続きを読む

「ブロック崩し」追加課題4;ブロック崩しを改良・発展させてみよう

block10_class_sprite_rev_04
今回作った「ブロック崩し」を改良・発展させてみましょう。

続きを読む

「ブロック崩し」追加課題3;クラス・オブジェクト指向を使ってみよう

block10_class_oo

今回作った「ブロック崩し」をクラス・オブジェクト指向を使って書き直してみましょう。

続きを読む

「ブロック崩し」追加課題2;なるべく基本命令だけで「ブロック崩し」を作ってみよう

今度は、DXRubyの便利な機能をなるべく使わず、プリミティブな基本機能だけで「ブロック崩し」を作り直してみましょう

(参照;
→・「ブロック崩し」の追加課題
→・「ブロック崩し」追加課題に向けて;コンピュータの世界の下側を見てみよう続きを読む

「ブロック崩し」追加課題に向けて;コンピュータの世界の下側を見てみよう

DXRuby や Ruby 自体は大変便利な命令・機能を持っているので、「ブロック崩し」をわずか60行足らずで作れてしまいました。


しかし、プログラミングの学習としては、便利機能に頼りすぎるのもどうなんだろうか?と思っていたら、こんな言葉を見つけてドキッとしました。

続きを読む

「ブロック崩し」追加課題 1b);衝突判定の自作(円)

DXRuby の衝突判定を自作していきます。

今回は、円の中心からの距離で判定します。

(→・「ブロック崩し」の追加課題
続きを読む

「ブロック崩し」追加課題 1a);衝突判定の自作(四角)

DXRuby の衝突判定を自作していきます。

今回は、四角の四隅の座標で判定します。
続きを読む

「ブロック崩し」追加課題1;衝突判定を自作してみよう

今回作った「ブロック崩し」では、衝突判定に DXRuby の === や check を使いました。
とても便利な機能ですが、自分で作るとしたらどうしたらよいでしょうか? 

判定方法を考えてみましょう。

(→・「ブロック崩し」の追加課題続きを読む

「ブロック崩し」の追加課題

前回作った「ブロック崩し」を発展させる追加課題を考えました。

(2015.7.28 記事を追加しました;
 →・「ブロック崩し」追加課題に向けて;コンピュータの世界の下側を見てみよう
続きを読む

DXRubyで 0から作る「ブロック崩し」

blocks10b
U-18プログラミングくらぶ(Ruby三鷹教室)」(2015.6.21)で行った、DXRubyで「0から作るブロック崩し」の個人的なまとめです。続きを読む

「MI100ロボットでライントレース大会(第2回)」のスライドを公開しました

Rubyで動かす MONOXITの無線ロボットMI100 でライントレース大会(第2回)をしたときに使ったスライドを公開しました。(前回のスライドは →こちら

U-18プログラミングくらぶ(Ruby三鷹教室)」(2015.2.15) での再編集版です。
続きを読む

「MI100ロボットでライントレース大会」のスライドを公開しました

Rubyで動かす MONOXITの無線ロボットMI100 でライントレース大会をしたときに使ったスライドを公開しました。

U-18プログラミングくらぶ(Ruby三鷹教室)」(2015.1.18) での再編集版です。
続きを読む

MI100 でライントレースをする設定(Windows編、Mac編)

(2015.2.18 追記;
バージョンアップに合わせて、記述を改めました。)

Rubyで動かす MONOXITの無線ロボットMI100 でライントレース大会をしてみました。
(「U-18プログラミングくらぶ(Ruby三鷹教室)」(2015.1.18、2.15)

その際の設定が結構大変だったので、まとめておきます。

参考)
→・「MI100ロボットでライントレース大会」のスライドを公開しました
→・「MI100ロボットでライントレース大会(第2回)」のスライドを公開しました )続きを読む

Ruby 2.2 を Homebrew の rbenv で Mac にインストールする手順

Ruby 2.2.0 がリリースされました。

rbenv でインストール時にこれまで付けていた openssl、readline の指定が必要なくなっていたので、自分用にメモを残しておきます。 続きを読む
プロフィール
薬剤師なのにコンピュータが好き、鍼灸マッサージ師なのにプログラミングが好き。小中高校生向けのプログラミング教材を作るのが現在の日課。micro:bit、Scratch、Minecraft、Rubyなどで作成中。 FIREして2019年に世界一周クルーズしました。














月別アーカイブ
カテゴリ別アーカイブ
記事検索