View union_find1.rb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#簡素版 | |
class UnionFind | |
def initialize(size) | |
@rank = Array.new(size, 0) | |
@parent = Array.new(size, &:itself) | |
end | |
def unite(x, y) | |
x = root(x) |
View another_sudoku_solver.rb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
module Sudoku | |
Size = 81 | |
Length = 9 | |
INDEXS = [0, 3, 6, 27, 30, 33, 54, 57, 60] | |
.map { |i| [i, i+1, i+2, i+9, i+10, i+ 11, i+18, i+19, i+20] } | |
class CertainMap | |
def initialize(ary) | |
@field = ary |
View sokoban_solver.rb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
module Sokoban | |
Pos = Struct.new(:x, :y) do | |
def dirs | |
[Pos.new(x + 1, y), Pos.new(x, y - 1), | |
Pos.new(x - 1, y), Pos.new(x, y + 1)] | |
end | |
def inspect = "<#{x},#{y}>" | |
def over_there(e) = Pos.new(2 * e.x - x, 2 * e.y - y) | |
def <=>(a) = [x, y] <=> [a.x, a.y] |
View startrek.rb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require "curses" | |
class StarTrek | |
class DisplayIO | |
Width = Curses.cols | |
UpperH = 10 | |
def initialize | |
Curses.init_screen | |
Curses.noraw |
View liar_another.rb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
imp = ->(p, q) {!p || q} | |
eqv = ->(p, q) {!(!p ^ !q)} | |
def output(say, cond) | |
trans = ->(ary) {"[#{ary.map {|f| f ? "T" : "F"}.join(" ")}]"} | |
puts [trans.(say), trans.(cond)].join(" ") | |
end | |
cond = Array.new(5) | |
result = (1 << 5) - 1 |
View aoj_0192.rb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Car | |
num = 1 | |
define_method(:initialize) do |wait_time:| | |
@num = num | |
num += 1 | |
@wait_time = wait_time | |
end | |
attr_reader :num, :wait_time | |
View file_search
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env ruby | |
require "gtk2" | |
class GUI < Gtk::Window | |
def initialize | |
super("File Search") | |
set_width_request(400) | |
set_resizable(false) | |
@file_name = Dir.pwd | |
View gray_scott_gtk.rb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'numo/narray' | |
require 'gtk3' | |
include Numo | |
SPACE_GRID_SIZE = 256 | |
VISUALIZATION_STEP = 8 | |
Dx = 0.01 | |
Du = 2e-5 | |
Dv = 1e-5 |
View tetris_for_Ruby2D.rb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require "ruby2d" | |
include Ruby2D::DSL | |
Wait = 18 | |
class Tetromino | |
def initialize | |
@pat = Array.new(4) | |
pats = [["1111"], ["11", "11"], ["011", "110"], ["110", "011"], | |
["100", "111"], ["001", "111"], ["010", "111"]] |
View simulated_annealing.rb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def dist(a, b) | |
case | |
when a[1, 2] == b[0, 2] then 1 | |
when a[-1] == b[0] then 2 | |
else 3 | |
end | |
end | |
L = 64 | |
start_t = 171 |
NewerOlder