俺の青春カードゲームをオンライン化してみたぜ

高校時代に友達と熱中したカードゲーム、ルールを減らしてスッキリ爽快なアプリにしたぜ。それが、この「Uno Bomb」だ。本家Unoの熱い駆け引きはそのままに、アグレッシブでちょっと複雑な爆弾プレイが炸裂するぜ。

## 技術スタック
### フロントエンド
- Astro.js https://astro.build/
- Svelte https://svelte.dev/

### バックエンド
- Firebase https://firebase.google.com/
- FireStore https://firebase.google.com/docs/firestore

バックエンドといってもプレイ回数の保持しかしてないけどな！

### デプロイ
- Vercel https://vercel.com/

## THE URL
https://uno-bomb.com

遊び方はこうだ！

## 基本ルール
- 基本はUnoと同じ。
- Unoと同じようにカードによって役割がある
- 同じ数字のカード複数枚持ってたら、まとめて出すこともできるぜ（キメたい時にね）


## 勝利条件

とにかく爆弾（Bomb）をかませ。

## 爆弾投下（Bomb）

- ゲームのどんなタイミングでも爆弾（Bomb）を投下できる。
- 全カード一気にぶん投げろ。部分的な爆撃は認めないぜ。
- 手札のカードの「足し算」「割り算」「掛け算」「引き算」でBombするカードが決まる。
- 割り算、引き算、掛け算は、手札が2枚ちょうどじゃないとできねえぞ。
- 足し算は2枚以上でも可能だが、合計が13を超えちゃダメだ。
- 最後の1枚だけで爆弾（Bomb）はできねえ。普通に次のカードを引け。
- 爆弾（Bomb）は、他のプレイヤーが出したカードに対してしかできないぜ。

## 爆弾投下のお手本、ドドンとお届けだぜ

爆弾（Bomb）の決め方がまだイマイチピンと来てない？ そんな君のために、爆弾投下のお手本をドドンとお届けするぜ！


| 手札&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | Bombできるカード |
| ---- | ---- |
| 2♥, 3♠, 4♦ | 9♦ (2 + 3 + 4) |
| 3♥, 4♥ | 1♥ (4 - 3)<br>7♣ (3 + 4)<br>12♥ (3 x 4) |
| 6♦, 12♠| 2♥ (12 / 6)<br>6♣ (12 - 6)|
| 4♣, 4♦ | 1♣ (4 / 4)<br>8♥ (4 + 4) |
| 1♦, 10♣ | 9♥ (10 - 1)<br>10♣ (10 x 1)<br>11♠ (10 + 1) |

- マーク（♥とか♠とか）は関係ないから、気にすんな！ 
- 設定メニューで「ガイド」をオンにすると、Bombできる数字が見えるようになるぜ！

## カウンター爆弾で反撃だぜ！

他のプレイヤーが投下した爆弾カードに、さらに爆弾で反撃することもできるぜ！ ド派手なカウンター爆弾で、相手の度肝を抜いてやろうぜ！（超気持ちいいぞ）

## 特殊カードの効力、とくと見よ！

| カード&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | 役割 |
| ---- | ---- |
| A（どのマークでも） | 次のプレイヤーのターンはスキップだぜ！ |
| 2（どのマークでも） | 次のプレイヤーはカード2枚ドロー！ ただし、相手も2を出してきたら、倍の4枚ドローだぜ！ 2が連続すれば、8枚、16枚…とドロー枚数は倍々になっていく！ |
| 9（どのマークでも）| ターンの進行方向を逆転させるぜ！二人プレイのときは無視。 |
| J（どのマークでも） | 次のカードのマークを指定するぜ！ 場のカードに関係なくいつでも出せる。ただし、「2枚ドロー」の時は出せないから注意な！ |
| K（どのマークでも） | 自分の手札を全員に公開するぜ！ ただし、自分もKを出せばセーフだぜ！ |

## より楽しむための極意、伝授！

- アプリでルールを把握した後は、友達や家族とプレイしたほうが楽しいぜ。目の前でリアルにカードがめくれたときの「あいつ、こんな爆弾隠してたのか！」…その快感、もうたまんないぜ。
- 爆弾トラップ仕込ませたり、逆に回避したり…これがこのゲームの醍醐味だ。でも、俺がアプリに仕込んだロジックはトラップにひっかかるようなそんなに頭いいもんじゃねえからな！
- カウンター爆弾の連鎖反応でドヤ顔決める準備はできたか？ 爆弾炸裂の嵐で勝利をつかめ！

## 爆弾トラップ、仕掛けてみるか？

経験積めば、爆弾トラップ仕掛けるのも楽勝だぜ。その一例を伝授しよう。

### 初級トラップ
手札：3♠、4♠、7♦ → 7を捨てる


### 意地悪トラップ

手札：2♥、6♦、12♠ → 2を捨てる

手札：3♥、10♦、13♣ → Kを捨てる

- マーク（♥とか♠とか）は関係ないから、気にすんな！
- 2かKを出された時、トラップ疑って捨てるのやめてもいい。でも、その場合、2枚ドローか手札公開のペナルティ食らうことになるぜ。

## 俺たちの青春スコア計算システム！

高校時代、俺たちはこうやって点数を稼いでたぜ。あくまで一例だから、アレンジし放題だ！

- 勝者総取り: 最後の爆弾王（Bomb King）が全プレイヤーの点数をかっさらう！
- 残カード減らし作戦: ゲーム終了時、手札の枚数だけ点数がマイナスだぜ。3枚残ってたら、失点3だ！
- ペナルティゾーン突入！:
  - 爆弾くらった奴は、カード減らしに加えて5点没収！
  - カウンター爆弾食らったら、なんと10点没収！ちなみにその前に通常爆弾くらってたやつは失点0だ。
- 全ての負け犬（負け犬って言うな！）の失点をまとめてドーン！ 勝者総取りだ！

昔は1点10円で点数を付けて、ノートに何年も記録つけてたもんだ。金は結局誰も回収しなかったけどな、みんな貧乏でもともと払う金なんてないのわかってたし！

昔の俺たちのように楽しんでもらえたら嬉しいぜ！

https://uno-bomb.com

## まとめや気付き

- 見た目はwordleに寄せた（NYTimesに買ってもらえるように）。
- 最初にDEVに英語記事を作り、それを「ふざけたエンジニアの文体」で[Bard](https://bard.google.com/)に訳してもらいました。
- うざすぎて無理、と最初は思ったのですが途中から結構わかりやすい気がしてきたので、おかしなところだけ修正してそのまま採用しました。
- DEV記事のコメントでいろいろつっこんでもらえてルール記述のブラッシュアップが捗りました。バックグラウンドの違う人に見てもらえると思いもよらないポイントで指摘してもらえるのですごく助かりました。
- Svelteお手軽だけど管理する状態が増えると最初の設計きちんとしておかないと危険。
- ゲームのロジックを初めて考えた。作る前はいたってシンプルなゲームだと思っていたが、ユーザが次のアクションを選択する場面などが想像より多くて大変だった。

原文「Uno Bomb is yet another Uno-like game with fun complications」
https://dev.to/cieux1/uno-bomb-is-yet-another-uno-like-game-with-fun-complications-13gj