猫野詩梨帳

かわいいはかしこい

原神 風の行方(かくれんぼ)初心者のためのメモ

原神のかくれんぼイベント「風の行方」が開催中です。

ちょっと苦手だしスルーしようかな……と思っていたのですが、やってみたらかなり楽しくてはまってしまいました。

ということで、同じようにこういったゲームが苦手な人のためにいくつかアドバイスを書いてみます。

共通

① へたくそでも気にしなくていい

開始 10 秒でつかまったり、一人も捕まえられないこともよくあります。 緊張して疲れたらパーッとトイレにでも行けばいいわ。

② ロリキャラはかわいい

かくれんぼゲームやマルチプレイが苦手な場合は、クレーちゃんやナヒーダちゃんで遊ぶと温かい目で見てもらえます。たぶん。

スメール編未プレイの方はこのセリフで検索するとネタバレを受けるかもしれないので注意

隠れる(レンジャー)

① とりあえず適当なところで偽装する

適当に偽装しているだけでも結構見つかりません。 慣れてきたら高いところや見つかりにくそうなところを探してみましょう。

② 偽装解除は長押しで

最初解除方法がわかりませんでした。

③ 体が発光したら逃げる

体が発光したら逃げるしかありません。しばらくして元に戻ったらまた偽装しましょう。

捕まえる(ハンター)

① 高いところを見る

高いところに隠れる人は多いです。

② おちついて高いところに登る

焦らずおちついて高いところに登りましょう。 高いところに登るだけで誰かしら見つかることもあります。

③ 緑色の玉が落ちてきたらとる

1度だけ落ちてくる緑色の玉を取ると強いスキルが使えます。積極的にとりましょう。

④ 感知の輪を使う

ハンターのスキルは、イベントページ? からあらかじめ選択しておくことができます。 「感知の輪」は適当に使いながら歩いているだけでレンジャーを見つけられるのでおすすめです。

まとめ

ナヒーダちゃんが走り回ったり隠れたりするのかわいすぎだろ!

イベント中は realNahida という名前で本物のナヒーダちゃんがプレーしています。対戦よろしくお願いします。

かくれんぼナヒーダちゃん

M1 Mac で SML# (smlsharp) を Docker で動かす

M1 Mac で SML# を動かそうと思ったら難しかったのであきらめて Docker で動かしたときのメモ(ちゃんと動くかはあんまり確認してない)。

Dockerfile

ほぼ ダウンロード - SML#プロジェクト に書いてある通り。

FROM --platform=linux/x86-64 debian:buster

RUN apt-get -y update
RUN apt-get -y install wget

RUN wget -P /usr/share/keyrings https://github.com/smlsharp/repos/raw/main/debian/dists/buster/smlsharp-archive-keyring.gpg
RUN wget -P /etc/apt/sources.list.d https://github.com/smlsharp/repos/raw/main/debian/dists/buster/smlsharp.list
RUN apt-get -y update
RUN apt-get -y install smlsharp

動かしてみる

docker build . -t smlsharp
docker run -it --rm --platform linux/x86-64 smlsharp smlsharp
# print "Hello, World!\n";
Hello, World!
val it = () : unit

動いた。

www.kyoritsu-pub.co.jp

原神七不思議

  • 悪魔の名を冠する謎のマスコットキャラクター
  • 時間停止中も動ける謎の白い生命体
  • 謎の差出人からの謎のメール
  • マップ外との境界付近で多発している謎の墜落死
  • 現実世界の旅人に干渉する謎のツイッターアカウント
  • 偶然旅人に助けられ、偶然旅人を導く非常食最高の仲間!

まとめ

パイモンかわいい

世界一おもしろいゲームのリメイクがでた

supermonkeyball.sega.jp

みんな買ってくれ頼む~🙏

これで割と本当に少なくとも 100 回は夢に見た幻のスーパーモンキーボール*1の発売も夢やない!!!!!!!!!!!!!!

一緒にパーティゲームで遊んでくれる人を募集しています。

*1:だいたいゲーム屋で見つけて喜ぶんだけど家に帰る前に目が覚める

うー

会津弁ではよく「うー」っていう。

例えば、聞き返すときの「え?」みたいなのは「うー?」っていう。

あらまあとかあらやだみたいな意味でも「うー!」っていってるきがする。「やんだおら」とかもあるけど男性はあんまり使わないらしい(使ってる人もいる気がする)。

相槌を打つときも「うー!」っていうきがする。ぼくは「んだがら」とかっていう。

調べたら返答を促すときの「うー」ってのもでてきた*1。たしかにいう。でもこれは説明がちょっとむずかしい。「えー?」みたいな?

返事の「うー」ってのもある*2。これは目上が目下に言う返事らしい。

【Python】Poetry で小さなパッケージをつくった

「空でないと保証された文字列」を扱いたいことがたまにあります。

そんなときのために自作パッケージ nonemptystr を作りました。

pip install nonemptystr でインストールできます。

github.com

ところで、このパッケージの作成・公開には Poetry というツールを使いました。

github.com

今回作成した nonemptystr パッケージはとても小さなパッケージです。ちょっと中身を見てみましょう。

リポジトリの中身

.gitignore, LICENSE

.gitignore と LICENSE は GitHub で新規リポジトリを作成するときに自動生成しました。ライセンスはオープンソースライセンスの MIT License を選択しています。

README.md

README です。GitHub リポジトリのトップページや PyPI プロジェクトのトップページにも表示されます。

簡単な使い方と API を載せています。今回は小さなパッケージのため、ドキュメントはこれ以外に用意しませんでした。

README の上部には「バッジ」と呼ばれているアイコンのようなものが表示されています。これは Shields.io などで作成できます。

pyproject.toml

pyproject.toml は PEP 518 で定義された新しいフォーマットのファイルで、今までの setup.py や setup.cfg に代わるものです。 Poetry ではこのファイルを利用して依存関係の管理やビルドを行います。

poetry init コマンドでは対話的にこのファイルを作成することもできます。

pyproject.toml ファイル内では以下のような項目を設定しています。

[tool.poetry] セクション

名前、バージョン、説明などの項目を設定しています。PyPI のプロジェクトページなどでも表示されます。

classifiers の項目は Classifiers · PyPI から選択しますが、License や Programming Language などは自動で設定されるようです。

[tool.poetry.dependencies] セクション

依存関係。 今回はサードパーティー製のライブラリを何も使っていませんが、Python のバージョンをここで指定しています。

手動で編集できるほか、poetry add コマンドなどで依存関係を追加すると自動で追加されます。

[tool.poetry.dev-dependencies] セクション

開発時のみ必要とする依存関係。 例えば black は、コードの自動フォーマットを行うためのツールです。

[build-system] セクション

デフォルトのままです。

pyproject.toml ファイルについての詳細は The pyproject.toml file | Documentation | Poetry - Python dependency management and packaging made easy. 1などを参照してください。

poetry.lock

Poetry が生成するロックファイルです。通常は依存関係をインストールしたときなどに自動で作成・更新されると思います。 npm の package-lock.json や Yarn の yarn.lock とかと同じようなものだと思います。

詳しくは Basic Usage | Documentation | Poetry - Python dependency management and packaging made easy.2 などを参照してください。

tasks.py

スクランナーとして Invoke を使用しています。

github.com

tasks.py というファイルにタスクを定義しておけば、 inv (タスク名)3 で起動することができるようになります。

今回は check というタスクを定義しておいて、コードのフォーマットやチェック、テストなどを通して行えるようにしておきました。

呼び出しているツールは以下の通りです。

  • isort: import 文の自動ソート
  • black: コードの自動フォーマット
  • flake8: コードのチェック
  • mypy: コードの型チェック
  • pytest: テストの実行

invoke.yaml

Invoke でタスクを走らせたときに pytest のカラー出力などが保たれるように設定をしています。特になくても問題ありません。

setup.cfg

pyproject.toml ファイルのおかげで setup.cfg は不要なのですが、ここでは flake8, isort, mypy の設定を記述するために使っています。

nonemptystr/

メインのソースコードが含まれています。

パッケージ名 (nonemptystr) と同じ名前のディレクトリにしているので、Poetry は自動でこのディレクトリを見つけてくれます。

もしディレクトリ名が特殊な場合は pyproject.toml の [tool.poetry] 内の packages で教えてあげる必要があります。

詳しくは The pyproject.toml file | Documentation | Poetry - Python dependency management and packaging made easy. 4などを参照してください。

また、py.typed は PEP 561 に準拠するためのもので、型ヒントがついたパッケージを公開するときに必要になります。 中身は空ですが、このファイルがないと mypy に文句を言われたりします。

詳しくは PEP 561 に準拠した型ヒントを含むパッケージの作り方 – ymyzk’s blog などを参照してください。

tests/

テストコードが含まれています。

パッケージの公開

実際に PyPI にパッケージを公開するまでの流れを見てみましょう。 なお、事前に PyPI のアカウントを作成しておく必要があります。

※ 当たり前ですが PyPI にパッケージを公開するということは全世界にパッケージを公開するということです。 公開したくないパッケージを不用意に公開しないように気を付けてください。

手元に nonemptystr リポジトリがあって、その中にいるとします。

まず仮想環境内でシェルを起動します。仮想環境がない場合は作成されます。

$ poetry shell

依存関係をインストールしていない場合はインストールします。 開発時のみの依存関係 (dev-dependencies) もインストールされます。

$ poetry install

ソースコードを作成・編集し終わったとします。 公開する前に、コードのフォーマットやチェック、テストを実行します。

$ inv check

問題なければ公開用にパッケージをビルドします。

$ poetry build

PyPI にパッケージを公開します。

$ poetry publish

ユーザーネームとパスワードの入力を求められた場合、PyPI のユーザーネームとパスワードを入力します。

これで完了です。ね、簡単でしょう?

まとめ

Poetry と pyproject.toml のおかげで簡単に Python パッケージを作成・公開できるようになりました。

また Poetry は活発に開発が行われており、たまによくわかんないエラーが出たりしてましたが比較的安定して動作するようになってきました。 依存関係のインストールも高速で便利です。

ぜひ Poetry 使っていきましょう。

最近よんで面白かったファンタジー・SF漫画を紹介するよ

『黒 —kuro—』

黒―kuro― 1 (ヤングジャンプコミックス)

黒―kuro― 1 (ヤングジャンプコミックス)

『シャドーハウス』などでも知られるソウマトウ氏の作品。

いいはなし。

女の子がかわいい。

『スペクトラルウィザード』

スペクトラルウィザード

スペクトラルウィザード

『金魚王国の崩壊』などでも知られる模造クリスタル氏の作品。

いいはなし。

続編もあわせて読もう。

『リトルラボ』

リトルラボ 1

リトルラボ 1

『映画大好きポンポさん』などでも知られる杉谷庄吾人間プラモ】氏の作品。

いいはなし。

短編集のため第2巻から読んでも可。

『銀河の死なない子供たちへ』

バーナード嬢曰く。』などでも知られる施川ユウキ氏の作品。

いいはなし。

下巻の紙媒体が手に入らなかったので電子書籍で買った。

まとめ

できれば紙の本がいいけど電子書籍でも読めるのは便利。でもやっぱり紙の本がいいです。

おすすめの漫画とかあったら紹介してね。