एक चेकबॉक्स बनाएँ


51

एक प्रोग्राम लिखें जो एक दो-राज्य चेकबॉक्स बनाता है जिसे लोग माउस का उपयोग करके बातचीत कर सकते हैं।

विशेष रूप से, आपके कार्यक्रम को निम्नलिखित में से सभी को प्राप्त करना चाहिए:

  1. स्क्रीन का एक 8 × 8 पिक्सेल (या यदि वांछित है) बड़ा क्षेत्र है जो चेकबॉक्स का क्लिक करने योग्य क्षेत्र है। इसके बाद इस क्षेत्र को बस चेकबॉक्स कहा जाता है।

  2. जब माउस कर्सर को चेकबॉक्स के भीतर ले जाया जाता है और डिफ़ॉल्ट * माउस बटन दबाया जाता है, तो चेकबॉक्स को राज्यों को टॉगल करना चाहिए।
    जाँच अनियंत्रित हो जाती है। अनियंत्रित जाँच हो जाती है।

  3. जब यह टॉगल किया जाता है तो चेकबॉक्स हिलना नहीं चाहिए।

  4. जाँच की गई स्थिति में, चेकबॉक्स कोई भी रंग हो सकता है।

  5. अनियंत्रित स्थिति में, चेकबॉक्स किसी भी रंग का हो सकता है जब तक कि कम से कम 16 पिक्सेल चेक किए गए राज्य से नेत्रहीन अलग न हों

  6. एक ही कार्यक्रम के उदाहरण में, सभी जाँच किए गए राज्य एक दूसरे के समान होने चाहिए और सभी अनियंत्रित राज्य एक दूसरे के समान होने चाहिए।

  7. जब तक यह स्पष्ट रूप से समाप्त नहीं हो जाता है (जैसे निकास बटन या Alt + F4 के माध्यम से) कार्यक्रम समाप्त न करें, इसलिए एक उपयोगकर्ता जितना चाहे उतना चेकबॉक्स पर क्लिक कर सकता है।

* आप मान सकते हैं कि डिफ़ॉल्ट माउस बटन हमेशा बाएं क्लिक होता है, लेकिन माउस सॉफ्टवेयर या ओएस द्वारा परिभाषित डिफ़ॉल्ट का उपयोग करना भी ठीक है, जो उपयोगकर्ता के आधार पर वास्तव में क्लिक नहीं हो सकता है।

टिप्पणियाँ

  • इससे कोई फर्क नहीं पड़ता कि आपके चेकबॉक्स क्षेत्र के बाहर क्या है। यह सिर्फ डेस्कटॉप हो सकता है। यह एक कंसोल का एक हिस्सा हो सकता है जो हर टॉगल पर बदलता है।

  • इससे कोई फर्क नहीं पड़ता कि आपका चेकबॉक्स किस राज्य में शुरू होता है।

  • चेकबॉक्स क्षेत्र में 8 × 8 पिक्सेल से अधिक या उससे अधिक आयाम हो सकते हैं। यह वर्ग की आवश्यकता नहीं है।

  • आप सेटिंग्स के लिए मामूली भत्ते बना सकते हैं जो आपके नियंत्रण से बाहर हैं जैसे कंसोल फ़ॉन्ट आकार, ब्राउज़र ज़ूम, मॉनिटर रिज़ॉल्यूशन, आदि। जब तक आपका प्रोग्राम एक उचित परीक्षण सेटिंग में काम करता है तब तक यह मान्य होना चाहिए।

  • यदि आपका प्रोग्राम एक विंडो खोलता है, तो आप यह मान सकते हैं कि यदि आवश्यक हो (जैसे शीर्ष बाएँ कोने) स्क्रीन पर इसे एक उपयुक्त स्थान पर खींच लिया गया है।

  • आप मार्कअप भाषाओं जैसे कि HTML या अन्य भाषाओं का उपयोग कर सकते हैं जिन्हें हम आमतौर पर पूर्ण-विकसित प्रोग्रामिंग भाषाओं के रूप में नहीं मानते हैं।

  • डिफ़ॉल्ट माउस बटन का उपयोग करके आपका चेकबॉक्स टॉगल होना चाहिए। यह ठीक है अगर यह माउस गति के अपवाद के साथ इनपुट के अन्य रूपों (जैसे सही माउस बटन) के लिए भी टॉगल करता है । यदि माउस को केवल चेकबॉक्स के भीतर ले जाया जाता है, तो राज्य को नहीं बदलना चाहिए।

  • कार्रवाई में आपके चेकबॉक्स के स्क्रीनशॉट को अत्यधिक प्रोत्साहित किया जाता है!

स्कोरिंग

बाइट्स में सबसे छोटा कोड जीतता है।

उदाहरण

23 बाइट्स में एक कैनोनिकल HTML उदाहरण।

<input type="checkbox">

Google Chrome में मेरे लिए, यह 12 × 12 पिक्सेल का चेकबॉक्स बनाता है और लगभग 30 पिक्सेल स्पष्ट रूप से चेक किए गए और अनियंत्रित राज्यों के बीच बदलते हैं।

मैं भत्ता बनाता हूं कि ब्राउज़र ज़ूम 100% पर है।


2
क्या चेकबॉक्स पूरी स्क्रीन को कवर कर सकता है?
कृति लिथोस

@KritiiLithos हाँ, यह मान्य होगा। यह ध्यान दें कि यदि आप चाहें, तो एक विशेष 8x8 क्षेत्र को आधिकारिक चेकबॉक्स के रूप में गिना जा सकता है, भले ही एक बड़ा क्षेत्र काम करता हो।
केल्विन के शौक

@ हेलका होम्बा - क्या यह ऐप को अन्य नियंत्रणों को प्रदर्शित करने की अनुमति देता है, चेकबॉक्स को एक तरफ?
ज़ेपेलिन

क्या अन्य प्रकार के इनपुट पर चेकबॉक्स को टॉगल करना ठीक है? (उदाहरण के लिए, क्या कोई समाधान सही है, अगर चेकबॉक्स उपयोगकर्ता इनपुट के किसी भी प्रकार पर टॉगल करता है, चाहे वह माउस क्लिक, माउस आंदोलन, या कीपर हो; यह माउस क्लिक पर टॉगल करेगा, लेकिन यह टॉगल करेगा अन्य उत्तेजनाएं भी।)

1
@zeppelin "इससे कोई फर्क नहीं पड़ता कि आपके चेकबॉक्स क्षेत्र के बाहर क्या है। यह सिर्फ डेस्कटॉप हो सकता है। यह एक कंसोल का एक हिस्सा हो सकता है जो हर टॉगल पर बदलता है।" इसलिए, जब तक चेकबॉक्स है, तब तक यह मायने नहीं रखता कि और क्या है।
केल्विन के शौक

जवाबों:


33

गणितज्ञ, 10 बाइट्स

Checkbox[]

गणित का नोटबुक वातावरण ग्रहण करता है

दो राज्य इस तरह दिखते हैं:

यहाँ छवि विवरण दर्ज करें


73
ज़रूर। गणितज्ञ फिर धोखा देता है।
मैथ्यू रो

1
यह मजेदार है कि टिप्पणी में उत्तर की तुलना में अधिक उत्थान है
रुडोल्फजेलिन

4
@ RudolfL.Jelínek यह मजेदार है कि उत्तर में किसी भी तरह का उत्थान है ...
मार्टिन एंडर

31

HTML, 20 बाइट्स

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

<input type=checkbox


3
मैं इसे पहले (बिना उद्धरण के) एक विकल्प के रूप में देख रहा था लेकिन पूरी तरह से बंद होने से चूक गया >। +1 और मान्य IMHO।
ElPedro

1
इस साइट पर, भाषाएं उनके कार्यान्वयन से परिभाषित होती हैं, इसलिए यह मुझे ठीक लगता है।
जॉन

1
धन्यवाद @ जॉनहॉवर्स, मैं इस परिभाषा के बारे में सोच रहा हूं कि कितना दुरुपयोग स्वीकार्य है।
जनवरी

27

बैश , 67 55 50 35 32 31 बाइट्स

:()(read -p$[i^=1]
›?9h -sn6
:)

कोड में एक सीआर बाइट (पहली नई पंक्ति) और एक सीएसआई बाइट (विंडोज -122 एन्कोडिंग के साथ छोटा दायां कोण ब्रैकेट) है। इसके लिए xterm (या समतुल्य) और ISO-8859-1 एन्कोडिंग (या समान) की आवश्यकता होती है।

कोड नाम के एक फ़ंक्शन को परिभाषित करता है :, जो बारी-बारी से एक काले आयत में सफेद 1 या 0 प्रदर्शित करता है । Xterm की डिफ़ॉल्ट सेटिंग्स के साथ बिल्कुल 24 अलग-अलग पिक्सेल हैं। ( प्रमाण )

एक पुराने संस्करण के लिए जो पूरे टर्मिनल के रंग को दर्शाता है, इस उत्तर के संशोधन 10 की जांच करें ।

Xterm सुझाव के लिए @ ais523 को धन्यवाद , जो 4 बाइट्स बचाता है!

यह काम किस प्रकार करता है

:(...)एक फ़ंक्शन बनाता है जिसका नाम :निष्पादन है ...

पढ़ने आदेश वास्तविक जादू करता है।

  • -p एक इनपुट प्रॉम्प्ट निर्दिष्ट करता है, जिसे STDOUT में प्रिंट किया जाता है।

    • $[i^=1]एक अंकगणितीय विस्तार है जो 1 के साथ चर I को XORs करता है । मैं शुरू में परेशान हो सकता हूं ; जब ऐसा होता है, तो इसे 0 माना जाएगा ।

    • गाड़ी वापसी कर्सर को लाइन की शुरुआत में वापस रखती है।

    • ›?9hसमर्थित टर्मिनलों में माउस को पकड़ लेता है। प्रत्येक क्लिक की टर्मिनल के लिए छह वर्ण भेज देंगे, अर्थात् ←[Mbxy, जहां ESC बाइट (प्रतिनिधित्व करता 0x1b )। ←[एक एस्केप अनुक्रम, इंगित करता है Mमाउस, bबटन ( 0x20 , + बटन संख्या) एक्स क्लिक (के समन्वय 0x20 + समन्वय), और y समन्वय।xy

    • -sn6बनाता पढ़ मूक (माउस इनपुट STDERR को प्रतिध्वनित नहीं किया जाएगा) और वास्तव में 6 बाइट्स पढ़ने के बाद बंद हो जाता है। यह REPLY चर में इनपुट को बचाता है , लेकिन हम इसके उत्पादन में रुचि नहीं रखते हैं।

अंत में, एक बार फ़िनिश पढ़ने के बाद (बिल्कुल एक माउस क्लिक के बाद), :अनन्त रूप से खुद को कॉल करता है, एक अनंत लूप में प्रवेश करता है।

सृजन और आह्वान

$ echo $':()(read -p$[i^=1]\r\x9b?9h -sn6\n:);:' > checkbox.sh
$ xxd -c 17 -g 1 checkbox.sh
0000000: 3a 28 29 28 72 65 61 64 20 2d 70 24 5b 69 5e 3d 31  :()(read -p$[i^=1
0000011: 5d 0d 9b 3f 39 68 20 2d 73 6e 36 0a 3a 29 3b 3a 0a  ]..?9h -sn6.:);:.
$ LANG=en_US xterm -e bash checkbox.sh

उत्पादन

स्क्रीनकास्ट


मैं अपने आप से एक समान समाधान पर काम कर रहा था (हालांकि एक अलग भाषा में, मुझे छोड़ देने के लिए मजबूर कर रहा था क्योंकि मुझे एक नई लाइन के बिना इनपुट लेने का कोई तरीका नहीं मिला)। एक संभावना सुधार: परिवर्तन 1000hकरने के लिए 9h(अंतर यह है कि है 1000hदोनों माउस प्रेस संभालती है और जारी है, और 9hकेवल माउस रिहाई संभालती है)। इस कोड में कहीं और बदलाव की आवश्यकता हो सकती है या नहीं।

@ ais523 मैंने ऐसा करने की कोशिश की, लेकिन कम से कम मेरे टर्मिनल एमुलेटर (कॉनसोल) इसका समर्थन नहीं करते। क्या आप एक को जानते हैं?
डेनिस

gnome-terminalकाम करने लगता है, यही मैं परीक्षण के लिए उपयोग कर रहा था (संपादित करें: लेकिन मुझे नहीं लगता कि यह 1-बाइट सीएसआई का समर्थन करता है)। xtermकाम करना चाहिए और यदि आपके पास केडीई प्रणाली है, तो इसे स्थापित करना आसान हो सकता है। (मैंने अभी खुद इसका परीक्षण किया है; यह किसी कारण से \x1b[नहीं बल्कि \x9bकिसी और कारण से काम करता है , संभवतः टर्मिनल के बजाय मेरी स्टटी सेटिंग्स से संबंधित है।)

@ ais523 मेरे पास xterm है। जब मैं अपने पीसी पर वापस आऊंगा तो जांच करूंगा।
डेनिस

8
मैं प्यार करता हूँ कि यह अंत :)से कैसे बन जाता है:(
एंड्रास डीक

22

प्रसंस्करण, 78 66 65 63 61 बाइट्स

2 बाइट्स ने @TuukkaX की -a%2बजाय धन्यवाद का उपयोग करके बचायाa%2*-1

2 बाइट्स ने @TuukkaX को धन्यवाद का उपयोग करके बचाया a=-a

int a=1;void draw(){background(a);}void mousePressed(){a=-a;}

चेकबॉक्स ब्लैक एंड व्हाइट होने के बीच वैकल्पिक होता है।

व्याख्या

int a=1;                   //the variable that contains the state of the checkbox
void mousePressed(){a=-a;} //if the mouse is pressed, change the sign of a

अब इस प्रक्रिया को करने के लिए एक if-statement का उपयोग करने जैसे कई अन्य विकल्प हैं, लेकिन फिर यह अजीब हो जाता है और माउस को दबाए जाने के दौरान पृष्ठभूमि को लगातार बदलता रहता है। मैंने पहली बार कोशिश की mouseButton, लेकिन फिर मुझे और अधिक परिस्थितियों और अधिक कोड की आवश्यकता होगी जो अभी बहुत अधिक क्रिया को समाप्त करेगा।

अब mousePressed()हमेशा के लिए बुलाए जाने के लिए (अन्यथा यह सिर्फ कार्यक्रम शुरू होने के बाद बंद हो जाएगा), हमें एक draw()फ़ंक्शन की आवश्यकता है ।

void draw(){               //loop infinitely
  background(a);           //set the sketch's background to -a%2
  //if a ==  1, the background colour is set to almost black
  //if a == -1, the background colour is set to white
}

यहाँ छवि विवरण दर्ज करें


एक छोटा चेकबॉक्स 90 बाइट्स होगा (चेकबॉक्स ऊपरी बाएँ कोने में है, इसलिए हम कुछ माउस की स्थिति को दूर कर सकते हैं):

int a=1;void draw(){fill(a);rect(0,0,8,8);}void mousePressed(){if(mouseX<9&mouseY<9)a=-1;}

2
प्रसंस्करण का उपयोग किस तरह से प्रसंस्करण एकल पूर्णांक ग्रेस्केल रंगों के रूप में स्वीकार करता है!
11

@ फीलटैक ऐसा लगता है कि सफेद के रूप में भी व्यक्त किया जा सकता हैfill(-1)
क्रिस्ति लिथोस

1
मेरे पास विचार है। प्रारंभ a1 0. के बजाय बदलें करने a++के लिए a=-aहै, जो बनाता है -a%2बस a। यह a1 और -1 के बीच टॉगल करेगा । मुझे नहीं पता कि रंग 1 क्या पैदा करता है।
यति

@TuukkaX Yup यह काम करता है। color(1)पैदा करता है #010101जो बहुत काला के करीब है
Kritixi lithos

22

HTML + जावास्क्रिप्ट, 32 30 25 वर्ण

<p onclick=innerHTML^=1>0


3
thisनिहित है और हटाया जा सकता है। इसके अलावा, innerHTMLकम है।
डेनिस

@ डेनिस, इसके साथ अजीब ... धन्यवाद।
17

+1 <input>तत्व का उपयोग नहीं करने के लिए
RedClover

20

यूनिक्स शेल (+ x11-apps), 3 बाइट्स

अस्वीकरण

नीचे उत्तर उबाऊ है, सीमा रेखा और "धोखा महसूस करता है" (कम से कम मेरे लिए)।

फिर भी, यह "लिखित", या "डिफ़ॉल्ट खामियों" के रूप में किसी भी चुनौती के नियमों का उल्लंघन नहीं करता है, इसलिए मैं इसे पोस्ट कर रहा हूं।

(यदि आप किसी विशिष्ट नियम को तोड़ सकते हैं, तो कृपया टिप्पणी करें!)

golfed

xgc

एक्सजीसी कार्यक्रम एक्स ग्राफिक्स आदिम की विभिन्न विशेषताओं को प्रदर्शित करता है।

XGC स्क्रीन वास्तव में विभिन्न चेक बॉक्स से भर जाता है:

यहाँ छवि विवरण दर्ज करें

और "स्टिकी बटन" (जो इस चुनौती के नियमों के तहत चेकबॉक्स के रूप में योग्य हैं):

यहाँ छवि विवरण दर्ज करें


20

गिटहब फ्लेवर्ड मार्कडाउन - 6 बाइट्स

- [ ] 

(एक अनुगामी स्थान है)

एक जिस्ट में: जाँच / जाँच नहीं


यकीन है कि यह 1 वाक्य के 2 वें भाग से मेल खाता है, "एक प्रोग्राम लिखें जो एक दो-राज्य चेकबॉक्स बनाता है जिसे लोग माउस का उपयोग करके बातचीत कर सकते हैं ?"
manatwork

1
हां, यदि आप इसे जिप में चिपकाते हैं और जिप ("संकलन" के लिए) बनाते हैं तो आप इसके साथ बातचीत कर पाएंगे।
एक्सल

दिलचस्प। धन्यवाद @ Ax31 मैंने कभी भी गट्टे का इस्तेमाल नहीं किया।
मैनेटवर्क

1
मुझे "जीथब फ्लेवर्ड मार्कडाउन" की उम्मीद नहीं थी।
जोनास शोफर


16

स्क्रैच, 2 ब्लॉक

यहाँ छवि विवरण दर्ज करें

इस स्क्रिप्ट को डिफ़ॉल्ट स्प्राइट में डालें (जो 2 वेशभूषा के साथ आता है)


1
ऑनलाइन डेमो: phosphorus.github.io/…
primo

14

पायथन आरईपीएल, 45 बाइट्स

from tkinter import*
Checkbutton(Tk()).pack()

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

1
@Krazor tkinterपाइथन के लिए एक मानक पुस्तकालय है (लेकिन अगर ऐसा नहीं था तो मुझे केवल पाइथन REPL + tkinter घोषित करना होगा)। इसका मतलब यह है कि मैं इसका इस्तेमाल कर सकता हूँ बस इसे इम्पोर्ट करके। आपके द्वारा सुझाया गया दंड उपयोगकर्ताओं को उस बाइट में शामिल होने के लिए पूछने के समान है, जिस भाषा में आप लिख रहे हैं, उस स्रोत में बाइट्स की संख्या की गणना करें। यहां हम किसी भी भाषा या मॉड्यूल को तब तक प्रतिस्पर्धा करने की अनुमति देते हैं, जब तक कि वह सार्वजनिक रूप से पहले लिखा और प्रकाशित नहीं किया गया हो। चुनौती पोस्ट की गई थी।
ब्लू

ठीक है, स्पष्टीकरण के लिए धन्यवाद।
FMaz

14

जियोजेब्रा , 10 बाइट्स

Checkbox[]

इनपुट बार में दर्ज किया गया।

यहाँ निष्पादन की एक झलक है:

कार्यक्रम का निष्पादन


7
वाह, जगाओ। मुझे याद है कि। इसे बीते एक अर्सा हो गया है।
निक हार्टले

मुझे पता है कि यह ऑफ-टॉपिक है लेकिन क्या आप वाटरलू कॉलेजिएट इंस्टीट्यूट में जाते हैं? सिर्फ अपने नाम के आधार पर, जिज्ञासा से बाहर। मैं एक शिकारी नहीं हूँ चिंता मत करो :)
HyperNeutrino


11

जावास्क्रिप्ट के साथ HTML - 136 124 120 115 113 111 109 79 बाइट्स

<p style=height:20;border:solid onClick=t=this;t.innerHTML=(t.e=!t.e)?'x':''>

-2 @KritiiLithos को धन्यवाद

@ जान से कुछ शानदार गोल्फ के बाद 79 से कम हो गया। हालांकि नया संस्करण उन आवश्यकताओं के अनुरूप है जो मैंने पेशेवर गर्व के कारणों के लिए पुराने संस्करण को रखा है।

हालांकि यह बिल्ट-इन का उपयोग करने के लिए पूरी तरह से वैध है, मुझे लगा कि स्क्रैच से अपना खुद का निर्माण करना अधिक मजेदार है। क्रोम और फ़ायरफ़ॉक्स के साथ परीक्षण किया गया। border:solidआईई संगतता के लिए है, लेकिन मुझे नहीं पता कि क्या वास्तव में नए आईई संस्करणों में इसकी आवश्यकता है - मेरे पास परीक्षण के लिए आईई उपलब्ध नहीं है।

pxऊंचाई में "रन कोड स्निपेट" इसलिए "असली" बाइट गिनती में शामिल नहीं है के लाभ के लिए है। यह इसके बिना ब्राउज़र में ठीक काम करता है।

<p style=height:20px;border:solid onClick=t=this;t.innerHTML=(t.e=!t.e)?'x':''>

पुराना वर्जन:

<p id=d style="width:20px;height:20px;border:solid 1px"onClick="d.innerHTML=d.innerHTML=='x'?'':'x'"align=center>


1
id=dहटाने के लिए कर सकते हैं d=this?
कृति लिथोस

1
@ कृतिलीथोस - वास्तव में मैं कर सकता हूं। धन्यवाद और अच्छी तरह से देखा :)
ElPedro

1
आपको चौड़ाई निर्धारित करने की आवश्यकता नहीं है, नियम कहते हैं कि यह किसी भी आयाम हो सकता है। यदि आप स्टेट को किसी प्रॉपर्टी पर स्टोर करते हैं तो आप thisआईडी सेट करने से बच जाएंगे। यदि आप thisएक संपत्ति में स्टोर करते हैं तो आप कुछ बाइट्स बचा लेंगे। alignअनावश्यक है। चूंकि विशेषता स्ट्रिंग्स में कोई स्थान नहीं है, इसलिए आपको उद्धरण चिह्नों की आवश्यकता नहीं है। <p style=height:20px;border:solid onClick=t=this;t.innerHTML=(t.e=!t.e)?'x':''>79 बाइट्स
जनवरी

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

धन्यवाद @ जल्दी। कोड अपडेट किया लेकिन अन्य बिट्स को भूल गए। देर हो रही है।
एलपेड्रो

9

Minecraft 1.0.0, 1 बाइट

Minecraft में एक लीवर चेक बॉक्स के लिए सभी मानदंडों को पूरा करता है। यह उत्तर केवल खेल के पुराने संस्करणों के लिए मान्य है जहां एक लीवर को छिद्रित करना अभी भी टॉगल करता है।

यहाँ छवि विवरण दर्ज करें

@Connor O'Brien द्वारा सुझाई गई बाइट गिनती का उपयोग करके स्कोर किया गया।


दो जवाबों के बीच 3 का अंतर शायद ही कभी एक आम सहमति बनाता है या टूटता है, लेकिन यह देखते हुए कि कॉनर का जवाब काफी विवादास्पद है (वर्तमान में + 24 / -10 ) और यह स्वीकार किया गया जवाब बहुत अच्छी तरह से प्राप्त हुआ है ( + 17 / -0 ), मुझे लगता है कि उत्तरार्द्ध का उपयोग Minecraft उत्तरों को स्कोर करने के लिए किया जाना चाहिए।
डेनिस

हालांकि Minecraft 1.0.0 में कोई संरचना ब्लॉक नहीं हैं
ev3commander

1
यह nकॉनर में एक है, btw :)
कॉनर ओ'ब्रायन

या आप इसे वैध बनाने के लिए किसी भी नए संस्करण में बाएं और दाएं माउस बटन को
रिबंड कर सकते हैं

@ ConorO'Brien है कि नहीं 1 block? क्यों 1 byte? मुझे नहीं लगता कि एमसी हर ब्लॉक को एक बाइट के रूप में संग्रहीत करता है ...
RedClover

8

टीआई-बेसिक, 15 बाइट्स

While 1:Shade(0,9:Input :ClrDraw:Input :End

काफी सरल। चेकबॉक्स लगभग 40% स्क्रीन को कवर करता है और ब्लैक एंड व्हाइट के बीच वैकल्पिक होता है। जाँच होने पर, स्क्रीन कुछ इस तरह दिखाई देगी:

स्क्रीन


8

विंडोज कमांड लाइन का कोई भी संस्करण, 3 बाइट्स

(cmd.exe, बैच, पावरशेल, स्टार्ट-> रन, जो भी हो)

osk

ऑन-स्क्रीन-कीबोर्ड खोलता है जिसमें कई "चेकबॉक्स" होते हैं जैसे कि शिफ्ट, ctrl, alt, capslock कुंजियाँ xgc उत्तर के समान, और SmileBASIC उत्तर स्क्रीनशॉट से प्रेरित।


7

ऑक्टेव, 36 20 बाइट्स

uicontrol('sty','c')

@LuisMendo की बदौलत 16 बाइट बच गईं!


1
uicontrol('sty','c')यह भी काम करता है
लुइस मेंडो

@LuisMendo धन्यवाद! 1/2 बाइट काउंट बच गया!
rahnema1

7

केवी लैंग , 8 बाइट्स

CheckBox

यहाँ छवि विवरण दर्ज करें


यहां तक ​​कि चलाने के लिए केवी लैंग के लिए वास्तव में बुनियादी पायथन परिवेश ग्रहण करना:

from kivy.app import runTouchApp
from kivy.lang import Builder
runTouchApp(Builder.load_string('CheckBox'))

यह मूल रूप से काम करता है क्योंकि मानक पुस्तकालय से प्रत्येक विजेट के रूप CheckBoxमें शामिल कीवी विजेट है kivy.Factory

उस सरल स्ट्रिंग का एक उदाहरण बनता है CheckBoxऔर क्योंकि runTouchAppमैं चलाने के लिए एक विजेट की उम्मीद कर सकता हूं Builder.load_string

load_stringमूल रूप से हर kv स्ट्रिंग को हैंडल करता है और यदि परिभाषित किए गए विजेट का एक भी उदाहरण है (उदाहरण के लिए CheckBox), तो इसे मूल विजेट स्थिति में ऊपर उठाया जाता है , उदाहरण के लिए:

Application
    openGL Window
        root widget(mostly layout)
            main tree
            and some widgets
            ...

7

स्माइलबासिक, 49 बाइट्स

@L
O=T
TOUCH OUT T,,
X=T<O!=X
KEY 1,""[X]GOTO@L

और एसबी के फ़ॉन्ट में एक खाली बॉक्स और एक चेक बॉक्स है।
स्क्रीन को छूकर चेकबॉक्स को टॉगल करें (माउस से क्लिक करने की निकटतम चीज़)

यहाँ छवि विवरण दर्ज करें यहाँ छवि विवरण दर्ज करें

धोखा जवाब:

0 बाइट्स:

(ऑन-स्क्रीन कीबोर्ड में बटन होते हैं जो चेकबॉक्स की तरह काम करते हैं, जैसे कि कैप लॉक और इंसर्ट कुंजी)

14 बाइट्स:

EXEC"SYS/SBGED

निर्मित ग्राफिक्स संपादक को खोलता है, जिसमें कई चेकबॉक्स जैसे बटन होते हैं


यह सिर्फ शानदार है, हालांकि मैं वास्तव में यह नहीं समझता कि 4 वीं पंक्ति क्या कर रही है। क्या आप समझाएँगे?
घोंघा_

T<Oसच है जब आप स्क्रीन को छूना बंद करते हैं, और !=इसका उपयोग तार्किक XOR के रूप में किया जाता है। X=X XOR (O && !T)
12M2121

7

सी #, 124 120 बाइट्स

4 बाइट्स को ले लिया, जो कि वेफथफिश का धन्यवाद है।

चेकबॉक्स चेक किया और चेक नहीं किया नोट: संपादन के कारण, चित्र ठीक से यह नहीं दर्शाता है कि कोड क्या बनाता है, "चेकबॉक्स 1" को वर्तमान कोड के साथ प्रदर्शित नहीं किया गया है।

using System.Windows.Forms;class P{static void Main(){var a=new Form();a.Controls.Add(new CheckBox());a.ShowDialog();}}

ungolfed: using System.Windows.Forms; class P{ static void Main(){ var a=new Form(); a.Controls.Add(new CheckBox()); Application.Run(a); a.ShowDialog(); } }


यदि आपको मेटा पर इसके बारे में कुछ नहीं मिला, तो मेटा पर इस बारे में पूछें
मैथ्यू रो

आप रिक्त स्थान से छुटकारा पा सकते हैं var a = new Form();
9

@ Qwerp-Derp मैंने उन्हें गिनती के लिए हटा दिया, मैंने सिर्फ गलत चीज़ को चिपकाया, धन्यवाद।
satibel

आप इस्तेमाल कर सकते हैं a.ShowDialog();कुछ बाइट्स को बचाने के लिए
grabthefish

धन्यवाद @grabthefish, हालांकि c # अभी भी जावा को खो देती है :(
satibel


6

जावास्क्रिप्ट के साथ HTML, 46 33 28 बाइट्स

<body onclick=innerHTML^=1>0

वी 2

<body onclick=this.innerHTML^=1>0

v1

<body onclick=t=this;t.innerHTML=t.e=!t.e||''>

यह @ ElPedro के उत्तर पर एक संस्करण है: एक चेकबॉक्स बनाएं । @Albert Renshaw की मदद से 28 बाइट्स तक नीचे पहुंची, इसे और कम किया जा सकता है, लेकिन यह एक चेकबॉक्स बनाने के समान होगा

पूरा आवेदन क्षेत्र क्लिक करने योग्य है। यह प्रदर्शित करेगा 0में offराज्य और 1में onराज्य। इसे https://jsbin.com/nuhetiyocu/1/edit पर देखें


1
यहाँ 39 बाइट्स में एक साफ बदलाव है। <body onclick=t=this;t.innerHTML^=t?1:0राज्य परिवर्तन के बीच 16 पिक्सेल का नियम बहस के लिए है।
अल्बर्ट रेनशॉ

38<body onclick=this.innerHTML^=this?1:0
अल्बर्ट रेनशॉ

1
अरे नहीं आपकी मदद से मैं पहले से ही 33 पर नीचे हूँ :)
Jan

1
28<body onclick=innerHTML^=1>0
अल्बर्ट रेनशॉ

1
अब चूंकि कंटेनर के अंदर हमेशा एक मूल्य होता है, इसलिए इसे bodyएक अलग तत्व से बदला जा सकता है । लेकिन मैं सिर्फ देखा है कि यह एक और जवाब देने के लिए समान होगा codegolf.stackexchange.com/questions/109155/create-a-checkbox/... तो मैं बस यह इसी रूप में जा रहा हूँ
जनवरी

6

पॉवर्सशेल v5 +, 94 बाइट्स

($a=[Windows.Forms.Form]::new()).Controls.Add([Windows.Forms.Checkbox]::new());$a.ShowDialog()

यहाँ छवि विवरण दर्ज करें यहाँ छवि विवरण दर्ज करें

यह बहुत भयानक है, लेकिन मुझे Add-Typeया तो किसी भी छोटे बयान नहीं मिल सकते हैं या using namespace- और चर की आवश्यकता है, क्योंकि मुझे फॉर्म दिखाने के लिए ऑब्जेक्ट का पुन: उपयोग करने की आवश्यकता है, और Controls.Add()उपयोग करने योग्य कुछ भी नहीं लौटाता है।

ShowDialog इस आदेश को चलाने के बाद बॉक्स को संवादात्मक रखने के लिए मेरे सिस्टम पर आवश्यक है, अन्यथा फ़ॉर्म जमी हुई है।

यह भी System.Windows.Forms.Formकेवल Windows.Forms.Formपहले (कम से कम मेरी खुद की) प्रणाली को छोटा किया जा सकता है जो एक नए सत्र में इसे पूरा करना बंद कर देता है।


अच्छा! जोड़ना चाह सकते हैं कि इसके लिए संस्करण 5+ की आवश्यकता है।
रिश्वतखोर

@briantist ने अपडेट किया, धन्यवाद।
Colsw

6

एक्सेल VBA, 38 32 31 29 बाइट्स

A1सक्रिय Excel Excel प्रोजेक्ट की पहली शीट पर सेल में ऊँचाई = 9 और चौड़ाई = 9 का एक चेकबॉक्स सम्मिलित करता है विंडो फ़ंक्शन

Sheet1.CheckBoxes.Add 0,0,9,9

-6 के [A1],[A1],9,9साथ बदलने के लिए पजाकों का धन्यवाद0,0,9,9

-1 के Sheets(1)साथ बदलने के लिए[Sheet1]

-2 के लिए ऊपर का एहसास बेवकूफ था और Sheet1इसके बजाय उपयोग करना था


लगता है कि 1,1,9,9तर्क के रूप में भी काम करता है।
पजाकों

1
आपको इसकी आवश्यकता नहीं है Sheet(1)., आप इसे एक्सेल में पर्याप्त रूप से चला सकते हैं, लेकिन CheckBoxesसक्रिय पत्रक को
विरासत में मिला है

@ Mr.Burns मैंने इसे जांचा है, लेकिन किसी भी वर्कशीट ऑब्जेक्ट को सीधे संदर्भित किए बिना, CheckBoxes.Addविधि "ऑब्जेक्ट आवश्यक" बताते हुए एक त्रुटि फेंकता है
टेलर स्कॉट

@TaylorScott आप सही हैं, मैंने कोड को सामान्य मॉड्यूल के बजाय एक शीट मॉड्यूल में रखा है .. मेरी गलती xD
Mr.Burns

4

VBA (शब्द), 74 57 बाइट्स

-17 टेलर स्कॉट का धन्यवाद

Sub a()
f = a.FormFields.Add(Selection.Range, 71)
End Sub

दस्तावेज़ का फ़ाइल नाम होना चाहिए a।


1
आप 17 बाइट्स की बचत के लिए ( स्थिरांक का पूर्णांक मान ) के wdFieldFormCheckBoxसाथ प्रतिस्थापित कर सकते हैं71wdFieldFormCheckBox
टेलर स्कॉट

मुझे लगता है कि आप -2 बाइट्स के लिए नई कड़ियों को हटा सकते हैं।
devRicher

4

पग, 20 बाइट्स

input(type=checkbox)

इसके अलावा मैं 23 के रूप में गिना जाता हूं। यदि आप उन उद्धरणों को हटा दें जो अभी भी फ़ायरफ़ॉक्स और क्रोम पर काम करते हैं (IE पर परीक्षण नहीं कर सकते हैं) और 21 पर आ जाएगा, इस मामले में मैं इसे उदाहरण पर सुधार मानूंगा और इसलिए मान्य होगा।
एलपेड्रो

@heonlygusti - वास्तव में, लेकिन उद्धरण के बिना मैं upvote होगा :-) btw, downvote मुझे नहीं था।
एलपेड्रो

अगर यह उन उद्धरणों के लिए नहीं होता, जिनकी आवश्यकता नहीं होती, तो मैं मतदान करता।
नाइटस्कीकोड

@theonlygusti बिल्कुल नहीं। कोशिश करो।
नाइटसाइकोड

4

क्लोजर, 201 195 145 127 बाइट्स

(ns c(:require[quil.core :as q]))(def a(atom nil))(q/defsketch b :draw #(q/background(if@a 0 99)):mouse-clicked #(swap! a not))

-6 बाइट्स की जरूरत से छुटकारा पाकर m/fun-mode

-50 बाइट्स को हटाकर विकल्प :setupऔर :sizeविकल्प, क्योंकि वे गैर में डिफ़ॉल्ट और अनावश्यक हैं- fun-mode। मिडलवेयर के लिए अनावश्यक आयात को भी हटा दिया।

-18 बाइट्स @ ASCII- केवल के लिए धन्यवाद। "छोटे" रंगों में बदल गया, और डेरेफेर ऑपरेटर ( @) से पहले एक अनावश्यक स्थान को हटा दिया ।

क्विल स्केच (एक क्लोजर लाइब्रेरी जो प्रसंस्करण पर एक परत प्रदान करता है) बनाता है , इसलिए, इसे चलाने के लिए क्विल लाइब्रेरी की आवश्यकता होती है।

(ns bits.golf.checkbox
  (:require [quil.core :as q]))

; Mutable global variable to hold the toggle state
(def a (atom nil))

(q/defsketch b
         ; Draw the background color to be either black or red depending on the toggle state.
         :draw #(apply q/background (if @a [0 0 0] [255 0 0]))

         ; Negate the state on mouse click
         :mouse-clicked #(swap! a not))

यहाँ छवि विवरण दर्ज करें

यहाँ छवि विवरण दर्ज करें


क्या आप 99 के साथ 255 को प्रतिस्थापित नहीं कर सकते? इसके अलावा, मैं प्रतीकों से पहले / बाद में रिक्त स्थान हटाने की कोशिश करूंगा और यह
ASCII-only

@ ASCII- केवल हां, मैं कर सकता था। इसने आईईआरसी के बावजूद एक बदसूरत रंग बनाया, और किसी कारण से मैंने उस समय प्राथमिकता दी। और नहीं, यह उतना ही स्थान है जितना मैं दुर्भाग्य से निकाल सकता हूं।
Carcigenicate

@ ASCII- केवल समस्या यह है कि प्रतीकों में लगभग कोई भी चरित्र हो सकता है, इसलिए वास्तव में एकमात्र "सुरक्षित पड़ोसी" जो आप रिक्त स्थान को हटा सकते हैं, किसी भी प्रकार के ब्रैकेट या उद्धरण हैं। सौभाग्य से यह पूर्व के लिए एक बहुत ही प्रचलित है।
कार्विनेट

हम्म [0 0 99]तो शायद ? (कुछ प्रकार का गहरा नीला)
ASCII-only

@ ASCII- केवल वास्तव में, मुझे लगता है कि मैं अब 0s को गिरा सकता हूं जो मैं इसके बारे में सोचता हूं। मुझे लगता है कि अगर ऑटो छोटा है तो Quil ऑटो 0s के साथ सामने की तरफ होता है। अगर मुझे नवीनतम याद है तो मैं इसे ठीक करूँगा। मुझे सोचने के लिए धन्यवाद।
कारकजेनिकेट

4

ऑपरेशन फ्लैशपॉइंट स्क्रिप्टिंग भाषा, 273 बाइट्स

चेकबॉक्स दिखाने के लिए:

createDialog"b"

लेकिन पहले इसे परिभाषित किया जाना चाहिए:

निम्नलिखित फ़ाइल description.extको मिशन फ़ोल्डर में नामित फ़ाइल में सहेजें :

class b{idd=999;movingEnable=1;class controls{class c{idc=457;x=0.1;y=0.1;w=0.1;h=0.1;text="";action="if(ctrlText 457=={})then{ctrlSetText[457,{V}]}else{ctrlSetText[457,{}]}";type=1;style=2;colorText[]={1,1,1,1};font="tahomaB36";sizeEx=0.1;}}}

कार्रवाई में चेकबॉक्स:


3

ऑटो इट , 78 बाइट्स

GUICreate(0)
GUISetState(GUICtrlCreateCheckbox(0,0,0))
Do
Until GUIGetMsg()=-3

एक अधिकतम विंडो खोलता है जिसे किसी अन्य विंडो विंडो की तरह बंद किया जा सकता है। अधिकतमकरण और ... ऑन-टॉप-नेस गोल्फिंग का एक साइड इफेक्ट है।

यहाँ छवि विवरण दर्ज करें


मैं इसे लिनक्स पर कैसे चलाऊंगा?
dkudriavtsev

@ wine AutoIt3.exe script.au3, जहां script.au3फ़ाइल में यह कोड है।
mınxomaτ

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.