ボウリング大会幹事アプリの開発

2019-11-10に作成


ボウリング大会幹事アプリの開発

所有者限定モードのためこのボードには投稿できません ボードとは?

11/9-10進捗

はじめに

開発の経緯

ボウリング大会(?)で幹事をやるかもしれないということで、
チーム分けとかチーム戦のスコア計算とかHDCP計算とか
Excelとか紙に書かずにできないかな、と思ったのが始まりです。

まず市場調査

一通り調べてみましたが、Excelマクロとかはそれらしいのがあったものの、PC持ち込んで計算というよりスマホだけで完結させたかったので、アプリを色々調べてみたのですが、個人の記録に特化していたのでこれはもう作るしかないと思いました。

現段階での動作イメージ

https://letsbowling.netlify.com/

目指す仕様

実装済み

  • 5ゲーム合計値の計算
  • ドラッグアンドドロップ
  • localstorage保存・削除機能
  • UIはほぼフィックス

未実装の機能

  • プレイヤー新規作成・編集
  • チーム分け機能
  • 自動ソート機能
    • 手動でドラッグアンドドロップはできるものの、自動でソートする機能をつけたい。
  • HDCP計算
    • 対象となるゲームを選択して、HDCPを計算、結果を反映する
  • 結果共有
    • QRとかbase64文字列

技術的な話

木目調CSS

CSSで木目調背景と畳調背景

データ保存

local storage

ドラッグアンドドロップ

react-beautiful-dnd

チーム分けアルゴリズム

人数が少なければ、総当たりで解いてもいいのだけれども。
ググって見つけたチーム分けアルゴリズムはなぜそういう処理をするのか、処理の意図が見えなくてとりあえずナップザックで解いてみた。
ナップザック問題で平均との差が小さくなるように実装してみた(平均+誤差の範囲で最大になるような解き方)

  • ナップザックに入れる個数が自由だからか、 チーム分けしたときに人数が均等にならない