タグ

ブックマーク / qiita.com/41semicolon (2)

  • ガチャプログラムの実装(中級者向け) - Qiita

    ガチャの実装はおそらくあなたが思っている以上に難しい。 稿では、最終的に以下の機能をもつガチャを作る。最初は簡単なものを作り、徐々に難しくしていく。言語は JavaScript。ES6もバリバリ使うので初心者には難しいかも。 - ピックアップ対応: 特定のキャラをあたりやすくさせる - 10連特典対応: 10連の場合には、★4 一体以上を保証 - 天井対応: 99 回連続で★5 がでてない場合、★5 を保証 - メンテが容易 - コードの変更が一切不要 - 設定ミスしにくい設計 1. 超基からはじめよう。1% で大当たり, 10% で当たり、 89% ではずれのガチャはこんな感じで実装できる。乱数はガチャ関数の外に出して純粋性を保つことで、テストをしやすくするのが重要: function gacha(rval) { if (rval < 0.01) return { id: '大

    ガチャプログラムの実装(中級者向け) - Qiita
  • map, reduce もいいけど transduce もね - Qiita

    続編もよければどうぞ 衝撃レポート!!map, reduce の質にせまる! 市民権をえた map, filter, reduce 最近はどの言語でも配列やストリームにおいて map, filter, reduce が使われすっかり市民権を得た感じがある。一方、transducer はあんまり使われているのを聞いたことがない気がする。 稿では transducer について少しだけまとめる。言語はJavaScriptを使う。 解きたい課題 メソッドチェーンで map, filter をつなげて処理を書くと、中間状態として無駄な配列がでてきてしまう。 targetList.filter(isHoge) //中間配列1つめ .filter(isMoge) //中間配列2つめ .map(doFoo) //中間配列3つめ .map(doBar) //中間配列4つめ .map(doBaz)

    map, reduce もいいけど transduce もね - Qiita
  • 1