विजुअल बेसिक में एक टिक टीएसी को पैर की अंगुली खेल प्रोग्रामिंग

प्रोग्रामिंग कंप्यूटर गेम सबसे तकनीकी रूप से चुनौतीपूर्ण (और संभवतः सबसे अच्छा भुगतान) नौकरी हो सकती है कि ए प्रोग्रामर हो सकता है। शीर्ष स्तर के खेल को प्रोग्रामर और कंप्यूटर दोनों से सर्वश्रेष्ठ की आवश्यकता होती है।

मूल दृश्य 6 को अब गेम प्रोग्रामिंग के लिए एक मंच के रूप में अच्छी तरह से बाईपास किया गया है। (यह वास्तव में कभी नहीं था। "अच्छे राजभाषा दिवस" ​​में भी, गंभीर गेम प्रोग्रामर कभी भी VB 6 जैसी उच्च-स्तरीय भाषा का उपयोग नहीं करेंगे क्योंकि आप सिर्फ कटिंग नहीं कर सकते हैं किनारे के प्रदर्शन की सबसे अधिक आवश्यकता होती है।) लेकिन सरल "टिक टीएसी को पैर की अंगुली का खेल" प्रोग्रामिंग का एक अच्छा परिचय है जो थोड़ा और अधिक उन्नत है से "नमस्ते दुनिया!"

यह प्रोग्रामिंग की बुनियादी अवधारणाओं में से कई के लिए एक महान परिचय है क्योंकि इसमें तकनीकों को शामिल किया गया है:

  • का उपयोग सरणियों. एक्स और ओ मार्करों को अलग-अलग सरणियों में रखा जाता है और खेल की प्रगति का ट्रैक रखने के लिए कार्यों के बीच पूरे सरणियों को पारित किया जाता है।
  • VB 6 स्तर ग्राफिक्स का उपयोग करना: VB 6 महान चित्रमय क्षमता प्रदान नहीं करता है, लेकिन जो उपलब्ध है उसके लिए खेल एक अच्छा परिचय है। इस श्रृंखला के अधिकांश भाग में GDI +, Microsoft ग्राफिक्स की अगली पीढ़ी, VB 6 स्तर ग्राफिक्स की जगह, की खोज है।
    instagram viewer
  • कार्यक्रम नियंत्रण के लिए गणित की गणना का उपयोग करना: कार्यक्रम में चतुर मोडुलो (मॉड) और पूर्णांक का उपयोग किया जाता है एक तीन-तत्व "जीत" है, यह निर्धारित करने के लिए दो-गेम मार्कर सरणियों का उपयोग करके विभाजन की गणना हुई।

इस लेख में प्रोग्रामिंग की कक्षा शायद शुरुआत के स्तर से थोड़ा ही आगे है, लेकिन यह "मध्यवर्ती" प्रोग्रामर के लिए अच्छा होना चाहिए। लेकिन आइए, कुछ अवधारणाओं को चित्रित करने और आपको अपने साथ शुरू करने के लिए प्राथमिक स्तर पर शुरू करते हैं मूल दृश्य खेल प्रोग्रामिंग कैरियर। इससे भी अधिक उन्नत छात्रों को लग सकता है कि वस्तुओं को सिर्फ सही रूप में प्राप्त करना थोड़ा चुनौतीपूर्ण है।

टिक टीएसी को पैर की अंगुली कैसे खेलें

अगर आपने कभी नहीं खेला है टिक टैक् टो, यहाँ नियम हैं। X और Os को 3 x 3 खेल मैदान में रखने पर दो खिलाड़ी वैकल्पिक होते हैं।

खेल शुरू होने से पहले, दोनों खिलाड़ियों को इस बात पर सहमत होना होगा कि कौन पहले जाएगा और कौन किस प्रतीक के साथ अपनी चाल को चिह्नित करेगा। पहले कदम के बाद, खिलाड़ी बारी-बारी से किसी भी खाली सेल में अपने निशान लगाते हैं। खेल का लक्ष्य एक क्षैतिज, विकर्ण या ऊर्ध्वाधर रेखा में तीन अंकों के साथ पहला खिलाड़ी होना है। यदि कोई खाली सेल नहीं हैं और न ही खिलाड़ी के पास एक विजेता संयोजन है, तो खेल एक ड्रा है।

किसी भी वास्तविक कोडिंग को शुरू करने से पहले, आपके द्वारा उपयोग किए जाने वाले किसी भी घटक के नाम को बदलना हमेशा एक अच्छा विचार होता है। एक बार जब आप शुरू करते हैं कोडिंगनाम का उपयोग स्वचालित रूप से Visual Basic द्वारा किया जाएगा ताकि आप चाहते हैं कि यह सही नाम हो। हम फॉर्म नाम का उपयोग करेंगे frmTicTacToe और हम "Tic Tac Toe" के कैप्शन को भी बदल देंगे।

स्थापित फॉर्म के साथ, 3 x 3 ग्रिड खींचने के लिए लाइन टूलबॉक्स नियंत्रण का उपयोग करें। लाइन टूल पर क्लिक करें, फिर एक लाइन ड्रा करें जहाँ आप इसे चाहते हैं। आपको इस तरह से चार लाइनें बनानी होंगी और उन्हें सही दिखने के लिए उनकी लंबाई और स्थिति को समायोजित करना होगा। विज़ुअल बेसिक में प्रारूप मेनू के तहत कुछ सुविधाजनक उपकरण भी हैं जो मदद करेंगे। यह उनके साथ अभ्यास करने का एक शानदार मौका है।

प्लेइंग ग्रिड के अलावा, हमें X और O प्रतीकों के लिए कुछ ऑब्जेक्ट की आवश्यकता होगी जो ग्रिड पर रखे जाएंगे। चूंकि ग्रिड में नौ स्थान हैं, हम नौ स्थानों के साथ एक ऑब्जेक्ट ऐरे बनाएंगे, जिसे विज़ुअल बेसिक में तत्व कहा जाता है।

विजुअल बेसिक डेवलपमेंट के माहौल में सब कुछ करने के कई तरीके हैं, और कंट्रोल ऐरे बनाना कोई अपवाद नहीं है। संभवतया सबसे आसान तरीका पहला लेबल बनाना है (लाइन टूल की तरह ही क्लिक करें और ड्रा करें), इसे नाम दें, सभी विशेषताओं को सेट करें (जैसे कि फॉन्ट और फोरकोलर), और फिर इसकी प्रतियां बनाएं। VB 6 पूछेगा कि क्या आप एक कंट्रोल ऐरे बनाना चाहते हैं। पहले लेबल के लिए lblPlayGround नाम का उपयोग करें।

ग्रिड के अन्य आठ तत्वों को बनाने के लिए, पहले लेबल ऑब्जेक्ट का चयन करें, इंडेक्स प्रॉपर्टी को शून्य पर सेट करें, और CTRL + C (कॉपी) दबाएं। अब आप एक और लेबल ऑब्जेक्ट बनाने के लिए CTRL + V (पेस्ट) दबा सकते हैं। जब आप वस्तुओं को इस तरह से कॉपी करते हैं, तो प्रत्येक प्रतिलिपि पहले वाले से सूचकांक को छोड़कर सभी गुणों को प्राप्त कर लेगी। प्रत्येक प्रति के लिए सूचकांक में एक की वृद्धि होगी। यह एक नियंत्रण सरणी है क्योंकि इन सभी का नाम समान है, लेकिन विभिन्न सूचकांक मान हैं।

यदि आप इस तरह से ऐरे बनाते हैं, तो सभी प्रतियां फॉर्म के ऊपरी बाएं कोने में एक दूसरे के ऊपर खड़ी हो जाएंगी। प्रत्येक लेबल को एक खेल ग्रिड स्थिति में खींचें। सुनिश्चित करें कि सूचकांक मान ग्रिड में अनुक्रमिक हैं। कार्यक्रम का तर्क इस पर निर्भर करता है। सूचकांक मान 0 के साथ लेबल ऑब्जेक्ट शीर्ष बाएं कोने में होना चाहिए, और नीचे दाएं लेबल में सूचकांक 8 होना चाहिए। यदि लेबल प्लेइंग ग्रिड को कवर करते हैं, तो प्रत्येक लेबल का चयन करें, राइट-क्लिक करें, और सेंड टू बैक का चयन करें।

चूंकि गेम जीतने के आठ संभावित तरीके हैं, इसलिए हमें प्लेइंग ग्रिड पर जीत दिखाने के लिए आठ अलग-अलग लाइनों की आवश्यकता होगी। एक और नियंत्रण सरणी बनाने के लिए आप उसी तकनीक का उपयोग करेंगे। सबसे पहले, रेखा खींचें, इसे लिनविन नाम दें, और सूचकांक संपत्ति को शून्य पर सेट करें। फिर सात और लाइनों का उत्पादन करने के लिए कॉपी-पेस्ट तकनीक का उपयोग करें। निम्नलिखित चित्रण दिखाता है कि सूचकांक संख्याओं को सही तरीके से कैसे सेट किया जाए।

लेबल और लाइन ऑब्जेक्ट के अतिरिक्त, आपको गेम खेलने के लिए कुछ कमांड बटन की आवश्यकता होती है और स्कोर रखने के लिए अधिक लेबल। इन्हें बनाने के चरण यहाँ विस्तृत नहीं हैं, लेकिन ये ऐसी वस्तुएँ हैं जिनकी आपको आवश्यकता है।

दो बटन वस्तुओं:

  • cmdNewGame
  • cmdResetScore

फ़्रेम ऑब्जेक्ट fraPlayFirst जिसमें दो विकल्प बटन होते हैं:

  • optXPlayer
  • optOPlayer

फ़्रेम ऑब्जेक्ट fraScoreBoard जिसमें छह लेबल हैं। केवल lblXScore और lblOScore प्रोग्राम कोड में बदले जाते हैं।

  • lblX
  • lblXScore
  • lblO
  • lblOScore
  • lblMinus
  • lblColon

अंत में, आपको लेबल ऑब्जेक्ट lblStartMsg को cmdNewGame बटन को 'मास्क' करने की आवश्यकता होती है जब इसे क्लिक नहीं किया जाना चाहिए। यह नीचे दिए गए चित्रण में दिखाई नहीं देता है क्योंकि यह कमांड बटन के रूप में एक ही स्थान रखता है। प्रपत्र पर इस लेबल को खींचने के लिए आपको अस्थायी रूप से कमांड बटन को स्थानांतरित करना पड़ सकता है।

अब तक, कोई वीबी कोडिंग नहीं की गई है, लेकिन हम आखिरकार ऐसा करने के लिए तैयार हैं।

प्रारंभ

अब आप अंत में प्रोग्राम को कोड करना शुरू करते हैं। यदि आप पहले से ही नहीं हैं, तो आप प्रोग्राम के संचालन के बारे में बताने के लिए स्रोत कोड डाउनलोड करना चाहते हैं।

बनाने के लिए पहले डिजाइन निर्णयों में से एक यह है कि खेल के वर्तमान 'राज्य' का ट्रैक कैसे रखा जाए। दूसरे शब्दों में, प्लेइंग ग्रिड पर वर्तमान Xs और Os क्या हैं और कौन आगे बढ़ता है। बहुत सारी प्रोग्रामिंग में 'स्टेट' की अवधारणा महत्वपूर्ण है, और विशेष रूप से, यह वेब के लिए ASP और ASP.NET प्रोग्रामिंग में महत्वपूर्ण है

कई तरीके हैं जो यह किया जा सकता है, इसलिए यह विश्लेषण में एक महत्वपूर्ण कदम है। यदि आप इस समस्या को अपने आप हल कर रहे थे, तो आप किसी भी कोडिंग को शुरू करने से पहले एक फ्लोचार्ट खींच सकते हैं और 'स्क्रैच पेपर' के साथ विभिन्न विकल्पों को आज़मा सकते हैं।

हमारा समाधान दो "दो आयामी सरणियों" का उपयोग करता है, क्योंकि यह प्रोग्राम लूप्स में सरणी इंडेक्स को बदलकर 'राज्य' का ट्रैक रखने में मदद करता है। शीर्ष-बाएँ कोने की स्थिति अनुक्रमणिका (1, 1) के साथ सरणी तत्व में होगी, ऊपर-दाएँ कोने में (1, 3), नीचे-दाएँ-में (3,3), और इसके आगे होगा । ऐसा करने वाले दो सरणियाँ हैं:

iXPos (x, y)

तथा

iOPos (x, y)

इसके कई अलग-अलग तरीके हो सकते हैं और इस श्रृंखला में अंतिम VB.NET समाधान आपको दिखाता है कि यह केवल एक एकल-आयामी सरणी के साथ कैसे करें।

खिलाड़ी के निर्णयों में इन सरणियों का अनुवाद करने के लिए प्रोग्रामिंग और प्रपत्र में दृश्यमान प्रदर्शन अगले पृष्ठ पर हैं।

आपको निम्नानुसार कुछ वैश्विक चर भी चाहिए। ध्यान दें कि ये फॉर्म के लिए जनरल और डिक्लेरेशन कोड में हैं। यह उन्हें बनाता है "मॉड्यूल स्तर" चर जो इस फॉर्म के कोड में कहीं भी संदर्भित किए जा सकते हैं। इस पर अधिक जानकारी के लिए, Visual Basic सहायता में चर के दायरे को समझना।

हमारे कार्यक्रम में ऐसे दो क्षेत्र हैं, जहाँ चर को आरंभ किया जाता है। सबसे पहले, कुछ वेरिएबल्स को इनिशियलाइज़ किया जाता है जबकि फॉर्म frmTicTacToe लोड हो रहा है।

निजी उप Form_Load ()

दूसरा, प्रत्येक नए गेम से पहले, सभी वैरिएबल जिन्हें शुरू करने के लिए रीसेट करने की आवश्यकता होती है, उन्हें एक इनिशियलाइज़ेशन सबरूटीन में असाइन किया जाता है।

उप InitPlayGround ()

ध्यान दें कि फॉर्म लोड आरंभीकरण भी खेल का मैदान आरंभीकरण कहता है।

एक प्रोग्रामर के महत्वपूर्ण कौशल में से एक डिबगिंग सुविधाओं का उपयोग करने की क्षमता है यह समझने के लिए कि कोड क्या कर रहा है। आप इस कार्यक्रम का उपयोग करने की कोशिश कर सकते हैं:

  • F8 कुंजी के साथ कोड के माध्यम से कदम
  • मुख्य चर जैसे कि SPlaySign या iMove पर एक घड़ी सेट करना
    एक विराम बिंदु सेट करना और चरों का मान क्वेरी करना। उदाहरण के लिए, आरंभीकरण के आंतरिक लूप में:
lblPlayGround ((i - 1) * 3 + j - 1) .कैप्शन = ""

ध्यान दें कि यह कार्यक्रम स्पष्ट रूप से दिखाता है कि जब भी संभव हो तो सरणियों में डेटा रखना एक अच्छा प्रोग्रामिंग अभ्यास है। यदि आपके पास इस कार्यक्रम में सरणियाँ नहीं हैं, तो आपको कोड कुछ इस तरह लिखना होगा:

पंक्ति०.विशेष = मिथ्या
पंक्ति १.विशेष = मिथ्या
पंक्ति २.विशेष = मिथ्या
पंक्ति ३.विशेष = मिथ्या
पंक्ति ४.विशेष = मिथ्या
पंक्ति ५.विशेष = मिथ्या
पंक्ति ६.विशेष = मिथ्या
पंक्ति Line.विशेष = मिथ्या

इसके अलावा:

I = 0 से 7 के लिए
linWin (i)। अदृश्य = गलत
अगला मैं

एक चाल चल रहा है

अगर सिस्टम के किसी भी हिस्से को 'दिल' के रूप में सोचा जा सकता है, तो यह सबरलाइन लैब्लेप्लेग्रेड_क्लिक है। जब भी कोई खिलाड़ी प्लेइंग ग्रिड पर क्लिक करता है, तो उसे सबरूटीन कहा जाता है। (क्लिक नौ lblPlayGround तत्वों में से एक के अंदर होना चाहिए।) ध्यान दें कि इस सबरूटीन में एक तर्क है: (Index As Integer)। CmdNewGame_Click () जैसे अन्य 'इवेंट सबरूटीन्स' में से अधिकांश नहीं। सूचकांक इंगित करता है कि किस लेबल ऑब्जेक्ट पर क्लिक किया गया है। उदाहरण के लिए, सूचकांक में ग्रिड के ऊपरी-बाएँ कोने के लिए मान शून्य और नीचे-दाएँ कोने के लिए मूल्य आठ होगा।

एक खिलाड़ी द्वारा खेल ग्रिड में एक वर्ग पर क्लिक करने के बाद, एक और गेम शुरू करने के लिए कमांड बटन, cmdNewGame, इसे दिखाई देकर "चालू" किया जाता है। इस कमांड बटन की स्थिति डबल ड्यूटी करती है क्योंकि इसे बाद में प्रोग्राम में बूलियन निर्णय चर के रूप में भी उपयोग किया जाता है। एक प्रॉपर्टी वैल्यू को एक निर्णय चर के रूप में उपयोग करना आमतौर पर हतोत्साहित किया जाता है क्योंकि अगर कभी भी प्रोग्राम को बदलना आवश्यक हो जाता है (उदाहरण के लिए, बनाने के लिए) cmdNewGame कमांड बटन हर समय दिखाई देता है), फिर प्रोग्राम अप्रत्याशित रूप से विफल हो जाएगा क्योंकि आपको याद नहीं होगा कि यह प्रोग्राम के हिस्से के रूप में भी उपयोग किया जाता है तर्क। इस कारण से, प्रोग्राम कोड के माध्यम से खोज करना और प्रोग्राम मेंटेनेंस, प्रॉपर्टी वैल्यूज करते समय आपके द्वारा परिवर्तित किसी भी चीज के उपयोग की जांच करना हमेशा एक अच्छा विचार है। यह कार्यक्रम इस बिंदु को बनाने के लिए आंशिक रूप से नियम का उल्लंघन करता है और आंशिक रूप से क्योंकि यह कोड का एक अपेक्षाकृत सरल टुकड़ा है जहां यह देखना आसान है कि क्या किया जा रहा है और बाद में समस्याओं से बचें।

एक गेम स्क्वायर के एक खिलाड़ी चयन को तर्क के रूप में इंडेक्स के साथ गेमप्ले सबरूटीन को कॉल करके संसाधित किया जाता है।

चाल को संसाधित करना

सबसे पहले, आप यह देखने के लिए जाँच करें कि क्या एक खाली वर्ग क्लिक किया गया था।

यदि lblPlayGround (xo_Move) .Caption = "" तब

एक बार हमें यकीन है कि यह एक वैध कदम है, चाल काउंटर (iMove) बढ़ा हुआ है। अगली दो पंक्तियाँ बहुत दिलचस्प हैं क्योंकि वे एक-आयामी से निर्देशांक का अनुवाद करते हैं यदि lblPlayGround घटक सरणी को दो-आयामी अनुक्रमित करें जिसे आप iXPos या iOPos में उपयोग कर सकते हैं। मॉड और पूर्णांक विभाजन ('बैकस्लैश') ऐसे गणितीय संक्रियाएं हैं जिनका आप हर दिन उपयोग नहीं करते हैं, लेकिन यहाँ एक शानदार उदाहरण है कि वे कैसे बहुत उपयोगी हो सकते हैं।

यदि lblPlayGround (xo_Move) .Caption = "" तब
iMove = iMove + 1
x = Int (xo_Move / 3) + 1
y = (xo_Move Mod 3) + 1

Xo_Move मान 0 (1, 1), 1 से (1, 2) में अनुवादित किया जाएगा... 3 से (2, 1)... 8 से (3, 3)।

SPlaySign में मान, मॉड्यूल स्कोप के साथ एक वैरिएबल, ट्रैक रखता है कि किस खिलाड़ी ने चाल बनाई। एक बार जब चाल सरणियों को अपडेट किया जाता है, तो प्ले ग्रिड में लेबल घटकों को उचित संकेत के साथ अपडेट किया जा सकता है।

यदि sPlaySign = "O" तब
iOPos (x, y) = 1
iWin = चेकविन (iOPos ())
अन्य
iXPos (x, y) = 1
iWin = CheckWin (iXPos ())
अगर अंत
lblPlayGround (xo_Move)। कैप्शन = sPlaySign

उदाहरण के लिए, जब X खिलाड़ी ग्रिड के ऊपरी बाएँ कोने पर क्लिक करता है, तो चर में निम्न मान होंगे:

उपयोगकर्ता स्क्रीन ऊपरी बाएँ बॉक्स में केवल एक X दिखाता है, जबकि iXPos में ऊपरी बाएँ बॉक्स में 1 और अन्य सभी में 0 होता है। IOPos के हर बॉक्स में 0 है।

जब ओ खिलाड़ी ग्रिड के केंद्र वर्ग पर क्लिक करता है तो मान बदल जाता है। अब th iOPos केंद्र बॉक्स में 1 दिखाता है जबकि उपयोगकर्ता स्क्रीन ऊपरी बाईं ओर एक X और केंद्र बॉक्स में O दिखाता है। IXPos ऊपरी बाएं कोने में केवल 1 को दिखाता है, अन्य सभी बॉक्स में 0 है।

अब जब आप जानते हैं कि किसी खिलाड़ी ने कहां क्लिक किया था, और किस खिलाड़ी ने क्लिक किया था (मूल्य का उपयोग करके) sPlaySign), आप सभी को यह पता लगाना है कि क्या कोई गेम जीता है और यह पता लगाएगा कि उसे कैसे दिखाना है प्रदर्शित करते हैं।

एक विजेता ढूँढना

प्रत्येक चाल के बाद, CheckWin फ़ंक्शन विजेता संयोजन के लिए जांच करता है। चेकविइन प्रत्येक पंक्ति को प्रत्येक स्तंभ के नीचे और प्रत्येक विकर्ण के माध्यम से जोड़कर काम करता है। विजुअल बेसिक की डिबग सुविधा का उपयोग करके चेकविइन के माध्यम से चरणों को ट्रेस करना बहुत शैक्षिक हो सकता है। जीत पाना पहले की बात है, यह जाँचना कि क्या तीन में से प्रत्येक को अलग-अलग जाँचों में चर iScore में पाया गया था, और फिर चेकविन में एक अद्वितीय "हस्ताक्षर" मान लौटाया जा रहा है, जिसका उपयोग लिनेन में एक तत्व की दृश्यमान संपत्ति को बदलने के लिए सरणी सूचकांक के रूप में किया जाता है घटक सरणी। यदि कोई विजेता नहीं है, तो CheckWin में मान -1 होगा। यदि कोई विजेता है, तो डिस्प्ले अपडेट किया जाता है, स्कोरबोर्ड को बदल दिया जाता है, एक बधाई संदेश प्रदर्शित किया जाता है, और खेल को फिर से शुरू किया जाता है।

आइए विस्तार से देखें कि यह कैसे काम करता है। अन्य समान हैं।

'3 के लिए पंक्तियों की जाँच करें
I = 1 से 3 के लिए
iScore = 0
चेकविन = चेकविन + १
J = 1 से 3 के लिए
iScore = iScore + iPos (i, j)
अगला जे
अगर iScore = 3 तब
कार्य से बाहर निकलें
अगर अंत
अगला मैं

ध्यान देने वाली पहली बात यह है कि पहला इंडेक्स काउंटर मैं पंक्तियों को गिनता है जबकि दूसरा जे कॉलम के पार गिनता है। बाहरी लूप, फिर बस एक पंक्ति से दूसरी पंक्ति में जाता है। आंतरिक लूप वर्तमान पंक्ति में 1 की गणना करता है। यदि तीन हैं, तो आपके पास एक विजेता है।

ध्यान दें कि आप चर की कुल संख्या पर भी नज़र रख सकते हैं जो कि CheckWin में परीक्षण किए गए हैं, जो कि यह फ़ंक्शन समाप्त होने पर वापस दिया गया मान है। प्रत्येक जीतने वाला संयोजन 0 से 7 तक चेकविइन में एक अनूठे मूल्य के साथ समाप्त होगा जिसका उपयोग लिनविन () घटक सरणी में से किसी एक तत्व को चुनने के लिए किया जाता है। यह फ़ंक्शन के कोड का क्रम बनाता है CheckWin भी महत्वपूर्ण है! यदि आप के ब्लॉक में से एक चले गए लूप कोड (जैसे ऊपर वाला), किसी के जीतने पर गलत लाइन को प्ले ग्रिड पर खींचा जाएगा। यह कोशिश करो और देखो!

समापन विवरण

अभी तक चर्चा नहीं किया गया एकमात्र कोड एक नए गेम के लिए सबरूटीन है और सबरूटीन जो स्कोर को रीसेट करेगा। सिस्टम में बाकी तर्क इनको काफी आसान बनाते हैं। एक नया गेम शुरू करने के लिए, आपके पास केवल InitPlayGround सबरूटिन को कॉल करना होगा। खिलाड़ियों के लिए एक सुविधा के रूप में बटन को एक खेल के बीच में क्लिक किया जा सकता है, आप आगे जाने से पहले पुष्टि के लिए पूछते हैं। आप स्कोरबोर्ड को पुनः आरंभ करने से पहले पुष्टि के लिए भी पूछते हैं।