ความท้าทาย:
วาดสี่เหลี่ยมผืนผ้าของกล่อง ASCII: []
กฎระเบียบ:
รับความกว้างและความสูง
คุณสามารถสมมติว่าทั้งสองนี้เป็นตัวเลข
ต้องสร้างสตริงที่มีอักขระบรรทัดใหม่ \ n
ตัวอย่าง:
2, 2:
[][]
[][]
2, 3:
[][]
[][]
[][]
Bytes Fewest ชนะ
ความท้าทาย:
วาดสี่เหลี่ยมผืนผ้าของกล่อง ASCII: []
กฎระเบียบ:
รับความกว้างและความสูง
คุณสามารถสมมติว่าทั้งสองนี้เป็นตัวเลข
ต้องสร้างสตริงที่มีอักขระบรรทัดใหม่ \ n
ตัวอย่าง:
2, 2:
[][]
[][]
2, 3:
[][]
[][]
[][]
Bytes Fewest ชนะ
คำตอบ:
Grid@Table["[]",{#2},{#}]&
Grid
วัตถุMathematica นับเป็น "สตริงที่มีอักขระบรรทัดใหม่" หรือไม่?
v&DiiX"
v % Concatenate the (non-existing) stack contents: gives []
&D % String representation: gives '[]'
ii % Take two inputs
X" % Repeat those numbers of times vertically and horizontally. Implicit display
-2 ไบต์โดยเคล็ดลับที่ชาญฉลาดต้องขอบคุณ insert_name_here
VE*`Y
คำอธิบาย:
VE*`Y
V # Loop
E # <input> number of times
`Y # String representation of empty list (used to be "[]", but insert_name_here pointed out this shorter alternative)
* # repeat string implicit input number of times
# implicit print
`Y
(แสดงสตริงของรายการที่ว่างเปล่า) "[]"
แทน
f(w,h){for(h*=w;h--;)printf(h%w?"[]":"[]\n");}
หรือ
f(w,h){for(h*=w;h--;)printf("[]%c",h%w?0:10);}
รหัสครั้งแรกของฉันพยายามเล่นกอล์ฟฉันพลาดอะไรไปหรือเปล่า?
f(w,h){h*=w;while(h--)printf("\n[]"+!(h%w));}
for
วนซ้ำทำให้รหัสสั้นลงอีกหรือ
F„[]×,
คำอธิบาย
อินพุตใช้เป็น height, width
F # height times do
„[] # push "[]"
× # repeat width times
, # print with newline
>;;;;;;~++++++++:>~;;;;:>~*(-:~<~+-::>-:::<~<-+++++++++~:::<~+-:::>-::*)-::<-::::>-::(;)::>-::*(-:~<~+-::>-:::<~<-+++++++++~:::<~+-:::>-::*)-:<~<;;;;;-+>-:<-:-(-:::~<-:::(~<#<-;;-#~;)-:<#-::<;>-:-)
ลองออนไลน์! ต้องมีศูนย์ไบต์หลังจากแต่ละหมายเลขอินพุต
ฉันก็ไม่รู้เหมือนกันว่ามันทำงานอย่างไร สิ่งที่ฉันสามารถบอกคุณได้ว่าส่วนนี้ของรหัส:
*(-:~<~+-::>-:::<~<-+++++++++~:::<~+-:::>-::*)-::<-::::>-::(;)::>-::*(-:~<~+-::>-:::<~<-+++++++++~:::<~+-:::>-::*)
กำลังแยกวิเคราะห์หมายเลขอินพุต
+++++++++[>++++++++++<-]>+[>+>+<<-]>>++>,>+++++++++[<----->-]<--->>>,>+++++++++[<----->-]<--->++++++++++<[<<<[>+>+<<-]>[<<<.>.>>-]>[<<+>>-]>>.<-]
รหัสกอล์ฟครั้งแรกของฉัน! เย้!
อินพุตอยู่ใน ascii + 48 ดังนั้นในการทำ 50, 50 คุณต้องป้อน b, b (ตัวอักษร ascii สำหรับ 98)
+++++++++[>++++++++++<-]>+ Get the opening square bracket into first position
[>+>+<<-] Get it into the second and third position
>>++ Get the third position to be the closing bracket
>
,>+++++++++[<----->-]<--- Get first number into fourth cell
>>>
,>+++++++++[<----->-]<--- Get second number into seventh cell
>++++++++++ get newline into 8th position
<
[ Start our height loop
<<<[>+>+<<-] Get the width into the fifth and sixth positions
>[ Start our width loop at the fifth position
<<<.>. Print the second and third positions
>>-] Decrement the fifth position
>
[<<+>>-] copy the sixth position into the fourth position
>>. print newline
<-]
'[]'$~],+:@[
'[]'$~],+:@[ input: y, x
+:@[ double y
], pair with x
this gives (x, 2y)
$~ shape the left argument into the right argument's shape
'[]' 2-length character string
นี้จะช่วยให้เราx
โดย2y
สตริงของการทำซ้ำ[]
ตัวละคร
ẋ⁾[]ẋ$Y
ลิงก์ dyadic ส่งคืนรายการของอักขระ (หรือโปรแกรมทั้งหมดพิมพ์ผลลัพธ์)
ẋ⁾[]ẋ$Y - Main link: number w, number h e.g. 2, 3
ẋ - repeat w h times [2,2,2]
$ - last two links as a monad:
⁾[] - literal ['[',']'], "[]"
ẋ - repeat list (vectorises) ["[][]","[][]","[][]"]
Y - join with newlines "[][]\n[][]\n[][]"
- if a full program, implicit print
.+
$*
1(?=1*(¶1+))|.
$1
G`1
1
[]
ลองออนไลน์! รับความสูงและความกว้างของอินพุตเป็นบรรทัดแยกกัน
Ài[]<esc>ÀÄ
ที่เป็น<esc>
0x1b
Ài[]<esc> " arg1 times insert []
ÀÄ " arg2 times duplicate this line
M"[]"َJ,
M"[]"َJ,
M //Executes code input1 times
"[]" //Pushes []
َ //Duplicates [] input2 times
J //Joins the stack
, //Prints with a trailing newline
param($w,$h),("[]"*$w)*$h
-3 ขอบคุณ Mathias!
param($w,$h),("[]"*$w)*$h
U*V
สามารถย่อให้เล็กลงได้N×
N
เมื่อคืนนี้ ไม่ดื่มเหล้า & กอล์ฟเด็ก ๆ !
'[]'⍴⍨⊢,2×⊣
'[]'
สตริง
⍴⍨
วนซ้ำเพื่อเติมรูปร่าง
⊢
อาร์กิวเมนต์ที่ถูกต้อง (แถว)
,
และ
2×
สองครั้ง
⊣
อาร์กิวเมนต์ซ้าย (คอลัมน์)
EN×[]Iη
ลองออนไลน์! การเชื่อมโยงคือการใช้รหัสเวอร์ชันอย่างละเอียด รับอินพุตตามลำดับความสูงความกว้าง การวาดภาพดั้งเดิมของ Charcoal ไม่เหมาะกับสิ่งนี้ดังนั้นนี่จึงเป็นวิธีที่ง่ายและใช้ซ้ำ[]
สตริงอย่างเหมาะสม คำอธิบาย:
N First input as a number
E Map over implcit range
η Second input
I Cast to number
[] Literal string
× Repeat
Implicitly print on separate lines
p=paste
function(w,h)p(rep(p(rep('[]',w),collapse=''),h),collapse='
')
ส่งคืนฟังก์ชันที่ไม่ระบุชื่อที่สร้างและส่งคืนสตริง
function(w,h)write(matrix('[]',w,h),'',w,,'')
ฟังก์ชั่นไม่ระบุชื่อที่พิมพ์สตริงในรูปแบบที่ต้องการ
6 ไบต์ของรหัส +1 สำหรับ-R
ธง
VÆç"[]
ไม่ทำงานในรุ่นล่าสุดเนื่องจากข้อผิดพลาดที่มีç
แต่มันไม่ทำงานในการกระทำ f619c52
ทดสอบออนไลน์!
VÆ ç"[]
VoX{Uç"[]"} // Ungolfed
// Implicit: U, V = input integers
VoX{ } // Create the range [0...V) and replace each item X with
Uç"[]" // U copies of the string "[]".
-R // Join the result with newlines.
// Implicit: output result of last expression
[:|?[:|?@[]`';
คำอธิบาย:
[:| FOR a = 1 to (read input from cmd line)
? PRINT a newlne
[:| FOR c = 1 to (read input from cmd line)
?@[]` PRINT A$ (containing the box)
'; and inject a semicolon in the compiled QBasic code to suppress newlines
การดำเนินการนี้ใช้อาร์กิวเมนต์ตามลำดับ #rows, #cols เอาต์พุตเริ่มต้นด้วยการขึ้นบรรทัดใหม่
seq $(($1*$2))|sed s/.*/[]/|tr -d "
"|fold -w $(($1*2))
ลองออนไลน์! ใช้รสชาติทุบตี TIO ตั้งแต่ฉันเปิดหน้าต่าง
(w,h)=>"".PadLeft(h).Replace(" ","".PadLeft(w).Replace(" ","[]")+'\n').Trim();
นี่สั้นกว่า for-loops และฉันไม่ทราบถึงฟังก์ชั่นใด ๆ ใน C # ซึ่งสามารถทำซ้ำได้โดยใช้รหัสน้อยลง
l~"[]"*N+*
จากความคิดเห็นบรรทัดใหม่ต่อท้ายได้รับอนุญาตในขณะนี้
w=>h=>("[]".repeat(w)+`
`).repeat(h)
f=
w=>h=>("[]".repeat(w)+`
`).repeat(h)
oninput=_=>o.innerText=f(+i.value)(+j.value);o.innerText=f(i.value=2)(j.value=2)
*{font-family:sans-serif;}
input{margin:0 5px 0 0;width:50px;}
<label for=i>w: </label><input id=i type=number><label for=j>h: </label><input id=j type=number><pre id=o>