শূন্যতা নাকি কোনও শূন্যপদ?


17

মোটেলগুলিতে আমরা লক্ষণগুলি প্রত্যেকে দেখেছি যে শূন্যপদ আছে কিনা তা আমাদের জানাচ্ছে:

সাধারণত, এই স্থায়ীভাবে লেটার অব থাকবে কর্মখালি উজ্জ্বল, এবং অক্ষর আছে কোন যদি মোটরবিহারীদের হোটেল কোনো রুম নয় শয়নকামরা আপ।

চ্যালেঞ্জ

মার্কিন যুক্তরাষ্ট্রে গড়ে মোটেল 200 কক্ষ আছে।

আপনি এমন একটি প্রোগ্রাম / ফাংশন লিখবেন যা পূর্ণমাত্রা টি নেয় (গৃহীত কক্ষগুলির জন্য) এর একমাত্র ইনপুট হিসাবে।
আপনার প্রোগ্রামটি তখন শব্দগুলি প্রদর্শন করবে NO VACANCY। এর চিঠিগুলি VACANCYলাল রঙে মুদ্রিত হবে।
যদি T ≥ 200 হয় তবে এর বর্ণগুলিও NOলাল রঙে মুদ্রিত হবে।

উদাহরণস্বরূপ, ধরে a.outনেওয়া আপনার প্রোগ্রাম এবং "ইনপুট" = কমান্ড লাইন আর্গুমেন্ট: (আমি টাইপ করেছি এবং আমার সিস্টেম কেস উপেক্ষা করবে))
enter image description here

নিয়ম

  • আপনার প্রোগ্রাম / ফাংশন অবশ্যই কেস সহ সঠিক স্ট্রিং প্রদর্শিত (বা, ল্যাম্বদা, ফিরে ) আবশ্যক NO VACANCY
  • আপনার প্রোগ্রাম / ফাংশনটি কেবল পাঠ্যের অগ্রভাগের রঙটি লাল রঙে সেট করতে পারে ব্যাকগ্রাউন্ডে নয়।
  • আপনি যদি চান, আপনি লাল রঙ প্রিন্ট করতে এএনএসআই এ্যাসপ কোড ব্যবহার করতে পারেন - \x1b[31mকাজ করবে।
  • আপনার প্রোগ্রাম / ফাংশনটি শেষ হওয়ার পরে আপনার শেলের পাঠ্যের রঙ পরিবর্তন করতে পারে না।
  • আপনার প্রোগ্রাম / ফাংশনটি অবশ্যই স্বাভাবিকভাবে শেষ করতে হবে।
  • আপনার প্রোগ্রাম / ফাংশনটি কেবল স্ট্যান্ডার্ড আউটপুটে মুদ্রণ করতে হবে।
  • আপনার প্রোগ্রাম / ফাংশনটি অবশ্যই আপনার শেল / টার্মিনাল / আইডিইর ডিফল্ট পটভূমির রঙ ব্যবহার করবে। (আপনি যদি গ্রাফিকাল আউটপুট রাখতে চান তবে আপনি লাল বাদে আপনার পছন্দ মতো রঙ বেছে নিতে পারেন))
  • যদি T ≤ 200 হয়, তবে NOঅবশ্যই আপনার শেল / টার্মিনাল / আইডিইর ডিফল্ট ফোরগ্রাউন্ড রঙে অক্ষরগুলি মুদ্রিত হতে হবে। (আপনি যদি গ্রাফিকাল আউটপুট রাখতে চান, তবে আপনি নিজের পছন্দ মতো রঙ চয়ন করতে পারেন)
  • যদি কোনও কারণে আপনার শেল / টার্মিনাল / আইডিইর ডিফল্ট ফোরগ্রাউন্ড / ব্যাকগ্রাউন্ডের রঙ লাল হয় তবে আপনাকে অবশ্যই একটি কালো পটভূমি এবং একটি ডিফল্ট সাদা অগ্রভাগ সহ মুদ্রণ করতে হবে।
  • আপনি যদি গ্রাফিকাল আউটপুট ব্যবহার করা চয়ন করেন তবে প্রোগ্রামটি নির্দিষ্ট করা অবস্থায় কেবল লাল ব্যবহার করা যেতে পারে (যেমন আপনার পটভূমির রঙ বা ডিফল্ট পাঠ্যের রঙ লাল নাও হতে পারে)।

বিজয়ী

সাথে যথারীতি সংক্ষিপ্ততম প্রোগ্রামটি জয়ী! গ্রাফিকাল আউটপুট জন্য ব্রাউন পয়েন্ট।
আমি এক সপ্তাহের মধ্যে স্বল্পতম উত্তর গ্রহণ করব। শুভ গল্ফিং!

লিডারবোর্ড

var QUESTION_ID=123146,OVERRIDE_USER=61563;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i;
body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"> <div id="answer-list"> <h2>Leaderboard</h2> <table class="answer-list"> <thead> <tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr></thead> <tbody id="answers"> </tbody> </table> </div><div id="language-list"> <h2>Winners by Language</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td></tr></thead> <tbody id="languages"> </tbody> </table> </div><table style="display: none"> <tbody id="answer-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table> <table style="display: none"> <tbody id="language-template"> <tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table>


2
একটি বিবাদী নিয়ম রয়েছে: স্ক্রিনশট এবং এর উপরে, এটি "" যদি T ≥ 200 হয় তবে "লাল কোনও প্রিন্ট করতে বলে। পরে, আপনি ডিফল্ট রঙ "যদি T ≤ 200" মুদ্রণ করতে বলছেন
Arc676

2
@ আর্ক 676 ওহো। ঠিক আছে, যৌক্তিকভাবে, হোটেলটিতে যদি 200 টি কক্ষ থাকে তবে এটি অবশ্যই প্রথম বিবরণ যা সঠিক।
janrjan জোহানসেন

3
অতিরিক্ত creditণের জন্য, হিলবার্ট হোটেলের জন্য এটি করুন, যার সীমাহীন সংখ্যা রয়েছে।
ডেভিড কনরাড

এই ফলাফলগুলি বৈধ: i.imgur.com/221Qxgj.png ?
সার্জিওল

@ সার্জিওল হ্যাঁ, এটি ভাল।
এমডি এক্সএফ

উত্তর:


8

জেলি , 29 26 বাইট

<200o-“NO“ɓ31m”m“=ȤŻ»Œu“ɓm

এটি <CSI>( 0x9 বি ) ব্যবহার করে , যা তার চেয়ে কম<ESC>[ (এর 0x1b 0x5b ) এর ।

এটি এর <CSI>mপরিবর্তে অগ্রভাগের রঙটি পুনরায় সেট করে<CSI>0m , হিসাবে করে 0 টি অন্তর্ভুক্ত

প্রতিপাদন

মনে রাখবেন যে আপনার টার্মিনাল এমুলেটরটি (উদাহরণস্বরূপ, কনসোল) অবশ্যই আইএসও 8859-1 বা এটির মতো সেট করতে হবে।

screenshot

কিভাবে এটা কাজ করে

<200o-“NO“ɓ31m”m“=ȤŻ»Œu“ɓm  Main link. Argument: n (integer)

<200                        Compare with 200, yielding 1 if true, 0 if not.
    o-                      Logical OR -1; map 0 to -1 (and 1 to 1).
      “NO“ɓ31m”             Yield ["NO", "\x9b31m"].
               m            Take the list "modulo" 1 or -1, keeping it as is for 1,
                            reversing it for -1.
                “=ȤŻ»       Implicitly print the previous result and yield the
                            string " vacancy". This is achieved by indexing into
                            Jelly's in-built dictionary.
                     Œu     Convert to uppercase.
                       “ɓm  Implicitly print the previous result and yield the
                            string "\x9bm", which is printed on exit.

11

জাভাস্ক্রিপ্ট (ES6), 60 বাইট

(রঙিন ফলাফল দেখতে স্নিপেট চালানোর সময় আপনার ব্রাউজারের কনসোলটি খুলুন।)

screenshot

f=
n=>console.log((n>199?'%cNO':'NO%c')+' VACANCY','color:red')
<input oninput=f(this.value)>


1
NO%c VACANCY color:red?
এমডি এক্সএফ

1
@ এমডিএক্সএফ আপনার প্রকৃত ব্রাউজার কনসোলটি পরীক্ষা করে দেখুন। স্নিপেট কনসোল এমুলেটর এটি সমর্থন করে না।
nderscore

2
ওহ, ভাল ধরা। +1
এমডি এক্সএফ

2
স্ট্যান্ডার্ড জেএস বিধি আপনাকে এটিকে বিশাল আকারে ছোট করার অনুমতি দেয়। console.log()নিয়মগুলি উল্লেখ করে যে রিটার্নগুলি ঠিক আছে তা সরান , আপনাকে ফাংশনটিও সংজ্ঞায়িত করতে হবে না।
মেয়রমন্টি

4
@ মায়ারমন্টি এই সমাধানটি রঙিন পাঠ্য তৈরি করতে বিশেষভাবে কনসোল.লগ কার্যকারিতাটি গ্রহণ করে , তাই আমি এটিকে অন্তর্ভুক্ত না করেই অদ্ভুত বোধ করব।
nderscore

8

রুবি (* নিক্স স্টাইলের টার্মিনাল), 54 48 45 44 43 বাইট

1 বাইট মান কালি ধন্যবাদ সংরক্ষণ করা

একটি আক্ষরিক এসকে বাইট জন্য দাঁড়ায় (ASCII 27)

->x{"#{x>199?"␛[31m":p}NO␛[31m VACANCY␛[m"}

আমার অজগর উত্তরটির একটি বন্দর, এটি একটি বাইট কয়েকটি বাইট সংক্ষিপ্ত। আমি রুবি গল্ফে নতুন তবে প্রতিক্রিয়ার প্রশংসা করা শিখতে আগ্রহী।


1
->x{"#{x>199?"␛[31m":p}NO␛[31m VACANCY␛[m"}একটি বাইট সংরক্ষণ করে। কৌতুকটি সত্য যে স্ট্রিং অন্তরঙ্গকরণে, "#{nil}"একটি খালি স্ট্রিংয়ের মূল্যায়ন করবে এবং এর pবিকল্প হিসাবে ব্যবহার করা যেতে পারে nil
মান কালি

6

পাইথন 3 (* নিক্স স্টাইলের টার্মিনাল), 55 54 বাইট

lambda x:"\033[31m"*(x-199)+"NO\033[31m VACANCY\033[m"

এটি এএনএসআই এস্কেপ কোডগুলি ব্যবহার করে। \033[31mটার্মিনালটি লাল করে তোলে, x যদি 200 এর কম হয় তবে আমরা একটি NOলাল তৈরি করে শুরু করব , অন্যথায় NOযাইহোক এটি লাল করার পরে আমাদের একটি থাকবে । আমাদের \033[mহয়ে গেলে টার্মিনাল থেকে রঙ সাফ হয়ে যায়।


শর্তের পরিবর্তে রঙের স্ট্রিংয়ের গুণটি উজ্জ্বল!
হুবার্ট গ্রেজস্কোইয়াক

6

এইচটিএমএল, 72 71 বাইট

<input min=200 type=number><x>NO <y>VACANCY<style>:valid+x,y{color:red}


10
আপনি সঠিক শব্দটি ব্যবহার করে 1 বাইট সংরক্ষণ করতে পারেন ...
নিল

6
ওহ আমার ... আমার ছুটি দরকার
0

3
অন্য উত্তরগুলির মধ্যে একটি সিএসএসকে পৃথকভাবে সংজ্ঞায়িত করে। আপনিও যদি এটি করেন তবে আপনি "<স্টাইল>" (
শুল্কযুক্ত


3

বাশ, 41 বাইট

echo ␛[$[($1>199)*31]mNO ␛[31mVACANCY␛[0m

যেখানে একটি আক্ষরিক ESC চরিত্রের প্রতিনিধিত্ব করে (ASCII \ 033)।


1
উজ্জ্বল গুণ!
ইপোর সিরসর

3

যান , 82 81 বাইট

এটি শুধুমাত্র * নিক্স টার্মিনালগুলিতে কাজ করে। আমি ভাবছি এটিকে জাভা বন্দর করা কত সহজ হবে ... সম্পন্ন হয়ে গেল।

func f(x int)string{v:="NO\033[31m VACANCY\033[m";if(x>199){v=v[2:7]+v};return v}

2
দেখি একটা জাভা বন্দর আসছে।
এমডি এক্সএফ

নিনজা 11 সেকেন্ডের মধ্যে। এক্সডি
সম্পূর্ণরূপে

3

বেস / এমকেএসএইচ, 48 47 46 বাইট

(($1>199))&&a=^[[31m;echo $a^MNO ^[[31mVACANCY^[[m

দ্রষ্টব্য: ^ [মানে 1 বাইট প্রশস্ত ESC অক্ষর: 0x1b বা দশমিক 27।

^ এম এর অর্থ 1 বাইট প্রশস্ত সিআর অক্ষর: 0x0 ডি, দশমিক 13।


3

এক্সেল ভিবিএ, 76 73 72 বাইট

অজ্ঞাতনামা VBE তাত্ক্ষণিক উইন্ডো ফাংশন যা Integerঘর থেকে প্রত্যাশিত ধরণের ইনপুট নেয় [A1]এবং সেলগুলিতে একটি (NO) ভ্যাক্সি সাইন আউটপুট করে নাA2:B2

[A2]="NO":[B2]="VACANCY":Range([If(A1>199,"A2:B2","B2")]).Font.Color=255

-৩ এ পরিবর্তন rgbRedকরার জন্য বাইটস255


1
দুঃখিত এটি যদি ভুল হয় তবে আমি এক্সেলের সাথে সাবলীল নই। তবে আপনি কি লিখতে চেয়েছিলেন iifএবং ইনপুট 200 এর সমান হলে এটি কি সঠিক মানটি দেয়? [A1]>200আমাকে অন্যথায় চিন্তা করতে বাধ্য করে।
এমডি এক্সএফ

1
@ এমডিএক্সএফ হ্যাঁ, আমার লেখার অর্থ ছিল iif( iএনলাইন থেকে সংক্ষেপিত if) তবে, আপনি ঠিক বলেছেন যে ভাল ধরা >199না দিয়ে হওয়া উচিত >200!
টেলর স্কট

2

এইচটিএমএল + সিএসএস + জাভাস্ক্রিপ্ট (ES6), 74 59 বাইট

এর ফাংশন আর্গুমেন্ট হিসাবে ইনপুট লাগে fমতো f(100)

এইচটিএমএল

<x id=n>NO <j id=r>VACANCY

সিএসএস

#r{color:red

জাভাস্ক্রিপ্ট (ES6)

f=a=>a>199?n.id="r":0

পরীক্ষার স্নিপেট

f=a=>a>199?n.id="r":0

f(prompt("Enter a number"))
#r{color:red
<x id=n>NO <j id=r>VACANCY



@ বেটাডেহে হাহাহা! হাঃ হাঃ হাঃ! : ডি
অর্জুন

@ বেটাডেহে আমি আপনার সাথে অনুভব করছি .... এটি আপনার <s> হৃদয় </ s> সমাবেশ স্তরের কোডের গভীরে ব্যথা পেয়েছে ...
রোমান গ্রাফ

1
-1:f=a=>n.id=a>199&&"r"
nderscore

Get rid of second element's id and set the CSS rule selector to j,#r to save 3 bytes.
Hubert Grzeskowiak

2

Haskell, 54 53 bytes

EDIT:

  • -1 byte: From @Dennis's Jelly answer, the 0 argument in the final escape sequence can be dropped.

f takes an integer and returns a string. Use as putStrLn$f 200.

f t|t>199="\27[31m"++f 0|0<1="NO \27[31mVACANCY\27[m"

Try it online! Alas, the colors don't show up in TIO, but you can see that the ANSI codes are correctly placed.

Golfing seemed to peter out pretty quickly with this one - not even naming the escape strings seems to save anything. The cleverest bit is recursing with f 0 to use the other branch as a substring. Three different attempts at using list comprehensions all turned up one byte longer. Perhaps the nicest I found:

f t=foldr drop"\27[31mNO \27[31mVACANCY\27[m"[5|t<200]

54 byte alternative: f t=concat["\27[31m"|t>199]++"NO \27[31mVACANCY\27[0m".
Laikoni

@Laikoni Oh! I was so close to that but somehow never noticed concat was shorter than id=<< because of the parentheses.
Ørjan Johansen

@Laikoni With Dennis's tip that's also 53 bytes.
Ørjan Johansen

2

Bash script, 60 bytes

c="\e[1;31m";((199<$1))&&printf $c;printf "NO$c VACANCY\e[m"

4
Just so you know, the downvote was cast automatically by the Community user when your answer was edited. I consider this a bug.
Dennis

@MDXF Input is via command-line arguments.
Dennis

@Dennis Ah, my bad. You may want to change the header to Bash script, 64 bytes.
MD XF

Unless you literally make hundred of edits, you can edit your answer every time you get an idea. Edits within the same 5-minute window get grouped into a single revision anyway.
Dennis

1
This doesn't reset the terminal color at the end, which is required.
Post Rock Garf Hunter

1

Mathematica, 67 bytes

Print[s=Style[#,FontColor->Red]&;If[#>200,s,#&]@"NO",s@" VACANCY"]&

or (60 bytes, but may be considered cheating)
This is actually Times["NO","VACANCY"], but appear to be correct.

(s=Style[#,FontColor->Red]&;If[#>200,s,#&]@"NO")s@"VACANCY"&

1

BASH, 100 bytes

if(($1<200));then
echo -n NO
else
echo -ne '\033[31mNO\033[0m'
fi
echo -e '\033[31m VACANCY\033[0m'

This can be probably be golfed, but I'm low on time. I'll come back to this later.

-5 bytes thanks to @R. Kap


Replacing if [ $1 -le 200 ] with if(($1<200)) saves 5 bytes and fixes the bug of the output not appearing in all red with an input of 200.
R. Kap

@R.Kap Thanks. OP requested default color for less than or equal to 200 though.
Arc676

No, OP asked for all red ouput for inputs more than or equal to 200.
R. Kap


1

C (*nix style terminal), 50 55 52 51 bytes

-1 thanks to Wheat Wizard

f(t){printf("␛[%dmNO ␛[31mVACANCY␛[m",t>199?31:0);}

␛ stands for the literal ESC byte, ASCII 27.

Call with f(200), 200 being the number. Prints NO VACANCY colored to the spec.


In my terminal, that breaks your rule that it shouldn't change the text color of the shell.
Ørjan Johansen

@ØrjanJohansen Fixed. I forgot that I run a custom shell which automatically sets the color.
MD XF

You can change ␛[0m to ␛[m
Post Rock Garf Hunter

1

PHP, 41 bytes

␛[<?=$argn<200?31:''?>mNO␛[31m VACANCY␛[m

␛ represents the Escape character.


0

shortC, 48 bytes

f(t){R"␛[%dmNO ␛[31mVACANCY␛[m",t>199?31:0

Where ␛ stands for ASCII 27, the ESCAPE byte.


0

GW-BASIC, 78 74 65 bytes

-12 thanks to Orjan Johansen

1INPUT X:IF X>199THEN COLOR 4
2?"NO ";:COLOR 4:?"VACANCY":COLOR 7

Prompts user for an integer. Output:

output


Hm can't find an online interpreter, but can't line 1 and 2 be joined with :?
Ørjan Johansen

@ØrjanJohansen Wow... can't believe I completely missed that. Thanks, and yeah, there are no online interpreters. However, you can use the first emulator on pcjs.org and type BASICA to get something close enough, although it may not have color.
MD XF

Assuming that emulator is good enough: You need a new line before the first PRINT. However, you don't need spaces after the line numbers, and PRINT can be abbreviated to ?.
Ørjan Johansen

@ØrjanJohansen NO WAY. I've used Microsoft BASIC for eight years and I never new about ?=PRINT. Updating...
MD XF

You missed the line number spaces, and seem to have a stray lower case x.
Ørjan Johansen

0

Tcl/Tk, 96 bytes

grid [label .n -text NO -fg [expr \$argv>199?"red":"tan"]]
grid [label .v -text VACANCY -fg red]

enter image description here

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.