2017-01-01から1ヶ月間の記事一覧

任意の階層だけ繰り返しをネストする多重 map 的メソッド(Ruby)

Array#nest_loop で、Integer#times の多重ネスト版です。配列にループ回数を入れて呼び出します。わかり切った多重ループを書くのが面倒なときに役立ちます。ブロックが与えられなければ Enumertor を返します。 [4, 2, 3].nest_loop do |i, j, k| print "#…

GTK+で落書き 4(Ruby)

引き続き Gem 'oekaki' で落書きです。 oekaki | RubyGems.org | your community gem host GTK+でお絵かきしてみた(Ruby) - Camera Obscura Ruby コード。 require 'oekaki' include Math L = 300; O = L / 2 R = 140 step = 20 i = 0 Oekaki.app width: L…

GTK+ でぽちぽち遊び(Ruby)

キャンバス上でマウスクリックして下さい。ぽちぽち円が描かれます。 右クリックで終了ボタンが出ます。 Ruby コード。 require 'oekaki' L = 500; R = 25 Oekaki.app width: L, height: L do draw do color(0, 0, 0) rectangle(true, 0, 0, L, L) end quit_…

複素フィボナッチ数列と GTK+ お絵かき

GTK+でお絵かきしてみた(Ruby) - Camera Obscura これまで mygtk.rb と言っていた GTK+ お絵かきモジュールを、Gem 'oekaki' として RubyGems.org に登録いたしました。よろしかったら使ってやって下さい。 oekaki | RubyGems.org | your community gem ho…

Ruby Gem できた

野良 Gem の作り方(Ruby) - Camera Obscura 以前「野良 Gem」(「野良」なのは、僕が RubyGems.org に登録していないからです)を作ったのですが、いいかげんなやり方だったので、書き直してみます。gem 'mygtk' を作ってみます。git が必要なので、なけれ…

GitHub に SSH 接続

Linux Mint をクリーンインストールし直したので、GitHub との SSH 接続をやり直す必要に迫られました。以下メモ。 公開鍵の作成。 $ ssh-keygen -t rsa認証用のパスワードを二回入力する。次に GitHub にログインして、SSH Key の登録をする。 [Settings]→[…

Linux Mint 18(Ubuntu)で Irfan View を使う

Windows 用のフリーの画像ビューアーである「Irfan View」は、動作が軽快で使っている人も多いと思います。残念ながら Linux 版はないのですが、「Wine」を使って多少の工夫で Linux でも走らせることができます。Linux Mint 18 で確認しました。 まず、Linu…

Ruby 実行のエラー時に n 回リトライするメソッド

n.times_retry でブロック内をエラーがあれば最大 n 回再実行し、それを超えれば停止します。エラーがないかリトライに成功すれば、そのまま次へ処理が渡されます。引数の massage は true ならば情報を出力します(デフォルト true)。wait: n は retry の…

GTK+で落書き 3(Ruby)

周転円みたいな。 ライブラリ「MyGtk」についてはこちら。 require_relative 'mygtk' include Math L = 400 R1 = 150; R2 = (L - R1 * 2) / 2 - 5 STP1 = (PI / 180) * 0.5; STP2 = (PI / 180) * 10 MyGtk.app width: L, height: L do draw do color(5000, 0…

GTK+で落書き 2(Ruby)

MF / 今日の落書き Ruby/Tk で フィボナッチ配列(螺旋) ここのパクリです。 ライブラリ「MyGtk」についてはここを参照。 require_relative 'mygtk' include Math ANGLE = 2 * PI * (1 + sqrt(5)) / 2 MyGtk.app width:300, height: 300, title: :Fibonacci d…

ライフゲームの CoffeeScript 版

前回「コンウェイのライフゲーム」を Ruby でシンプルに実装しましたが、今回その CoffeeScript 版です。ここで実行できるのがいいでしょう? 「実行」を押すとセルがランダムに生成されます。セルの数: コード。HTML。 <form> セルの数:<input type="text" name="num" size="4" value="170"> <input type="button" value="実行" onclick="start(this.form)"> <input type="button" value="クリア" onclick="clear();"> </form>…

コンウェイのライフゲームを Ruby で実装してみた

有名な「コンウェイのライフゲーム」を素朴に実装してみました。一種の生態系シミュレーションですね。ルールは簡単です。「セル」が集まって長方形領域を形成しているとき、それぞれの「セル」はまわりの 8つの「セル」の状態によって「生きる」か「死ぬ」…

GTK+で落書き(Ruby)

GTK+ でアニメーションしてみました。エンターキーの入力で終了します。簡易ライブラリ mygtk.rb についてはここを参照してください。 circle_fall.rb require_relative 'mygtk' L = 400 MyGtk.app width: L, height: L, title: "Circle Fall" do timer(10) …

RubyGem 'Gosu'

Ruby の Gem で色いろ遊んでみたいと思うのだけれど、「gem おすすめ」などで検索しても Rails の Gem しか出てきません。誰かおもしろい Gem を教えてくれないですかね。だからというわけではないですが、ちょっと探してみたところ、ゲーム作成用の Gem で…

Linux Mint 18 (Ubuntu 16.04) でサスペンド復帰後にキー入力ができなくなる

現在自分の使っている PC は VAIO Fit 15E mk2 VJF1521 ですが、Linux Mint のサスペンド復帰後にキー入力が利かなくなるという不具合をずっと抱えていました。それを解決したのでやり方を記しておきます。自分がいま使っている OS は Linux Mint 18 ですが…