ドメインしりとり
ドメインしりとり
www.google.com
, yahoo.co.jp
, wikipedia.org
...
インターネットドメインって日常的によく見るものはなんとなく覚えるし、基本アルファベットだけだし、しりとりできるんじゃないかと思うこと、ありますよね。
今回は実在のドメインを使ってしりとりができるサイトを作成しました。
インターネット力を測るベンチマークとしてぜひお試しください!結構難しいです!
ルール
- ドメインでしりとりする
- 英字(a-z)・数字(0-9)・ハイフン(-)・ドット(.)が使用可能
- ドメインが存在していなければアウト
(パブリックDNSに問い合わせて確認) - 同じドメインは使えない
(※www.google.com
とgoogle.com
は異なるのでOK) - ドメインの難易度等(後述)からポイントを算出
- 3回アウトで終了
- 世界一有名なドメイン
www.google.com
からスタート - 調べるの禁止!
日本語ドメインのような国際化ドメインは使えないのと思うかもしれませんが、Punycode化(ASCII文字化)されたものを覚えていればもちろん使えます!
例:日本語.jp
→ xn--wgv71a119e.jp
技術スタック
- JavaScript
- GitHub Pages
- Public DNS
- ドメインの存在チェック用。今回はGoogle Public DNS
一切のライブラリを使用していない脳筋プレイになっています。
可読性は低いですが、そこまで複雑なスクリプトでもないですし、依存がほぼゼロなのでいいんじゃないでしょうか。何より書いてて楽しかったのでOKです。
ステートの管理
ちょっとこだわった点としては、ステートの管理です。
ポイントや残機数、これまでのドメインなど、管理すべき状態がいくつかありますが、今回はJavaScript内に変数などで保持しているわけではなく、htmlを参照しています。例えば、残りの残機数はハートのアイコンを持つimgタグの数を数えて算出する、などです。これにより、コード内の変数の状態と表示内容が異なってしまうなどのバグが絶対に起こりません。簡単なページだからこそできることかもしれません。
ポイントの算出方法
このゲームでは、各ドメインごとにポイントを算出しゲームオーバー時に全部のポイントを足して最終的な得点にしています。
難しいドメインを使えた方がポイントが高いようにしたいので、今回は以下の観点でポイントを算出しています。
- 文字数
- 長ければ長いほど指数的にポイントが増えます
- 指数的に増やしているのは、
mail.com
のような簡単な単語+.comなどというそれはあるだろというドメインでポイントを稼がれると面白くないからです
- 指数的に増やしているのは、
- 長ければ長いほど指数的にポイントが増えます
- サブドメインの数
-
aaa.bbb.ccc.example.com
のようにサブドメインが多いほど指数的にポイントが増えます
-
- トップレベルドメイン(TLD)のランキング
-
com
,net
,org
はよく使われるので、その他のTLDに比べ少しポイントが落ちます。(jp
ドメインは日本ではよく見ますが、国別コードトップレベルドメイン(ccTLD)でポイントが変わると不公平感があるので除外。)
-
終わりに
作者のベストスコアは118,988点です!
挑戦の結果をXで共有して欲しいです!
※ 打ち込んだドメインに実際にアクセスするのは、セキュリティ的におすすめしません!
Discussion