2010-01-01から1年間の記事一覧

子どもに10回クイズを出してみた

5歳になる娘に「10回クイズ」を出題してみたところ,全く引っかからない。 (・ω・) 「“ピザ”って10回言ってみて」 (*・∀・) 「ピザピザピザ…」 (・ω・) (肘を指しつつ)「ここは?」 (*・∀・) 「ひじ!」(即答) (・ω・) 「“みりん”って10回言ってみて」 (*・∀・…

麻雀の待ちを出力する の3

〜の2の続き。 wikipedia:七対子って同じ牌が4枚だとアガれないらしい。ので,七対子判定を修正。 # jong3.rb # check_mentu # 面子の組み合わせを生成 # hai : 残り牌の数(index==牌の種類) # comb: 現段階での面子 # mati : 現段階での待ち def check_ment…

麻雀の待ちを出力する の2

昨日の続き。 手牌のデータを,牌の種類配列で持つ先の形式から,牌ごとの数で表す形式に修正。"1112345678999"→[3,1,1,1,1,1,1,1,3]。これに,配列のインデックス=牌の種類となるようにインデックス0を,また番兵として末尾に二要素を追加して使用。あと,…

麻雀の待ちを出力する

「あなたのスキルで飯は食えるか? 史上最大のコーディングスキル判定」の問題に挑戦。 # jong.rb # Array拡張 class Array def count_if(val) self.select{|elm| elm == val }.size end end # check_mati(mati, comb) # 待ち牌の残り枚数チェック def check…

小町算

小町算を解くプログラム。とりあえず簡単に演算子は+−のみ。 # komachi1.rb # ops:演算子の配列 # ops[n]...数値nの前に付く演算子 ops[0]は未使用 # -1 : [-] # 0 : [なし](次の数字と続ける) # 1 : [+] ops = Array.new(10){-1} loop do str = '' r = t…

迷路を解く

「人材獲得作戦・4 試験問題ほか: 人生を書き換える者すらいた。」で出題されている問題を解いてみた。 maze = [] dist = [] sx, sy, gx, gy = nil,nil,nil,nil readlines.each_with_index do |l, y| next if l.chomp.empty? maze.push([]) dist.push([]) l…