if使わない…

解けたけど… こうしたかった

puts gets.to_i < 1200 ? "ABC" : "ARC"

明日はこれを解く…

B: A to Z String - AtCoder Beginner Contest 053 | AtCoder

たのしいRuby P184、エラー処理と例外のところ。ちゃんと写経する

markdownでtarget=“_blank"、下記参考にやってみた。一瞬

markdown記法でリンクをtarget=“_blank"にする - エンジニアをリングする

class << selfや特異メソッドのところ

よく混乱するから役に立ちそうなあとで読むリンクを並べてみる。

これは関係ないけど、読んでおいたほうがよさげ感

ソースコードの美醜

C: 風力観測 - AtCoder Beginner Contest 001 | AtCoder

if文の羅列しか思いつかず、カオスになった。

勉強になったコード

dirs = [
  "N", "NNE", "NE", "ENE", 
  "E", "ESE", "SE", "SSE",
  "S", "SSW", "SW", "WSW",
  "W", "WNW", "NW", "NNW",
]
 
ws = [3, 16, 34, 55, 80, 108, 139, 172, 208, 245, 285, 327, 1.0/0]
 
deg, dis = gets.split(" ").map(&:to_i)
 
v = (dis.to_f / 6).round
w = ws.find_index { |wl| wl > v }
dir = w == 0 ? "C" : dirs[((deg * 10 + 1125) / 2250) % 16]
 
puts "#{dir} #{w}"

まだ、ちゃんと分かっていないコード

gets=~/ /;puts (?C[w=[3,16,34,55,80,108,139,172,208,245,285,327,$$].index{|x|$'.to_i<x*6-3}]||%w[NNE NE ENE E ESE SE SSE S SSW SW WSW W WNW NW NNW N][($`.to_i-113)/225])+" #{w}"

人のコードなので、コピペしてだめだったら教えてください

Rubyでつくる人工無能(前半)

恋するプログラム―Rubyでつくる人工無脳 (プレミアムブックス版)

恋するプログラム―Rubyでつくる人工無脳 (プレミアムブックス版)

こんなの読んでる。オウム返しするプロンプト。写経してみた

class Responder
  def initialize(name)
    @name = name
  end

  def response(input)
    "#{input}ってなに"
  end

  def name
    @name
  end
end

class Unmo
  def initialize(name)
    @name = name
    @responder = Responder.new('What')
  end

  def dialogue(input)
    @responder.response(input)
  end

  def responder_name
    @responder.name
  end

  def name
    @name
  end
end

def prompt(unmo)
  unmo.name + ':' + unmo.responder_name + '> '
end

puts('Unmo System Prototype : proto')
proto = Unmo.new('proto')
while true
  print('> ')
  input = gets
  input.chomp!
  break if input == ''

  response = proto.dialogue(input)
  puts(prompt(proto) + response)
end

Effective Rubyを読む

Struct.newのところ。本質とはそれるが、どうすれば表示できるか悩み、強引にいれた

initializeのファイルネームに何を入れるべきなのか、イメージがついていない。

require 'csv'

class A
  Reading = Struct.new(:aaa, :bbb, :ccc)

  def initialize (fliename)
    @readings = []

    CSV.foreach("company.csv", headers: true) do |row|
      @readings << Reading.new(row[1], row[4], row[5])
    end
  end

  def out
    puts @readings
  end
end

i = A.new(1)
i.out