Instantly share code, notes, and snippets.

View rubysdl_tetris.rb
# Gem 'rubysdl' に付属しているサンプルを modify したものです
require 'sdl'
class Object
def deep_clone
Marshal::load(Marshal.dump(self))
end
end
class Pattern
View μSchemeR_debug.rb
parameters = [:factorial]
args = [[:lambda, [:n], [:if, [:<, :n, 1], 1, [:*, :n, [:factorial, [:-, :n, 1]]]]]]
body = [:factorial, 4]
ext_env = [{:factorial=>:dummy},
{:+ =>[:prim, #<Proc:0x000055a6a4665a80@μSchemeR1.rb:24 (lambda)>],
:- =>[:prim, #<Proc:0x000055a6a4665a30@μSchemeR1.rb:25 (lambda)>],
:* =>[:prim, #<Proc:0x000055a6a46659e0@μSchemeR1.rb:26 (lambda)>],
:/ =>[:prim, #<Proc:0x000055a6a4665990@μSchemeR1.rb:27 (lambda)>],
:> =>[:prim, #<Proc:0x000055a6a4665940@μSchemeR1.rb:28 (lambda)>],
View gtk_sample2c.rb
require 'gtk2'
class GUI < Gtk::Window
Meth = [:wanwan, :nya]
def initialize(&bk)
super("GUI")
set_width_request(200)
box = Gtk::VBox.new
View 3d_maze_generate.rb
class CubeMaze
class Wall
def initialize(x, y, h, ob)
@wall = Array.new(h + 1) {Array.new(y) {Array.new(x, 1)}}
@x, @y = x, y
@cube = ob
end
attr_reader :wall
def break(num, n)
View oekaki_sample19a.rb
require 'oekaki'
Oekaki.app width: 500, height: 500 do
draw { clear(color(0x1694, 0x3447, 0x8d60)) }
t = Oekaki::Turtle.new
t.color(0xfe5f, 0xaa9a, 0x212a)
ln = 10
e = Enumerator.new do |y|
View prime_table.rb
def prime_table(n)
return [] if n < 2
return [2] if n == 2
table = [2, 3]
i, step = 5, 2
while i <= n
guard = Math.sqrt(i).to_i
table.each do |prime|
break if (i % prime).zero?
if prime > guard
View blackjack.rb
deck = nil
shuffle = ->{
print "カードをシャッフルします\n\n"
deck = []
4.times do |i|
1.upto(13) {|j| deck << i * 100 + j}
end
deck.shuffle!
View linuxmint_backup.rb
require 'fileutils'
class String
def cut
/.+tomoki\/(.+)$/.match(self)[1]
end
end
def get_file_names(f)
dirs = Dir.glob("*")
View lifegame_for_RubyPico.rb
class LifeGame
W, H = 124, 38
def initialize(n)
@field = new_field
scatter(n)
end
def set_cell(x, y)
@field[y + 1][x + 1] = 1
end
View calender.rb
#for RubyPico (mruby)
#mrubyには String#center がないので適当に実装
class String
def center(n)
i = (n - length).div(2)
" " * i + self + " " * (n - i - length)
end
end