ゴルフのホール別ハンディキャップストローク計算
18ホールでコースハンディキャップが20なら、全ホールで1打ずつ、インデックス1と2のホールではさらに1打を受け取ります。ハンディとカードのインデックス順を入力するだけで、ホール別の配分が分かります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- コースハンディキャップ
- 20
- 穴の数
- 18
- 1ホールあたりの全ストローク
- 1
- 追加ストローク
- 2
- 受け取る合計ストローク
- 20
この計算ツールは、符号付きコースハンディキャップとコースのストロークインデックス列から、ホールごとの配分を明確に算出します。9ホールと18ホールのラウンド、ホール数を超えるハンディキャップ、スクラッチプレーヤー、打数を与えるプラスハンディキャップに対応します。結果には各ホールの番号、インデックス、符号付き配分、およびラウンド合計が表示されます。外部のコース情報を参照しない決定論的な計算ですので、公式スコアカードに印刷された順序をそのままご利用いただけます。
ハンディキャップとスコアカードのインデックスを入力します
ラウンドまたはマッチに適用する符号付きコースハンディキャップから始めます。打数を受ける場合は正数、調整なしは0、打数を与えるプラスプレーヤーは負数をご入力ください。次に、スコアカードのホール順でインデックスを入力します。
18ホールでは1から18、9ホールでは1から9の各整数が1回ずつ必要です。配列の最初は1番ホール、次は2番ホールに対応します。インデックス1は最初に打数を配分するホールを示し、統計上もっとも難しいホールとは限りません。
委員会はマッチ全体で公平に配分できるよう順序を定めます。本ツールはパー、距離、難易度から順序を推測しません。使用するティーや競技の公式カードを転記してください。
欠落、重複、範囲外の値、または9・18以外の件数は、自動修正せずエラーとしてお知らせします。
打数の配分方法を確認します
正のハンディキャップでは、ホール数の完全な倍数ごとに全ホールへ1打ずつ配分し、余りをインデックス1から順に加えます。たとえば18ホールで20なら全ホールに1打、インデックス1と2には2打目です。7なら1から7だけに1打を配分します。
38なら全ホールに2打、1と2に3打目となります。負のハンディキャップは打数を与えるため、ホール別の値も負です。余りは高いインデックスから始まり、-2なら17と18に各-1を配分します。
0では全ホールが0です。共通打数は全ホールの基本配分を、符号付き余りは追加配分数を示します。ホール別の値を合計すると、入力したコースハンディキャップと常に正確に一致します。
スコアカードや試合システムで結果を使います
プレー順のホール一覧を読み、スコアカード、マッチシート、スコア画面の該当ホールに受ける打数を記載します。0は調整なし、1は1打受ける、2は2打受ける、-1は1打与えることを表します。本ツールは入力値を配分するもので、Handicap Indexの算出、Slope Ratingの適用、アローワンス率の選択、2人の差の計算は行いません。
競技固有の計算を先に行い、最終的な符号付き数値をご入力ください。個人マッチプレーでは通常、プレーイングハンディキャップ差を求めてから配分します。チーム戦、異なるティー、9ホール調整では別の事前計算が必要な場合があるため、公式競技条件を優先してください。
活用例
マッチプレー用カードの準備
開始前に、合意したプレーイングハンディキャップ差を各ホールへ配分できます。
スコア画面の構築
公式インデックス順から、再現可能なホール別ハンディキャップ値を生成できます。
複数打の配分確認
ハンディキャップがホール数を超える場合に、2打目や3打目の位置を確認できます。
よくある質問
どのハンディキャップを入力すればよいですか?
競技方式で確定した符号付きコースハンディキャップ、プレーイングハンディキャップ差、または最終アローワンスをご使用ください。Handicap Indexからの算出は行いません。
18を超える場合はどうなりますか?
18の完全なブロックごとに全ホールへ1打を配分し、余りはインデックス1から再開します。9ホールでは9単位で同じ規則です。
プラスハンディキャップには対応しますか?
負数としてご入力ください。完全なブロックは全ホールで負の打数となり、余りは高いインデックスから与えます。
インデックスを数値順に入力しますか?
いいえ。 カードのホール順で入力してください。1から9または1から18までを重複なく完全に含める必要があります。
インデックス1は常に最難関ホールですか?
必ずしもそうではありません。これはハンディキャップ配分順であり、平均難易度以外の要素も反映されます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/hobby/sport-golf-strokes-received \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"course_handicap":20,"stroke_indexes":[10,2,14,6,18,8,4,12,16,9,1,13,5,17,7,3,11,15]}'const res = await fetch("https://api.kit.forhosting.com/hobby/sport-golf-strokes-received", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"course_handicap": 20,
"stroke_indexes": [
10,
2,
14,
6,
18,
8,
4,
12,
16,
9,
1,
13,
5,
17,
7,
3,
11,
15
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/hobby/sport-golf-strokes-received",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"course_handicap": 20,
"stroke_indexes": [
10,
2,
14,
6,
18,
8,
4,
12,
16,
9,
1,
13,
5,
17,
7,
3,
11,
15
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/hobby/sport-golf-strokes-received", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"course_handicap":20,"stroke_indexes":[10,2,14,6,18,8,4,12,16,9,1,13,5,17,7,3,11,15]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"course_handicap":20,"stroke_indexes":[10,2,14,6,18,8,4,12,16,9,1,13,5,17,7,3,11,15]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/hobby/sport-golf-strokes-received", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"course_handicap": 20,
"stroke_indexes": [
10,
2,
14,
6,
18,
8,
4,
12,
16,
9,
1,
13,
5,
17,
7,
3,
11,
15
]
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "hobby.sport_golf_strokes_received",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_holes | 18 |
max_absolute_handicap | 54 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
スコアカードや試合システムで結果を使います
正しい数値が決まれば、表示や保存に適した安定したJSONを取得できます。ブラウザーでは無料で、APIリクエストは$0.002です。
技術的な質問
API計算の料金はいくらですか?
APIリクエスト1回は$0.002です。ブラウザー版は無料でご利用いただけます。