{{ message }}

Instantly share code, notes, and snippets.

# obelisk68

Last active May 27, 2021

View sudoku_solver.rb
 module Sudoku Rows = 9.times.map {|i| (i * 9).upto(i * 9 + 8).to_a } Cors = 9.times.map {|i| i.step(80, 9).to_a } make = ->(i) {[i,i+1,i+2,i+9,i+10,i+11,i+18,i+19,i+20]} Blocks = [0,3,6,27,30,33,54,57,60].map(&make)
Last active Jan 24, 2021

View sokoban_solver.rb
 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]
Last active Oct 23, 2020
StarTrek Game (Ruby)
View startrek.rb
 require "curses" class StarTrek class DisplayIO Width = Curses.cols UpperH = 10 def initialize Curses.init_screen Curses.noraw
Last active May 4, 2020

View liar_another.rb
 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
Last active Apr 27, 2020
AOJ 0192: Multistory Parking Lot
View aoj_0192.rb
 class Car num = 1 define_method(:initialize) do |wait_time:| @num = num num += 1 @wait_time = wait_time end attr_reader :num, :wait_time
Last active Dec 29, 2019
findコマンドのGUI化
View file_search
Last active Nov 14, 2019
Gray_Scott を Gtk でアニメーション表示
View gray_scott_gtk.rb
 require 'numo/narray' require 'gtk3' include Numo SPACE_GRID_SIZE = 256 VISUALIZATION_STEP = 8 Dx = 0.01 Du = 2e-5 Dv = 1e-5
Last active Aug 12, 2020
Ruby2D を使ったテトリス
View tetris_for_Ruby2D.rb
 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"]]
Created Feb 14, 2019
「最短ヌクレオチド連鎖問題」焼きなまし法
View simulated_annealing.rb
 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
Last active May 27, 2019

View operations_parser.rb
 def parse(text) splited = text.scan(/[0-9\.]+|\+|\-|\*|\/|\(|\)|=/) output = [] stack = [] a = nil until (token = splited.shift) == "=" case token when "(" then stack << token when ")"