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) |
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 |
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] |
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 |
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 |
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 | |
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 | |
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 |
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"]] |
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