AutonomousVehicleControlBeginnersGuide
Python sample codes and documents about Autonomous vehicle control algorithm. This project can be used as a technical guide book to study the algorithms and the software architectures for beginners.
翻訳待ち
No updates detected yet. GitHub releases will appear here.
tmux からくり屋敷 — tmux のキーで屋敷の仕掛けを解くタイムアタック。押すキーはいつも画面に出る (browser + real tmux CLI)
Loading the full README.
Read the full README ↗tmux のキー操作を、本物の tmux と同じ画面で身につけるタイムアタック。分割・移動・全画面・ウィンドウ・コピーモードの問題を次々に解く。押すキーはいつも画面に出ているので、遊んでいるうちに指が覚える。
▶ 今すぐ遊ぶ: https://t29mato.github.io/games/tmux-dojo/
web/): 3 つのコースのタイムアタック。インストール不要。ランキング(ランキング)と端末の引き継ぎは任意./tmux-da): 本物の tmux の中で 11 面を解くweb/)ページの中の小さな tmux で遊ぶ。web/index.html をそのまま開けば動く(file:// でも静的サーバーでも)。名前か合言葉を付けるまでは一切通信しない。
| コース | 問題数 | 目安 | 中身 |
|---|---|---|---|
| 入門(手ならし・初めてはここ) | 15 | 12 秒 | 分割・移動・全画面・閉じる・ウィンドウの作成と切り替え。1 問 1 キー |
| 中級(腕試し) | 20 | 14 秒 | 大きさ・名前・入れ替え・ウィンドウを閉じる・スクロール(コピーモード)も混ざる |
| 上級(真剣勝負) | 16 | 18 秒 | 1 問で 2〜3 手の連続技 |
| 達人(使っている人へ) | 14 | 1 問 7〜25 秒 | tmux を使っている人向け。join-pane・swap-window・move-window・並べ方(prefix M-1〜M-5 と Space、完成図つき)・synchronize-panes・prefix q と番号・検索して行をコピー・rotate-window・キーのないコマンド(new-window -n、kill-session -t)。tmux 3.8 の既定どおりに動く |
prefix q と同じ番号で示し、いま居るペインは緑の枠と番号。やることと次のキーは、いま居るペインのプロンプトのすぐ上にシェルのコメント(#)として出る。行き先のペインには点線と印、いま居るペインからの矢印(押すキーつき): のコマンドも全部試せる。タイトル画面(P)と稽古の結果から入り、Esc 2 回か「やめる」で戻る。下に、遊んだコースで覚えたキーの早見表(日本語、たためる): プロンプト: コマンド名は tmux と同じく、ほかと区別できるところまで縮めてよい(kill-ses、swapw、selectl)。あいまいなら ambiguous command: kill, could be: …、ないものは unknown command:(tmux 3.8 のコマンド表で判定)。display-message(#S #W #I #P #{…} を展開)、send-keys -t、list-keys・show-messages(prefix ?・prefix ~。q で閉じる一覧)、show-options がある。見るだけのコマンドと、tmux にあってゲームが再現しないコマンドは問題中でもミスにならない(そう出る)。ないコマンド・あいまいなコマンド・頼まれていない操作はミスw b e W B E ^ 0 $ H M L f F t T ; , g G C-u C-d C-b C-f、emacs の M-f M-b M-< M-> も tmux 3.8 と同じ位置に動く。V で行ごと選べ、行をまるごとコピーする問題の手順と「標準」は V を使うo で次のペインへ、; で直前のペインへ)も出すset -g prefix、ゲームにある操作への bind / bind -n / bind -r / unbind、vim-tmux-navigator(プラグインの既定どおり Ctrl+h/j/k/l、Ctrl+\、合図 → Ctrl+l)。renumber-windows、break-pane -d、縮めたコマンド名も読む。読めない行は理由つきで一覧に出す。自分の設定で遊んだ記録も、既定のキーの記録と同じランキングに載るmatsu-kaze-tsuru-482)を別の端末で入れると、同じ記録が見られるopen web/index.html # macOS
python3 -m http.server -d web 8000 # または http://localhost:8000/
server/)ランキングと引き継ぎのための小さな API。Cloudflare Workers + D1(SQLite)。アカウントは無く、合言葉は SHA-256 だけを保存する。記録の検証(1 問あたり平均 0.4 秒未満、1 問 0.1 秒未満、合計が合わない記録、その日の出題順でない記録、途中で長く止まった記録、順番を変えた回は弾く)と、アドレスごとの回数制限(分ごと、合言葉の新規作成は日ごとも)をする。自分の .tmux.conf で遊んだ記録はランキングに「自分の設定」と出る。名前は見えない文字を落とし、制御文字や積み重ねたアクセントを弾く。
ランキングに載せる記録には、押したキーの記録(klog: キーごとの ms と表示名、問題ごとの開始 ms)が付く(keylogs 表)。サーバはそれが記録と合うか(キーの数、最後のキーの時刻 ≈ タイム、問題の切れ目 ≈ 各問の秒)と、人の手らしいか(間隔が 15 ms 未満のキーが 3 割を超える、間隔が全部同じ)を見て、合わなければ 400 で理由(key log: …)を返す。古いクライアントのキー記録なしの記録はこれまでどおり受ける。キー記録は影(/v1/ghost の above= で 1 つ上の人、name= でその人のベスト)と「この回を見る」(再生)に使う。名前のある人は遊んでいる .tmux.conf を公開できる(/v1/conf、8 KB まで、そのまま保存。confs 表)。ランキングの「自分の設定」がそのリンクになる。
keylogs と confs の表は Worker が初回に自分で作るが、本番のデプロイ前に手で作っておくのが確実(既存のデータには触らない):
cd server
npx wrangler d1 execute tmux-da --remote --command "CREATE TABLE IF NOT EXISTS keylogs (key_hash TEXT NOT NULL, run_id TEXT NOT NULL, log TEXT NOT NULL, PRIMARY KEY (key_hash, run_id))"
npx wrangler d1 execute tmux-da --remote --command "CREATE TABLE IF NOT EXISTS confs (key_hash TEXT PRIMARY KEY, text TEXT NOT NULL, at TEXT NOT NULL)"
公開された設定を消すには(本人が消せない事情のとき):
npx wrangler d1 execute tmux-da --remote --command "DELETE FROM confs WHERE key_hash = (SELECT key_hash FROM players WHERE name = 'その名前')"
cd server
npx wrangler d1 execute tmux-da --remote --file schema.sql # 表を作る(初回だけ)
npx wrangler deploy
This is the beginning of the README. Read the rest at the original. Read the full README ↗