आई लव सार्दिन


33

मुझे सार्डिन से प्यार है, मैं उनमें से बहुत कुछ नहीं पा सकता हूं, और इसलिए मेरा कंप्यूटर ओम्नीलैंग 5000 है, जो कि भाषा अज्ञेय है।

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

इस चुनौती में, आप इन मापदंडों के आधार पर कार्यक्रम बनाने के लिए जिम्मेदार होंगे:

इनपुट

एक संख्या (0 और 10 के बीच) और निम्नलिखित "एलआर" (क्रमशः बाएं या दाएं का प्रतिनिधित्व करते हुए) में से एक पत्र उदाहरण के लिए: 3Lया 5R; इस कार्यक्रम में इनपुट आपके ऊपर कैसे है।

उत्पादन

सार्डिन के साथ एक खुला टिन संकेतित दिशा का सामना करना पड़ रहा है, कुंजी के साथ (" %" चरित्र द्वारा प्रतिनिधित्व ) और खुली हुई ढक्कन (अंत में टिन को लुढ़का हुआ @"टिन के शीर्ष पर स्थित " "चरित्र) द्वारा दर्शाया गया है ।

  • सभी सार्डिन को इनपुट द्वारा बताई गई दिशा का सामना करना चाहिए।
  • गिल्ड (या तो " )" या " (") और पूंछ " ><" के बीच सभी सार्डिन में पांच वर्ण लंबे होते हैं।
  • मुख्य और छिलके वाले ढक्कन रोल हमेशा सार्डिन के विपरीत दिशा का सामना करेंगे।
  • टिन को 3-डी दिखना चाहिए जैसा कि नीचे दिए गए उदाहरणों में दिखाया गया है।
  • टिन की न्यूनतम ऊंचाई ऊंचाई में 3 सार्डिन है। इसलिए यदि कोई संख्या 3 से कम है, तो ऊंचाई में 3 सार्डिन की एक टिन को दिखाया जाना चाहिए, जिसमें उसमें सार्डिन की इनपुट संख्या होती है। अन्यथा, टिन में इनपुट में इंगित उच्च सार्डिन की संख्या होनी चाहिए। तो 0Rया के इनपुट 0Lएक खाली चुन्नी टिन दिखाएगा।
  • कोई अन्य इनपुट जिसे मान्य नहीं किया जा सकता है, वह कुछ भी नहीं दिखाएगा।

उदाहरण के लिए, " 3L"

 __________
(__________@%
|<*)_____><||
|<*)_____><||
|<*)_____><||
'==========''

" 7R" के लिए

   __________
 %@__________)
 ||><_____(*>|
 ||><_____(*>|
 ||><_____(*>|
 ||><_____(*>|
 ||><_____(*>|
 ||><_____(*>|
 ||><_____(*>|
 ''=========='  

" 2L" के लिए

 __________
(__________@%
|<*)_____><||
|<*)_____><||
|          ||
'==========''

" 0R" के लिए

   __________
 %@__________)
 ||          |
 ||          |
 ||          |
 ''=========='

" 0L"

 __________
(__________@%
|          ||
|          ||
|          ||
'==========''

अमान्य इनपुट कुछ भी नहीं लौटाएगा ...

  • यह कोड गोल्फ है, इसलिए सबसे छोटी संख्या में पात्र इस चुनौती को जीतेंगे।
  • हमेशा की तरह कोई लूपहोल्स नहीं

जवाबों:


39

> <> , 250 235 + 3 = 238 बाइट्स

</~?{"  __________"a:="L"i&
o/?=1l
:/}rv?{~$?{"()__________@%":
l< o/?=1
:&oa/&~$?(3$@0-3:
/!?:</"||><_____(*>|"av?@:$-1
 /=?/v"|<*)_____><||"a/
 \2lo/
\~&
\>:?!\1+$::{a"|"{?:"          ||"{?~
<\?=2 lo
"'":~/~?{"''==========":?{
;!?lo<

इसे ऑनलाइन आज़माएं , या इसे मछली के खेल के मैदान में देखें ! एसटीडीआईएन से "एल" या "आर" पढ़ता है और मानता है कि सार्डिन की संख्या पहले से ही स्टैक पर है ( -v+3 बाइट्स के लिए एक ध्वज की आवश्यकता है )।

निश्चित रूप से मुझे इसे> <> में लिखना था।


3
फिश में इस घोल को लिखने की प्रेरणा मिली है ...
वैलेस्ट वेस्ट

मछली के खेल का मैदान कैसे काम करता है? मैं इसे चलाने के लिए नहीं मिल सकता। मैं इनपुट कहां रखूं?
JAD

@JarkoDubbeldam, कोड को विंडो में कॉपी करने और सबमिट करने के बाद, आपको सार्डिन की संख्या डालने की आवश्यकता है जहां यह "प्रारंभिक स्टैक" ( -vध्वज का अनुकरण ), और दिशा ("L" या "R") "अंडर" देता है। कार्यक्रम के लिए इनपुट "फिर" दे "पर क्लिक करें। (मैंने उत्तर को उम्मीद से स्पष्ट कर दिया है कि मैंने इसे संपादित किया है।)
नहीं पेड़

1
बहुत बढ़िया: डी डिबगिंग के दौरान भी अच्छा होना चाहिए
JAD

15

इमोजीकोड , 456 448 बाइट्स

🐋🚂🍇🐖🐟d🚂🍇🍦a😛0d🍊a🍇😀🔤 __________❌n(__________@%🔤🍉🍓🍇😀🔤  __________❌n%@__________)🔤🍉🔂i⏩0🐕🍇🍊a🍇😀🔤|<*)_____><||🔤🍉🍓🍇😀🔤||><_____(*>|🔤🍉🍉🍊▶️4🐕🍇🔂i⏩0➖3🐕🍇🍊a🍇😀🔤|          ||🔤🍉🍓🍇😀🔤||          |🔤🍉🍉🍉🍊a🍇😀🔤'==========''🔤🍉🍓🍇😀🔤''=========='🔤🍉🍉🍉

2 तर्क देते हैं: पहली एक रेखा है, दूसरी एक दिशा है (0 या 1)।

इसे ऑनलाइन आज़माएं!

"पठनीय" ungolfed संस्करण और pseudocode संस्करण:

🐋 🚂 🍇
  🐖 🐟  d 🚂  🍇
    🍦 a  😛 0 d

    🍊 a 🍇
      😀 🔤 __________❌n(__________@%🔤
    🍉
    🍓 🍇
      😀 🔤  __________❌n%@__________)🔤
    🍉

    🔂 i ⏩ 0 🐕 🍇
      🍊 a 🍇
        😀 🔤|<*)_____><||🔤
      🍉
      🍓 🍇
        😀 🔤||><_____(*>|🔤
      🍉
    🍉

    🍊 ▶️ 4 🐕 🍇
      🔂 i ⏩ 0  ➖ 3 🐕  🍇
        🍊 a 🍇
          😀 🔤|          ||🔤
        🍉
        🍓 🍇
          😀 🔤||          |🔤
        🍉
      🍉
    🍉

    🍊 a 🍇
      😀 🔤'==========''🔤
    🍉
    🍓 🍇
      😀 🔤''=========='🔤
    🍉
  🍉
🍉

👵
extendclass int { // this makes the first argument be an int without declaring it
  func 🐟(int d) {
    const a = 0 == d // a bool

    if a {
      print " __________\n(__________@%"
    }
    else {
      print "  __________\n%@__________)"
    }

    for i in range(1, arg) {
      if a {
        print "|<*)_____><||"
      }
      else {
        print "||><_____(*>|"
      }
    }

    if 4 > arg {
      for i in range(0, arg - 3) {
        if a {
          print "|          ||"
        }
        else {
          print "||          |"
        {
      }
    }

    if a {
      print "'==========''"
    }
    else {
      print "''=========='"
    {
  }
}
👵

2
Emojicode से पहले कभी नहीं आते हैं, लेकिन यह एक मन च ** k और एक आधा है ... पागल! इसे प्यार करना!
वैलेस्ट वेस्ट

... यह भाषा क्यों मौजूद है? मेरा मतलब है, मुझे यह पसंद है, लेकिन क्यों? और इसे सीखने में आपको कितना समय लगा?
टेलर स्कॉट

1
@TaylorScott 1) ​​डूनो, मैंने इसे नहीं बनाया। 2) कुछ घंटे वास्तव में
बाजी

6

पायथन 2 , 155 बाइट्स

lambda x,y,t='_'*10:'\n'.join(x[::1-2*y]for x in[' %s  '%t,'()'[y]+t+'@%']+['|'+('<>**)(%s><<>'%t)[y::2]+'||']*x+['|'+' '*10+'||']*(3-x)+["'"+'='*10+"''"])

इसे ऑनलाइन आज़माएं!

इनपुट में एक लंबाई 2 टपल है। पहला तत्व सार्डिन की संख्या को इंगित करता है। दूसरा तत्व दिशा को इंगित करता है; 0बाएं के लिए, 1दाएं के लिए।

-84 बाइट्स लैम्बडा मैजिक का उपयोग करते हुए नॉटजगन और ऑफिशियल के लिए धन्यवाद


1
174 बाइट्स (सॉर्टा ने निन्जा को वहां @officialaimm से मिला)।
नॉटजैगन



1
@officialaimm पर्याप्त रूप से पर्याप्त है, अगर एक नकारात्मक मूल्य के साथ आपूर्ति की जाती है, तो यह टिन के आकार को बढ़ाता है, लेकिन इसमें सार्डिन नहीं डालता है।
Pavel

3
@Phoenix हाँ। हालांकि इससे कोई फर्क नहीं पड़ता, क्योंकि ओपी ने सीमा निर्दिष्ट की है 0 to 10। PS` -10` खाली टिन प्रिंट करेगा, क्योंकि यह दर्शाता है कि 10सार्डिन थे , लेकिन आपने पहले ही उन्हें खा लिया। : डी
आधिकारिक

5

मछली पकड़ने , 1311 बाइट्स

v+CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC?CCCDCC[CCCCCCCCCCCCCCCCCCCCC?CCCCCCCCCCCCCCCCCCCC[CCC[CCCCC?CCCC?DDDDD[CCCCCCCCCCCCCCCCCCC?CCCCCCCCCCCCCCCCC[?CCCCCCCCCCCCCCCC_
  `3`n{n{In{I{`L`{`  __________ `}}!{{rD}}D{{NE`%@__________)`}}!{{E`(__________@%`}}D{{NDE}}}}={d}}!  d  D{{{{{`><_____(*>`}}!{{E`<*)_____><`}}D!{{{E`|`P}PE`||`ND
                                   [DDDDDD|                     [DDDDDDDDDDDDDDDDDDDD|   D     [C?CDDDDDDDDCCCCCCCCCCCCCCCCCCC[DDDDDDDDDDDDDDDDD|[CCCCCCCCCCCCCCCC_
                                                                                         D      }=d [^+Cv-|{{{{{`          `}}                    {{{E`||`P}PE`|`ND
                                                                                         D       [CCCCCCCCCCCCCCCCCCC?DDDDDDDDD+CCCC                              D
                                                                                         D        E`''=========='`{{{= }}}r{{{ [CCCC                              D
                                                                                         D                           [^CCCCCCCv|}}}N                              D
                                                                                         |DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD]

stdinफॉर्म से इनपुट लेता है :

5
R

फिशिंग ऑन इट ट्राई ऑनलाइन नहीं है , लेकिन रूबी में लिंक्ड एसोलैंग्स पृष्ठ पर इसके लिए एक दुभाषिया है।

यह पहला कार्यक्रम है जिसे मैंने मत्स्य पालन में बनाया है - वास्तव में, यह पहला कार्यक्रम है जिसे मैंने किसी 2D भाषा में बनाया है - इसलिए यह संभवतः बहुत छोटा हो सकता है। गोल्फ के सुझावों का स्वागत है (हालांकि मुझे कोई आश्चर्य नहीं होगा अगर किसी ने कोई विचार नहीं किया, यह देखते हुए भी कि मुझे नहीं पता कि मैंने जो लिखा था वह क्या है)।

यहाँ उस पथ का GIF है जिसे प्रोग्राम इनपुट के लिए लेता है 1R(निम्न गुणवत्ता के लिए क्षमा करें):

GIF

(यह एक दुभाषिया का उपयोग करके बनाया गया था, जो मैंने बनाया था; सार्वजनिक रूप से उपलब्ध कार्यक्रम नहीं हैं जो "मछली पकड़ने" की कल्पना करते हैं, जहां तक ​​मुझे लगता है)


सी और डी सिंटैक्स ऐसा लगता है कि यह ब्लोट में योगदान दे रहा है ... क्या इसे कम करने के लिए कोई शॉर्टहैंड उपलब्ध है?
वैलेस्टेस्ट

वास्तव में खरोंच, ऐसा लगता है कि वे कोड के अभिन्न अंग हैं ... भाषा का दिलचस्प विकल्प! :)
वैलीवेस्ट

4

चारकोल , 49 बाइट्स

A⌈⟦Iθ³⟧ζBχ²_←↓(↓ζ'×=χ''↖P↑ζ←↑ζ@%FN“#∨‹VB“«ji”FN‖T

इसे ऑनलाइन आज़माएं! लिंक कोड के वर्बोज़ संस्करण के लिए है। पहला तर्क सार्डिन की संख्या है, दूसरी दिशा है (0 = बाएं, 1 = दाएं)।


महान काम, नील। संकलक लिंक की आपूर्ति के लिए धन्यवाद!
वॉलीवेस्ट

2
मुझे धन्यवाद मत करो, TIO बनाने के लिए @Dennis का धन्यवाद जो आपके लिए सभी बॉयलरप्लेट तैयार करता है।
नील

3

SOGL V0.12 , 51 48 बाइट्स

!gX⁴‘gj⁰%!⁵‘b⌡"κN╥█*≤⌡║)‘3b-"÷AZ⁴‘∙_"Χccσ«‘⁰e?±↔

यह कोशिश करो!
1 के रूप में इनपुट की उम्मीद की जा रही है 1 और गिनती 1 या 2 - 1 या 0 द्वारा दर्शाया गया है।

स्पष्टीकरण:

..‘..‘                          push 2 compressed strings - the 1st two lines of the box - "  __________ " and "%@__________)"
      b⌡                        input times do
        "..‘                      push a line with a sardine - "||><_____(*>|"
            3b-                 push 3-input
               "..‘∙            get an array of that many "||          |"
                    _           put all the arrays contents on the stack
                     "..‘       push "''=========='" - the last line
                         ⁰      wrap all of that in an array
                          e?    if the 2nd input [is not 0]
                            ±↔    reverse the array horizontally

2

आर, 334 बाइट्स 311 बाइट्स

s=function(n,d){
a="__________"
b="'=========='"
if(d == "L"){cat(paste(c(" ",a,"\n(",a,"@%\n",rep("|<*)_____><||\n",n),rep("|          ||\n",max(c(3-n,0))),b,"'\n"),collapse=""))} else {cat(paste(c("  ",a,"\n%@",a,")\n",rep("||><_____(*>|\n",n),rep("||          |\n",max(c(3-n,0))),"'",b,"\n"),collapse=""))}}

फ़ंक्शन n के लिए एक संख्यात्मक मान और दिशा के लिए एक स्ट्रिंग लेता है।

यह मेरी पहली पोस्टिंग है, इसलिए मैं मानता हूं कि मुझे यकीन नहीं है कि कोड के बाइट्स कैसे गिनें।


1
आप अपना कोड TIO में पेस्ट कर सकते हैं , जहां लोग आपके कोड का परीक्षण भी कर सकते हैं :) यह आपकी बाइट की गिनती भी प्रदर्शित करता है, जो इस मामले में 310 है।
इयान एच।

2

सी ++, 307 296 292 बाइट्स

#include<string>
auto z(int n,char c){std::string r=c-82?" __________\n(__________@%\n":"  __________\n%@__________)\n";int l=0;for(;l<n;++l)r+=c-82?"|<*)_____><||\n":"||><_____(*>|\n";for(;l<3;++l)r+=c-82?"|          ||\n":"||          |\n";r+=c-82?"'==========''":"''=========='";return r;}

उपयोग:

z(<number of sardines>,<'L' or 'R'>);

-11 बाइट्स उपयोगकर्ता के लिए धन्यवाद ThePirateBay -4 बाइट्स Zacharý के लिए धन्यवाद


1
क्या आप #defineनिर्देशन में कोष्ठक हटा सकते हैं ? मैंने इसका परीक्षण नहीं किया, लेकिन ऐसा लगता है कि उनकी कोई आवश्यकता नहीं है।

1
हर मामले में c!=82हो सकता है c-82जहां आप इसका इस्तेमाल करते हैं?
ज़ाचारि

1

पायथन 2 , 287 बाइट्स

n,d=input()
t,a,b,c,e,k=' __________   ','(__________@% ','|<*)_____><|| ','|          || ',"'=========='' ",'\n'
print[t+k+a+k+k.join([b]*n)+k+k.join([c]*(3-n))+k*(n<3)+e,t[::-1]+k+a[::-1].replace(*'()')+k+k.join([b[::-1].replace(*')(')]*n)+k+k.join([c[::-1]]*(3-n))+k*(n<3)+e[::-1]][d]

इसे ऑनलाइन आज़माएं!

इनपुट इस प्रारूप की संख्याओं का एक अल्पविराम से अलग टपल है 2, 1:। पहली संख्या मछली की मात्रा है और दूसरी बाईं के लिए 0 और दाईं ओर 1 है।

यह दूसरे जवाब को बाहर करने के प्रयास के रूप में शुरू हुआ (मैंने पूरी तरह से सोचा था कि मैं कर सकता हूं), लेकिन यह बेकार है। : पी अगर कोई भी इसका सिर और पूंछ बना सकता है और इसे गोल्फ में मदद कर सकता है (मैं इसे दोष देता हूं कि यह अभी 12 बजे है), मुझे खुशी होगी।


फिर भी महान प्रयास!
वैल्ली वेस्ट

1

सी # (.NET कोर), 289 बाइट्स

(h,d)=>{var l=d=='L';string r=(l?" ":"  ")+"__________\n"+(l?"(":"%@")+"__________"+(l?"@%":")")+"\n";for(int i=0;i<(h>3?h:3);i++){r+=(l?"|":"||")+(i<h?(d=='L'?"<*)_____><":(d=='R'?"><_____(*>":"")):"          ")+(l?"||":"|")+'\n';}var b=(l?"'":"''")+"=========="+(l?"''":"'");return r+b;}

इसे ऑनलाइन आज़माएं!

एक पूर्णांक और एक चार (L, R) को पैरामीटर के रूप में लेता है और परिणामी स्ट्रिंग को आउटपुट करता है।

ओह। कुछ कष्टप्रद स्ट्रिंग स्थिरांक से निपटने के लिए, दुख की बात है कि आप सिर्फ string * lengthC # में नहीं कर सकते। और विधि new string(char, length)बाइट लागत के लायक नहीं होती।


यह एल्गोरिथ्म इस प्रकार काम करता है:

  1. शुरुआत में हम यह निर्धारित करते हैं कि सार्डिन दाएं या बाएं का सामना करते हैं, क्योंकि हम उसके बाद अपने तारों को प्रारूपित करेंगे। हम शीर्ष के लिए एक स्ट्रिंग बनाते हैं, कुछ सशर्त ऑपरेटरों के साथ एल और आर परिप्रेक्ष्य के बीच स्विच करने के लिए।
  2. फिर हम एक लूप बनाते हैं जो न्यूनतम पर 3 बार और बाएं इनपुट समय पर अधिकतम चलता है। इस तरह हम अपने बॉक्स में 3 सार्डिन से कम जगह होने पर खाली स्थान बना सकते हैं।
  3. इस लूप के अंदर हम एक स्ट्रिंग को प्रारूपित करते हैं, परिप्रेक्ष्य के आधार पर और, अगर h > i, हम इसके अंदर एक चुन्नी डालते हैं। यदि i >= h, एक खाली जगह होगी जहां एक चुन्नी सामान्य रूप से होगी।
  4. अंत में हम बॉक्स के निचले भाग को बनाते हैं, फिर से परिप्रेक्ष्य के अनुसार स्वरूपित किया जाता है।


1

जावास्क्रिप्ट (ईएस 6), 283 273 269 251 बाइट्स

सहेजे गए 10 बाइट्स @WallyWest की बदौलत

अतिरिक्त पार्स को हटाने के लिए 4 बाइट्स सहेजे गए

सहेजे गए 18 बाइट्स @ThePirateBay की बदौलत

मानक पुस्तकालय में स्ट्रिंग रिवर्सल की कमी से ग्रस्त हैं। एक फ़ंक्शन को परिभाषित करता है जो nमछली की संख्या और dदिशा के लिए इनपुट लेता है । फेंकता है अगर d"L" या "R" नहीं है।

(n,d,_=c=>c.repeat(10),x=_(`_`),z=a=>a.reverse``.join``)=>
([p,q,g,r,s]=d>`L`?d>`R`?[]:[`)`,`(`,`>`,z,y=>z(y.split``)]:
[`(`,`)`,`<`,a=>a.join``,y=>y],` ${x}
`+r([p,x,s(`@%`)])+`
`+(r([`|`,g,`*`,q,`_____`,`><`,`||`])+`
`).repeat(n)+r([`'`,_(`=`),`''`]))

इसे ऑनलाइन आज़माएं


PPCG में आपका स्वागत है! हमें उम्मीद है कि आप इसे यहाँ पसंद करेंगे ... आइए देखें कि हम आपके स्कोर को नीचे गिराने के लिए क्या कर सकते हैं ... शानदार प्रयास!
वैलेस्ट वेस्ट

@ धन्यवाद धन्यवाद! एक फ़ंक्शन को खींचकर और if...else ifविनाशकारी असाइनमेंट के साथ नेस्टेड टर्नरी को बदलकर एक और 17 बाइट्स को बंद कर दिया । हालांकि मैं विचारों से बाहर हूं ...
जारेड स्मिथ

1
@WallyWest मैं _फ़ंक्शन को दो बार उपयोग करता हूं , 10 अंडरस्कोर (जो दो बार उपयोग किया जाता है) के लिए, एक बार 10 समान संकेतों के लिए, इसलिए फ़ंक्शन में होने से मुझे बाइट मिलती है। और जब तक मैं टेम्पलेट स्ट्रिंग्स का गलत उपयोग नहीं कर रहा हूं, तब तक कॉन्टेक्टेशन के बजाय उनका उपयोग करना 3 बाइट्स अधिक है
जेरेड स्मिथ

1
@ टिप के लिए धन्यवाद, कि और कुछ अनावश्यक parens को हटाने 14 बाइट्स बचा लिया।
जेरेड स्मिथ

1
@ ज़ाचारी ने किया। अगर मुझे इंटरनेट पर अजनबियों को खुश करने में मज़ा नहीं आया, तो मैं एसई पर पहले स्थान पर नहीं रहूंगा।
जेरेड स्मिथ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.