किसी भी आकार का टाइल वाला क्यूब ड्रा करें


12

ASCII कला में किसी भी आकार का एक टाइल वाला क्यूब ड्रा करें।

आपको तीन नंबर दिए जाएंगे a, bऔर c, कार्यक्रम को एक * b * c आकार के क्यूब का उत्पादन करना चाहिए।

उदाहरण

3 3 3 ->

    ____ ____ ____
  /____/____/____/|
 /____/____/____/||
/____/____/____/|||
|____|____|____|||/
|____|____|____||/
|____|____|____|/

5 2 3 ->

    ____ ____ ____ ____ ____
  /____/____/____/____/____/|
 /____/____/____/____/____/||
/____/____/____/____/____/||/
|____|____|____|____|____||/
|____|____|____|____|____|/

4 6 5 ->

      ____ ____ ____ ____ 
    /____/____/____/____/|
   /____/____/____/____/||
  /____/____/____/____/|||
 /____/____/____/____/||||
/____/____/____/____/|||||
|____|____|____|____||||||
|____|____|____|____|||||/
|____|____|____|____||||/
|____|____|____|____|||/
|____|____|____|____||/
|____|____|____|____|/

सबसे छोटा कोड जीतता है।


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

इसके अलावा, के लिए मान्य वर्ग के हैं a, bऔर c? उदाहरण के लिए, क्या किसी भी आयाम की अनुमति है 0?
मेलामोकब

@stevether: मैंने "टाइल वाले क्यूब" के बारे में नहीं सोचा, यह एक बेहतर नाम है।
beary605

4
एक घन में समान किनारे होते हैं। बेहतर है कि इसे एक टाइल वाला पैरेल्लेपिपेड या ईंट कहा जाए।
डेविड ऑक

5
@ beary605 मैं गणितज्ञ नहीं हूं, लेकिन मुझे लगता है कि आप एक आयताकार घनाकार का जिक्र कर रहे होंगे। ( en.wikipedia.org/wiki/Cuboid ) एक घन, एक विशेष प्रकार का आयताकार घनाभ, चौकोर चेहरे होते हैं। ( en.wikipedia.org/wiki/Cube ) जहाँ तक मुझे पता है, ऑब्जेक्ट के आकार का नाम तब नहीं बदलता है जब ऑब्जेक्ट को टाइल किया जाता है।
०२ पर डेविड

जवाबों:


10

पाइथन, 145 चरस

a,b,c=map(int,raw_input().split())
for i in range(b+c+1):print(' '*(c-i)+((' /|'[(i>c)+(i>0)]+'_'*4)*(a+1))[:-4]+('|'*(b+c-i))[:b]+'/')[:5*a+c+1]

$ echo "5 6 3" | ./cube.py
    ____ ____ ____ ____ ____
  /____/____/____/____/____/|
 /____/____/____/____/____/||
/____/____/____/____/____/|||
|____|____|____|____|____||||
|____|____|____|____|____||||
|____|____|____|____|____||||
|____|____|____|____|____|||/
|____|____|____|____|____||/
|____|____|____|____|____|/

क्या हम प्रिंटआउट की तस्वीर देख सकते हैं?
डेविड 23

@DavidCarraher: किया गया।
कीथ रान्डेल

4

गणितज्ञ 148 143 139 वर्ण

मैंने पारदर्शी ग्लास टाइल्स का उपयोग करने का फैसला किया।

निम्नलिखित कोड ASCII वर्णों को प्रिंट करता है "-" किनारों, ए, बी और सी के साथ घनाभ के रूप में। नीचे दी गई आकृति में आप केवल एक चीज देख रहे हैं।

w_~e~_ := {Arrowheads@Table[{1, p/9, Graphics@Style[Text["-"], Red]}, {p, 9}], White,Arrow@w};
GridGraph[{a, b, c} + 1, VertexSize -> 0, EdgeShapeFunction -> e]

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


यह ascii नहीं है ... शांत विचार है, लेकिन नहीं।
बूथबी

1
यह मेरी ओर से निहायत ही चुटीला था। प्रतिक्रिया के लिए धन्यवाद।
डेविड

0

पायथन 3 (188)

a,b,c=map(int,input().split())
x=a+1
k="_"*4
p=print
l=5*a+c+1
p(" "*c+k.join(" "*x))
r=" "*c+k.join("/"*x)+"|"*b+"/"
exec("r=r[1:];p(r[:l]);"*c+'b-=1;p((k.join("|"*x)+"|"*b+"/")[:l]);'*b)

यह पहले से ही पिटा हुआ है, लेकिन विचार किसी और की मदद कर सकता है।


0

सी, 226 , 212

s(x,y){x<1?:putchar(" |/_\n"[y],s(x-1,y));}i,j,x,y,z;main(){for(scanf("%d%d%d",&x,&y,&z);j<=y+z;s(i,1),s(j++>y,2),s(1,4)){s(z-j,0);for(i=x;s(1,j?j>z?1:2:0),i;i--)s(4,3);i=y+z-j;if(i>j)i=j;if(i>z)i=z;if(i>y)i=y;}}

एक बार फिर अन्य लैंग की तुलना में एक खराब स्कोर - तो क्या कोई सी गोल्फ गुरु सुधार करने में सक्षम है?

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