bouzuya.hatenablog.com

ぼうずやのにっき

のどが痛い

AGC055 : AtCoder Grand Contest 055 の A を解いた。


のどが痛い。まずそうな感じ。


今日のコミット。

Moonlighter をクリアした

一昨日 (2022-06-12) は『 Moonlighter 』 (https://store.steampowered.com/app/606150/Moonlighter/) をクリアした。

プレイ時間は 22 時間ほど。実績は 30 / 67 。ハードモードを脳筋プレイでクリアした。

RPGローグライク要素を加えたゲームとあるがわりとアクション色が強い。

ダンジョンが 5 つある。ダンジョンは潜るたびに形を変える。ターン制ではなくリアルタイムで進行する。回避・攻撃・武器固有の溜めやガードがある。死ぬと装備以外の荷物が失われる。ダンジョンでは素材を収集する。町では収集した素材を店舗運営の形で売却するかお店で武器・防具・アイテムなどの作成に使う。

グラフィックはきれいなドット絵だ。動きも比較的なめらかだ。

最初のダンジョンは新鮮ではあるもののそれ以降はわりと単調な気がする。敵は違うのだけど全体的なパターンが同じだからだ。素材は良くなっていくし敵は強くなるが特に面白くはない。

店の運営は任意の価格を設定できる。しかし客が買う範囲は狭いので適切な価格をひたすら調べる。面倒くさい。安く売ってしまうともったいない気持ちになるし高くて売れないのもイライラする。

敵のパターンをしっかり覚えて回避等すればノーダメージでのクリアも可能なのだと思う。思うがやりこむ気にはならない。ごちゃごちゃするのも面倒なので「大剣」に「鋼」の防具で固めて脳筋プレイでクリアすることにした。難易度ハードの場合は回復アイテムを限界まで積んで最大まで強化するとほとんど回避なく殴り続けるだけでラスボスを倒せる。

クリア後に周回プレイが可能だったが敵が固くなるなどつらそうな感じだったのでやめた。


積み木の箱を踏んで壊してしまった。


ABC240 : AtCoder Beginner Contest 240 の F を解いた。


今日のコミット。

神戸市立森林植物園に行った

昨日 (2022-06-12) は神戸市立森林植物園に行った。 2019-07-13 以来だ。

今回もまた「森の中のあじさい散策」というイベント中ではあった。ただ今回はそれを目当てに行ったわけではなかった。

今回は子どもが 1 人から 2 人に増えた。子どもが歩くのであまり回らずに帰ってきた。ひろびろとしたところで昼食をとって帰ってきた。

前回は足元の悪い中だったが今回は天気が良かった。青い空と緑の草むらの色がきれいだった。下の子もずいぶんと歩くようになっていた。思ったよりは歩いてくれたもののそれでも身動きは取りにくかった。

子どもたちは行きも帰りもバスで寝ていた。


エイシンプログラミングコンテスト2022(ABC255 : AtCoder Beginner Contest 255)の E を解いた。


今日のコミット。

2022-W23 ふりかえり

2022-W23 をふりかえる。

2022-W23 の目標 とその記事

目標。

  • ☑ 2022-05 ふりかえりを書く
  • tokio tutorial を読む
  • ☑ 椅子のことを書く

記事。

つくったもの

よんだもの

(なし)

みたもの

その他

勉強会。

(なし)

おでかけ。

ゲーム。

買い物。

(なし)

体調。

(なし)

育児。

  • 上の子は DVD プレイヤーの操作をできるようになっている
  • 下の子はすぐに叫び声をあげる
  • 下の子は妙にのけぞって歩く

2022-W23 はどうだったか。

仕事で Rust を使う、たぶん。

AtCoder は ABC255 で 1194 (-24) と緑に落ちた (https://atcoder.jp/users/bouzuya/history/share/abc255) 。毎日 ABC の過去問題を解いている。

プログラミング Tips っぽいもの。

  • EventStore の events は時間や連番をふっておいたほうが良い (2022-06-06)
  • 集約間は外部キーを設定しないほうが良い (2022-06-07)

朝・夜のコミットを続けている。 rust365 (2022-02-19) は its 0.17.0 をつくった。 its issue finish の出力を変更している。

『 Moonlighter 』をクリアした。また来週にでも書く。

2022-W24 の目標

コールマンのインフィニティチェアを買った

コールマン (Coleman) のインフィニティチェア (https://www.amazon.co.jp/gp/product/B079C1K6DH/) を買った。

明らかに仕事用のものではないのだけどぼくは仕事用に使っている。この 1 週間使ってみた感想を書く。

購入の意図としては後傾の椅子がほしかった。たぶんクルーズ&アトラスを買うことができればこの"旅"は終わる。だけど現実には置く場所 (家) も含めて手に入れるためのお金がない。そこでいくつか椅子を見ていたのだけどいまひとつ決めきれずに居た。もういっそ仕事とか忘れた椅子にすればいいんじゃないかと思ってこれにした。

使ってみたところ想像よりずっと良い。

リクライニングの柔軟さに満足している。意図通り後傾になっている。まっすぐに座りたい場合も問題ない。後ろに倒したときの足元もきちんとカバーできている点も良い。脚を伸ばしてゆったりと作業できる。

特に困った点は椅子を引くことが想定されていないこと。回転もできない。なので立ち上がるのが難しい。座ってしまうと机と椅子のセットに組み込まれたような状態になる。ほとんど動けない。これによるものだろうけど長時間座ったときのきゅうくつさを感じる。足元がしっかりしていることが悪い方向に働く面もありそうだ。横幅なのかな……。

椅子を変えたことで使う筋肉が変わったせいか腰 (?) に負担がきている。たぶん椅子の問題ではない。前職でコンテッサを使っていたときも似たような状態だった。過去の経験から頻繁にストレッチをしている。体幹を鍛えるトレーニングもしたほうが良さそうだ。

あとは机の裏に置いていたケーブルトレー (2020-02-05) に足が当たる。リクライニング次第で机とほぼ水平の状態になることによる。本来はありえない位置に足があるので当たる。机との組み合わせの悪さを感じる。クルーズ&アトラスが机も含めて提案しているのは正しいと思う。ツイート (https://twitter.com/bouzuya/status/1534777314973712386) もしたのだけど「机とは?」となっている。椅子に合わせて机をなんとかしたい。あるいは椅子に取り付けるとか体に取り付けるとかまったく別のアプローチもありそう。

しばらくは使っていく。


ABC255 に参加した。 C でも D でも変にハマってしまった。 1218 → 1194 (-24) でまた緑になっている。 https://atcoder.jp/users/bouzuya/history/share/abc255


今日のコミット。

ARC137 の B を解いた

ARC137: AtCoder Regular Contest 137 の B を解いた。

  • B - Count 1's https://atcoder.jp/contests/arc137/tasks/arc137_b
    • 提出: https://atcoder.jp/contests/arc137/submissions/32354574
    • 累積和を取った後で l, r の組をすべて求めれば……まで考えたけど O(N2) から下げられず断念
    • 一応それっぽいものを書いてみたけどダメだった
    • 解説 AC
    • 肝心の部分が「1 の個数を最小/最大で何個にできるか,は簡単に求まります.」とだけ書いてあってひどかった
    • 動画の解説はわかりやすかった
    • 累積和において r を決めたときそこまでの MIN との差が MAX になる

ビアンカの大冒険』を観た。


今日のコミット。

ARC138 の B を解いた

大和証券プログラミングコンテスト2022 Spring (ARC138 : AtCoder Regular Contest 138) の B を解いた。

  • B - 01 Generation https://atcoder.jp/contests/arc138/tasks/arc138_b
    • 提出: https://atcoder.jp/contests/arc138/submissions/32335237
    • 空の数列 x から長さ N の 0 or 1 からなる数列 A を次の 2 つの操作で構築できるか
    • 操作 1 : 左端に 0 を追加し、それ以外を反転する
    • 操作 2 : 右端に 0 を追加する
    • 最後の形 (かもしれない) が与えられているので操作を逆向きに考えて空の数列にできるかを考える
    • 末尾の 0 は操作 2 で何個でも追加できるので、これを取り除く
    • このとき数列は空 or 末尾が 1 になる
    • 空なら Yes で終了する
    • 1 は反転しないとつくれないので操作 1 が要る
    • 先頭が 0 かを確認する
    • 1 なら No で終了する
    • 残りを反転させたいが、単純に反転させると何度も走査させられるのでおそらく間に合わない
    • 反転されているかされていないかを判断する boolean で管理する
    • ↑の 0 or 1 をそれに従って読み替える
    • あとは末尾の 0 (反転しているなら 1) を取り除くところから繰り返せば良い
    • 先頭・末尾からの削除があるので VecDeque を使うと良い
    • N 回の要素削除があるだけなので O(N) で解ける

今日のコミット。