Try   HackMD

今年かっつ関連で作ったもの

これは アドかっつ! Advent Calendar 2024 9日目 の記事です。

ネタ切れで書くことがなさすぎる!助けて!

14 Minesweeper Variants の solver

中本會経由でかっつ鯖で一時14 Minesweeper Variantsが流行っていて、みんなまじめにやっている中 solver を作って遊んでいた。

使用技術(?)

solver 本体

CP-SAT ソルバーを使いたかったので、 rye + python + or_tools (+ API 作成用途で FastAPI) を用いてる。

細かい解法とかはこれ。https://jupiro.hatenablog.com/entry/2024/09/05/025857

CP-SAT ソルバー自体あんまり経験なかったが、いろいろ解法を学べて面白かった。

画面

せっかくなので、フロント練習がてらに画面作るかーと思って一応作った。

Vite + React ぐらいでフロント初心者って感じの画面だが、一応できた。もう少しいろいろ改善したいな~という気持ちありつつも、モチベが消失。

こんな感じで一応 #+ のようにマスごとと全体のルールも個別に設定できるようにしている。緑が安全と確定しているマスで、フラグが地雷の位置を示している。

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →

かっつのブルスカ監視ツール

かっつのブルスカはよくツイートが消えるので、監視ツールを作った。

使用技術(?)

uv + python + atprotcol で定期的にかっつの post を取るようにした。

uv は名前だけ知っていて使ったことなかったので一度使ってみたかった。rye との差別ポイントは正直よくわからないが、uv run main.py みたいな感じで実行できるのはちょっと体験がいいね。

atprotocol とも別にブルスカは API が提供されているぽいが、少なくとも今回の範囲では必要なかった

こんな感じで取っていて、画像は url で送られてくるので、 fetch してローカルに落として別で管理している

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →

ブルスカの微妙にややこしい用語(?)
  • DID: ブルスカは handle が自由に変更できるので、これとは別に内部に DID と呼ばれる ID を持っている。基本的になにかしらの情報をとるときはこの DID を使ってとる。 DID は atprotocol なら client.get_profile(handle).did で取得できる。
  • feed: ツイート一覧みたいなのの総称。タイムラインであったり、リストであったり、ユーザごとのツイートだったりである。あるユーザの feed の一覧は、client.get_author_feed(<did>) で取得できる。
  • URI: URI 自体は一般的な用語というのをさておき、ブルスカ(というか atprotocol では)、at://did:plc:vlw3u7noimetvbp4meo54qtb/app.bsky.feed.post/3kxgrdunulv2d のような感じでat://<DID>/<COLLECTION>/<RKEY> のフォーマットで指定される。基本的に API なりで何かを返したり取得するときはこの形式の URI になる。ブルスカの場合は URL の https://bsky.app/profile/<DID>/post/<RKEY> と対応している

(作成中)原神聖遺物最適化ツール

原神の聖遺物は聖遺物スコアと呼ばれるもので比較されていることが多い。この指標は誰でも簡単に計算できる一方で、同一すべきかどうか怪しいパターンも多い。配分されるスコアでどう振られるのかが最適なのかを示すツール(予定)