ウルファールのサンプルゲーム with DTC のトラップ付き宝箱開け。 パーティーはよほどのことがない限りウディター組に固定する。開き直って道具袋を前後の二人に装備させている。 ドラゴンスレイヤーも入手しておく。この戦闘で生命の水を使わされた感がある。 そろそろ門番を倒して先に進まないとレベルが上がり過ぎてしまう。エディがもう 60 近い。

0:40 寒いから寝る。明け方に近づくにつれて暖かくなってくる。

8:10 起床。洗濯機を回しながら朝食を済またり PC をかばんに収納したりする。 洗濯物を干して 8:40 外出。途中コンビニで雑誌チェックを入れたかったが、目ぼしいものがもうない。

9:05 八広図書館。朝刊(東京)を読んで館内にこっそり入る。奥のキャレルに着席。

12:00 朝刊(産経)を読みかけて退館。イトーヨーカドーに寄ってから曳舟の部屋に戻る。 PC を戻しておやつ休憩。ファイル整理。

14:10 終わった途端睡魔に襲われる。16:10 まで昼寝。

外出。スカイツリータウンでトイレと書店。目当ての雑誌がないのですぐに出る。 バス停から太平四丁目に移動。そういえば靴下に穴が空くようになったので補充したい。

17:00 ローソンストア 100 墨田太平店。330 円。

  • 紳士ビジネスソックスリブ (3)

17:05 タイトー F ステーションオリナス錦糸町店。

MJ 幻球乱舞東風チップルール。8 クレくらい。トータルで大負け。 とにかく普通に打っているつもりだが、リーチの失敗率がえらく高い。うまくいったのは二回くらい。 ドラ九筒と五八萬の待ちでリーチした局は印象的だ。前者は出アガリが期待できないが、 上家の河をよく見たら流し満貫狙いだ。まさかと思ったら、あと二巡というところで本当に手出しでドラ九筒が出た。

合計スコア -143.5
平均スコア -13.05

平均順位 2.91 着
トップ 2 回
二着 1 回
三着 4 回
ラス 4 回

アガリ率 9.43% (5)
アガリ飜平均 3.00
アガリ巡目平均 10.20 巡
振り込み率 13.21% (7)

気分転換にビートマニア。ARENA モードをプレイするといきなり B2 からスタート。当然ボコボコにされる。

19:50 カスミオリナス錦糸町店。クーポン使用で 400 円。

  • 中華弁当(豚レバ、ニンニクの芽、エビマヨ、菜の花干しエビ)
  • ブラックチョコ
  • ライス

20:15 ビッグエー墨田業平店。322 円。

  • 絹豆腐
  • ウィンナードーナツ
  • チョコチップメロンパン
  • ポテコうましお
  • 小粒納豆 (3)

20:30 曳舟の部屋に戻る。バイト先から郵便物あり。備品点検のチラシがワンサカ。これらを掲示・投函しろだと。 こういうタスクもあるのか。

PC に戻って帳簿と日記。冷奴から晩飯に移行。麻雀の練習。 激遅テザリングでインターネットをチェック。

晩飯が遅かったのと Bash の学習で時間が押したので 22:30 にようやく入浴開始。23:05 出る。

23:35 Bash 4.0 の新機能を一通りチェックし終わる。気になるのは mapfile だ。 テキストファイルの各行をコマンドの引数にしたかったことが何度もある。そのときどう対処したか憶えていない。 command < (cat filename) だろうか。

残り時間、就寝までウルファールのサンプルゲーム with DTC の探索。 経験値ボーナスの戦闘をウディター組ですべて片付ける。

Bash Note

バージョン 4.x で追加された新機能のメモが途中だった。

  • coproc

    coproc [coprocess_name] { statement* }
    
    • 最初の例ではメイン処理から read -u ${COPROC[0]} line で名前なし coprocess から入力を読み取り変数 line に代入する。つまり {COPROC[0]} は 0 番目の coprocess の file descriptor を意味する。
    • coprocess はサブシェルなので PID を有する。
    • スクリプト末端の kill $COPROC_PID が機能しない。
    • 次の例では coprocess とメイン部分とで変数のスコープが異なることが納得できる。
    • 最後の例では名前付き coprocess を使っている。その名前でその file descriptor を得られる。
    • 非同期に実行されるものなので、別の処理が coprocess と通信を終了する前に当該 coprocess が停止することがある。 困ったことに最後の例の修正案がよく理解できない。
  • mapfile
    • この組み込みコマンドはループやコマンド置換を用いずにテキストファイルの内容を配列にロードすることができる。
    • mapfile array < filename のように記述する。ファイル filename の内容の各行が配列要素となる。
    • 解説と異なり、array=( $(cat filename) ) との違いがある。各単語が配列要素となる。
    • そして read -a array < filename とも異なる。こちらは最初の一行だけを単語ごとに配列要素に代入する。
  • read
    • オプション -t timeout は小数値を受け入れる。
    • オプション -i text は編集バッファーのプリロードを許容する。 つまり、読み取る値の既定値を text とすると言っている。
    • ただしこれらのオプションはまだ使いやすくはない。
  • パラメーター置換に大文字小文字変換が実装された。変数 var を英単語が値であるものとすると、
    • ${var^}: 先頭の一文字を大文字に置換する。
    • ${var^^}: すべての文字を大文字に置換する。
    • ${var,}: 先頭の一文字を小文字に置換する。
    • ${var,,}: すべての文字を小文字に置換する。
  • declare
    • オプション -l は変数を小文字からなる単語であることを保証する。
    • オプション -c は変数を capitalize されている単語であることを保証する。
  • 中括弧展開演算子がさらに発展
    • ステップ値の指定ができるようになった。例えば {40..60..2}, {60..40..2} のようにする。 このようにステップ値の符号は省略できる。
    • やる人はいないと思うが {X..d..2} なども許される。
    • ゼロ詰め。{010..15} とすると 010 011 012 013 014 015 に展開される。
  • 位置パラメーターのスライスのインデックスが 0 始まりに変更。
  • ワイルドカード ** 追加。再帰的にマッチする。
    • shopt -s globstar が必要。
  • 内部変数 BASHPID 追加。
  • command_not_found_handle
    • 存在しないコマンドを実行するとこの名前の関数が呼び出される。 ユーザーがこの関数を定義することができると解釈してもよい。

バージョン 4.0 は以上。次は 4.1 から。