2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

個人開発エンジニア応援 - 個人開発の成果や知見を共有しよう!-

【自動化】麻雀の成績管理シートを作成したので公開する

Posted at

普段固定メンバーで麻雀を打つ中で、長期的に成績を管理できるものが欲しくなったので、スプレッドシートを用いて作成しました。せっかくなので、公開しようと思います。

1半荘終わりの得点を入力するだけで、

  • 30000点返しとウマを含んだ清算を自動で行い、
  • 総合成績と当日成績に反映する

という特徴があります。

↓スプレッドシート(閲覧のみ)

ダウンロード

こちらからダウンロードできます
https://docs.google.com/spreadsheets/u/1/d/187EWZpvF5d7TZxw0RqlPe6Q235rciJ5VTwxGPsZC_aA/copy

機能

  • 総合成績シート
    • 総合順位と総合成績を確認できる。
    • その他、トップ率や平均順位もわかる。
    • 成績をつけるメンバー(雀士)は増やすor減らすことができる。
  • 当日成績シート
    • 1半荘終わりの得点から自動で清算を行う。
    • 当日のトータル成績を表示する。
    • さらに、総合成績に自動で反映する。

使い方

こちらにまとめています。
https://docs.google.com/spreadsheets/d/1cHjgzEfywq4t4-P6taEn5blFH8bXteUJQies2Z0TkTA/edit#gid=1435940976

清算について

本管理シートでは、30000点返しのウマが1位:+50, 2位:+10, 3位:-10, 4位:-30で行っています。しかし、スプレッドシートに付随したGAS(Google Apps Script)のコードを変更することで、清算の計算方法を変えることができます。

例えば、順位ウマはcalc.gsにて変更可能です。

calc.gs
// 登録画面から情報を取得し、順位通りのリスト(["名前","成績"])を返す
function get_name_and_score() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = ss.getSheetByName('当日成績');
  const rank_uma = [50, 10, -10, -30]; // 順位ウマ
  
  let registration_list = sheet.getRange('A3:C6').getValues();

  // 点数と順位からリストの並び替え
  let registration_list_sorted = registration_list.sort((a, b) => b[1] - a[1] || a[2] - b[2]);

  // 順位から成績を計算し、順位を除く
  let result_list = registration_list_sorted.map(
    (item, index) => [item[0], (item[1] - 30000)/1000 + rank_uma[index]]
  );

  return result_list
}

その他具体的なコードはGitHubからも確認できます。

今後の改善点

  • エラー発生時の処理を追加する
  • ドキュメントの充実化
  • 清算方法をスプレッドシートから設定できるようにする
2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?