ボウリングのすすめ

ボウリングの面白さや上達のコツなど紹介

ボウリングのスコア分析アプリの紹介

日々のボウリングの上達のために、スコア分析を自作のアプリでやっているが、どういうアプリを作っているのかを紹介したい。

動作環境は、Pythonがインストールされていれば、MacでもiPhoneでもWindowsでも動作はする。

普段は、PCで見ていて、ボウリング場などでは、スマホでも確認できるようにしているという使い方になる。

大まかなアプリの仕様

  • スコアシートを全部入力するのは大変なので、簡素化する
  • データはデータベースに蓄積して、必要な分析が後からできるようにする
  • 分析の観点が思いついたら、データベースからグラフ化などをするモジュールを作る
  • 分析結果は、レポートとして、モジュールを順番に呼び出すプログラムとして作る

Pythonは、データベースとして、SQLiteが標準で使える。また、グラフ化もmathplotlibというライブラリがあるので、比較的簡単に作ることができる。

スコア入力の簡素化

自分がデータベースに登録しているデータは、例えば、以下のような形式になっている。

("2022/02/01",1,210,6,4,"nomiss")

("2022/02/01",2,185,3,2,"")

("2022/02/01",3,240,8,5,"nomiss")

1行が1ゲームの結果で、上記だと3ゲーム分になる。登録しているのは、以下の情報になる。

(日付、何ゲーム目か、スコア、総ストライク数、最高連続ストライク数、ノーミスゲームができたか)

また、最初の2つの項目はプログラムで自動挿入しているので、入力しているのは、4つだけになる。

ちゃんとスコアを登録しようとすると、これ以外にもスペア数(オープンフレーム数)や、ノーヘッド数、スプリット数などもあった方がよいかもしれないが、1フレームずつのスコアを登録するのも面倒だし、結局、高スコアが出せているのかは、スコアと連続ストライク数でわかる。また、スペアが取れていないフレームがいくつあるかよりは、ゲームを通してノーミスで投げれたかを代表指標にしてもいいんじゃないかという割り切りである。

1ゲームで、4個しか入力項目がないので、10ゲームやってもスコアシート見ながらデータベースに登録するは、1分ぐらいあれば、できてしまう。

データベースに保存しているといいこと

これだけ簡素化しているデータの分析ではあるが、データベースに保存しておくことで、月ごとの平均スコアを計算して、グラフ化することで、日々の上達がわかったり、後から分析したいなと思うデータをSQLで確認できる点がメリットになる。

同じようなプログラムは、EXCELなどの表計算ソフトでもできると思うが、SQL文がかけるという部分がとても簡素化できてよい。

例えば、月のスコアの上位5つを抽出するとか、1行で書けてしまう。

また、何ゲーム目に高スコアになることが多いのかなども、mathplotlibの散布図を使えば、これも数行で書けてしまう。

PCとスマホでのデータの同期

データベースさえ同期できれば、同じアプリが動くので、自分は、iCloudにデータベースファイルを置くようにしている。GoogleDriveでもOK.

クラウドにデータベースがあれば、どのデバイスからもデータが見える。