AA 折れ線グラフクイズ 7


いろいろな言語の解答を拝見。 辞書(連想配列)に入れておいて、あとでスキャンする…という、シンプルかつオーソドックスな方法の存在に気づきませなんだ…。orz

| series data yy yys |

series := 'RCRFCRFFCCRFFRRCRRCCFRFRFF'.

data := Dictionary new.
yy := 1.

series doWithIndex: [:code :xx |
   code caseOf: {
      [$R] -> [data at: xx @ yy put: $/. yy := yy - 1].
      [$F] -> [data at: xx @ (yy := yy + 1) put: $\].
      [$C] -> [data at: xx @ yy put: $_]}].

yys := data keys collect: [:each | each y].

World findATranscript: nil.

(yys min to: yys max) do: [:rr |
   Transcript cr.
   Transcript show: (((1 to: series size) collect: [:cc |
       data at: cc @ rr ifAbsent: [Character space]]) as: String)]


id:sumim:20060408:p1 に続く。