حلّل صيغة توقيت الشطرنج واحسب أقصى مدة للمباراة
تجمع ضوابط الوقت مثل 90+30 إعدادين مهمين للساعة: الدقائق الابتدائية المتاحة لكل لاعب، والثواني التي تضاف بعد كل نقلة.
شغّل الأداة مجانًا
تفصل هذه الحاسبة القيمتين وتقدّر أقصى وقت متاح على ساعتي اللاعبين لعدد محدد من النقلات الكاملة. يمكنكم استخدامها لتخطيط جولات البطولة، ومقارنة أنظمة اللعب، وتوثيق فعالية، أو التحقق من الصيغة قبل إدخالها في برنامج التزويج أو في جدول زمني منشور.
اقرؤوا صيغة الوقت الأساسي والزيادة قراءة صحيحة
تعني الصيغة 90+30 أن كل لاعب يبدأ بـ90 دقيقة ويحصل على 30 ثانية إضافية بعد إتمام كل نقلة. تُفسَّر القيمة السابقة لعلامة الجمع هنا على أنها عدد صحيح من الدقائق، وتُفسَّر القيمة اللاحقة لها على أنها عدد صحيح من الثواني. أدخلوا الصيغة من دون مسافات أو كلمات أو كسور عشرية أو مراحل إضافية. تقبل الأداة عمدًا شكلاً واحدًا واضحًا بدلاً من تخمين معنى إدخال تقريبي. لذلك تكون 5+3 و15+10 و90+30 صيغًا لا لبس فيها، بينما تحتاج عبارة مثل «سريع 15» أو أنظمة الوقت متعددة المراحل إلى قواعد غير موجودة في النص. تكرر النتيجة الصيغة وتعرض base_minutes وincrement_seconds كلًّا على حدة، مما يسهّل التحقق والحفظ والاستخدام في حساب حتمي آخر. أما النص غير الصحيح فيعيد خطأ إدخال صريحًا بدلاً من تفسير يبدو معقولاً وهو خاطئ.
افهموا طريقة حساب المدة القصوى
يراعي التقدير ساعتي اللاعبين. يُضاعف الوقت الابتدائي أولاً لأن كلاً من الأبيض والأسود يحصل على الدقائق المحددة. ثم تُضرب الزيادة في عدد النقلات المطلوب وفي اثنين مرة أخرى، لأن النقلة الكاملة تشمل حركة للأبيض وحركة للأسود. عند 40 نقلة، يضم نظام 90+30 حصتين ابتدائيتين وما يصل إلى 80 إضافة. تُعرض النتيجة بالثواني للعمليات الدقيقة وبالدقائق لسهولة القراءة. وهي حد أقصى مبني على الوقت المخصص في الساعتين، وليست تنبؤًا بالمدة الفعلية للجلوس أمام الرقعة. فقد تنتهي المباراة مبكرًا، وقد يلعب الطرفان قبل استهلاك كامل الوقت، وقد تطيل التوقفات التنظيمية زمن الفعالية. ويفترض الحساب أيضًا أن كل حركة معدودة تنال الزيادة المحددة؛ ولا يحاكي نظام التأخير أو العقوبات أو خسارة الوقت أو الزيادة التي تبدأ بعد نقلة بعينها.
استخدموا النتيجة في التخطيط والتحقق
يمكن لمنظمي البطولات اعتماد القيمة القصوى أساسًا حذرًا للفاصل بين الجولات، مع إضافة وقت مستقل لإعادة ترتيب القطع ونشر التزويج وانتقال اللاعبين وقرارات الحكام والاستراحات. ويمكن للمطورين تحليل الصيغة عند نقطة الإدخال وحفظ مكونيها الرقميين بدلاً من تقسيم النص نفسه في مواضع متعددة من التطبيق. كما يستطيع الناشرون التأكد من اتساق عدد النقلات المعلن مع الجدول. يشير move_count إلى نقلات كاملة لكل لاعب لا إلى أنصاف النقلات؛ فالقيمة 40 تمثل حتى 40 حركة للأبيض و40 للأسود. يجب أن تكون القيم أعدادًا صحيحة ضمن الحدود المنشورة، مع علامة جمع واحدة بالضبط. يجوز أن يكون الوقت الأساسي أو الزيادة صفرًا إذا كان المكون الآخر موجبًا، ولذلك تُقبل 0+1 و10+0. أما 0+0 فمرفوضة لأنها لا توفر وقتًا صالحًا للعب.
حالات الاستخدام
خططوا للفواصل بين جولات البطولة
قدّروا أقصى وقت متاح على ساعتي اللاعبين، ثم أضيفوا الهوامش التشغيلية اللازمة لإعداد جدول واقعي.
تحققوا من مدخلات برنامج التزويج
ارفضوا الصيغ غير الصحيحة قبل حفظها أو تمرير مكوناتها المحللة إلى برنامج إدارة الفعالية.
قارنوا بين أنظمة اللعب
احسبوا ضوابط مختلفة عند عدد النقلات نفسه لمقارنة أقصى وقت مخصص على أساس موحد.
الأسئلة الشائعة
ماذا تعني 90+30 في الشطرنج؟
يبدأ كل لاعب بـ90 دقيقة ويحصل على 30 ثانية إضافية بعد إتمام كل نقلة.
هل يمثل move_count أنصاف النقلات أم النقلات الكاملة؟
يمثل النقلات الكاملة لكل لاعب. فالقيمة 40 تعني 40 حركة للأبيض و40 للأسود، بما يصل إلى 80 إضافة.
هل تتنبأ النتيجة بالمدة الفعلية للجولة؟
لا. إنها أقصى مدة مخصصة على الساعتين؛ أما هوامش الجدولة والتوقفات خارج الساعة فتُحسب منفصلة.
هل يمكن أن يكون الوقت الأساسي أو الزيادة صفرًا؟
نعم، بشرط أن يكون المكون الآخر موجبًا. تُقبل 0+1 و10+0، بينما تُرفض 0+0.
هل تدعم الأداة ضوابط الوقت متعددة المراحل؟
لا. يحلل البرنامج مرحلة واحدة من الوقت الأساسي والزيادة؛ ويتطلب منح وقت بعد نقلة معينة صيغة أغنى.
ما كلفة طلب API؟
تبلغ كلفة كل طلب API مقدار $0.002. ويمكن تنفيذ الحساب الحتمي نفسه في المتصفح عندما يكون متاحًا.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/misc2/chess-clock-time-control \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"time_control":"90+30","move_count":40}'const res = await fetch("https://api.kit.forhosting.com/misc2/chess-clock-time-control", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"time_control": "90+30",
"move_count": 40
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/misc2/chess-clock-time-control",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"time_control": "90+30",
"move_count": 40
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/misc2/chess-clock-time-control", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"time_control":"90+30","move_count":40}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"time_control":"90+30","move_count":40}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/misc2/chess-clock-time-control", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"time_control": "90+30",
"move_count": 40
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "misc2.chess_clock_time_control",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |