トップ «前の日記(2024-11-10 (Sun)) 最新 次の日記(2025-01-03 (Fri))» 編集   RSS 1.0 FEED  

Journal InTime


2024-12-12 (Thu) [長年日記]

_ ruby.wasmを使うのをやめた

Ruby Advent Calendar 2024の12日目の記事です。

RubyKaigi 2023のLTで紹介したBINGOアプリケーションだが、去年の忘年会で表示(おそらくruby.wasmのダウンロード)に時間がかかったり、一部動かない人がいたりしたので、ruby.wasmを使うのをやめた

Rubyだとカードの初期化が↓の3行だったのが、

  srand(<%= @seed %>)
  CARD = (1..75).each_slice(15).map { |i| i.sample(5) }.transpose
  CARD[2][2] = ""

Randomクラスの定義を除いても↓くらいになってしまった。

  let rand = new Random(<%= @seed %>);
  let cardValues = Array.from(Array(5).keys()).map(i => 
    Array.from(Array(15).keys(), j => 1 + 15 * i + j)
  ).map(nums => 
    nums.map(i => [rand.next(), i]).sort().map(i => i[1]).slice(0, 5)
  );
  cardValues = cardValues[0].map((col, i) => cardValues.map(row => row[i]));
  cardValues[2][2] = "";

ふだんJavaScriptを書かないので私が下手なだけかもしれないが、ブロックや範囲式があって、Array#sampleやEnumerable#sort_by、Array#transposeなどのコレクションを操作する機能が豊富なRubyは便利だなと改めて思った。 フルセットのRubyがいらない場合はpicoruby.wasmとかあると便利かもしれない。

↓のコメント欄にJavaScriptでもっとかっこよく書けるというスレッドが続く(かも)。

Tags: Ruby

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy