アジアリーグアイスホッケーの集計システムは約20年前に私が作り、それからずっとメンテナンスしています。
今期のプレイオフが4月4日に始まったのですが、夜に「ゲームシートが登録できません!」というメールと電話がありました。よくある事ですが担当者から電話が来たのは久しぶりです。
担当者もいろいろ試してくれ「試合時間が100分を超えたのが原因ですかね?」というメールが来ました。
え〜 😲❗
いらすとやのイラスト
アイスホッケーの試合
アイスホッケーに馴染みのない方も多いと思います。アイスホッケーは、
大枠ではサッカーに似てると思います。詳しくは、Wikipediaの「アイスホッケー」を見て下さい。
試合時間は、以前のアジアリーグでは
- 第1ピリオド: 20分間の試合
- 第2ピリオド: 20分間の試合
- 第3ピリオド: 20分間の試合
- オーバータイム: 第1〜3ピリオドの合計点が同じだった場合、5分間の延長戦
ピリオドの間に休憩はありまが、その時間はゲームシートでは無視されるので、ゲームシート上は試合時間は60分か65分でした。
その後、引き分けを避けようということで、オーバータイム後でも同点だった場合は、PK戦(アイスホッケー用語ではペナルティ・ショット・シュートアウト)が行われるようになりました、PK戦の時間も試合時間には入りません。
今回の試合ルールとシステム
2023-2024シーズンのプレイオフでは、試合ルールを変え、オーバータイムはどちらかがゴールするまで、時間制限なしにしたそうです!
ちなみに、このルール変更がある事の事前連絡がありませんでした。 そして、オーバータイムが103分35秒まで実施されました! 今回のゲームシート
集計システムは、試合時間は99分59秒までという仕様で作られていたので、100分以上は入力出来ないようになっていました。
今までは試合時間は最大65分だったので全く問題ありませんでした。😃
対応
とりあえず、100分以上を受け付けるように変更しました。すると集計が正しく動作しませんでした、103分35秒のゴールが第1ピリオドに集計されてしまいました。
システム内部では、時間は MM:SS
という5文字の文字列で時間を管理していました。MM
、SS
の部分はゼロサプレスされないので、時間の大小は文字列の大小比較で上手く行っていました。
しかし、103分35秒のゴールは、 文字列の比較なので 103:35
< 20:00
となってしまいます。😅
ということで、その日は暫定的な対応を行い、翌日に正式な対応を行いました。
まとめ
アイスホッケーの運営を行っている方々も、まさかシステムが100分以上を受け付けないとは知らなったでしょうし、オーバータイムの試合を43分も行うとは思ってなかったでしょうね。
ソフトウェアの変更箇所は、それほど多くなくすみまました。またテストコードがあるので、今回の修正によるデグレードは発生してないようです。