วาดลวดลาย Houndstooth


22

เขียนโปรแกรมหรือฟังก์ชั่นที่ใช้จำนวนเต็มบวกสองตัวความกว้างและความสูงและวาดรูปแบบกริดศิลปะ ASCII houndstoothกับมิติเหล่านั้นโดยใช้ขนาดข้อความ 25 × 26 เป็นเซลล์ฐาน:

.......#.....#####.......
.......##.....#####......
.......###.....#####.....
.......####.....####.....
.......#####.....###.....
.......######.....##.....
.......#######.....#.....
.......########..........
####################.....
.####################....
..####################...
...####################..
....####################.
.....####################
#.....##############.####
##.....#############..###
###....#############...##
####...#############....#
#####..#############.....
.#####.#############.....
..##################.....
........#####............
.........#####...........
..........#####..........
...........#####.........
............#####........

ดังนั้นถ้าอินพุตเป็น2,1เอาต์พุตจะเป็น:

.......#.....#####..............#.....#####.......
.......##.....#####.............##.....#####......
.......###.....#####............###.....#####.....
.......####.....####............####.....####.....
.......#####.....###............#####.....###.....
.......######.....##............######.....##.....
.......#######.....#............#######.....#.....
.......########.................########..........
####################.....####################.....
.####################.....####################....
..####################.....####################...
...####################.....####################..
....####################.....####################.
.....####################.....####################
#.....##############.#####.....##############.####
##.....#############..#####.....#############..###
###....#############...#####....#############...##
####...#############....#####...#############....#
#####..#############.....#####..#############.....
.#####.#############......#####.#############.....
..##################.......##################.....
........#####....................#####............
.........#####....................#####...........
..........#####....................#####..........
...........#####....................#####.........
............#####....................#####........

และถ้าอินพุตเป็น5,4เอาต์พุตจะเป็น:

.......#.....#####..............#.....#####..............#.....#####..............#.....#####..............#.....#####.......
.......##.....#####.............##.....#####.............##.....#####.............##.....#####.............##.....#####......
.......###.....#####............###.....#####............###.....#####............###.....#####............###.....#####.....
.......####.....####............####.....####............####.....####............####.....####............####.....####.....
.......#####.....###............#####.....###............#####.....###............#####.....###............#####.....###.....
.......######.....##............######.....##............######.....##............######.....##............######.....##.....
.......#######.....#............#######.....#............#######.....#............#######.....#............#######.....#.....
.......########.................########.................########.................########.................########..........
####################.....####################.....####################.....####################.....####################.....
.####################.....####################.....####################.....####################.....####################....
..####################.....####################.....####################.....####################.....####################...
...####################.....####################.....####################.....####################.....####################..
....####################.....####################.....####################.....####################.....####################.
.....####################.....####################.....####################.....####################.....####################
#.....##############.#####.....##############.#####.....##############.#####.....##############.#####.....##############.####
##.....#############..#####.....#############..#####.....#############..#####.....#############..#####.....#############..###
###....#############...#####....#############...#####....#############...#####....#############...#####....#############...##
####...#############....#####...#############....#####...#############....#####...#############....#####...#############....#
#####..#############.....#####..#############.....#####..#############.....#####..#############.....#####..#############.....
.#####.#############......#####.#############......#####.#############......#####.#############......#####.#############.....
..##################.......##################.......##################.......##################.......##################.....
........#####....................#####....................#####....................#####....................#####............
.........#####....................#####....................#####....................#####....................#####...........
..........#####....................#####....................#####....................#####....................#####..........
...........#####....................#####....................#####....................#####....................#####.........
............#####....................#####....................#####....................#####....................#####........
.......#.....#####..............#.....#####..............#.....#####..............#.....#####..............#.....#####.......
.......##.....#####.............##.....#####.............##.....#####.............##.....#####.............##.....#####......
.......###.....#####............###.....#####............###.....#####............###.....#####............###.....#####.....
.......####.....####............####.....####............####.....####............####.....####............####.....####.....
.......#####.....###............#####.....###............#####.....###............#####.....###............#####.....###.....
.......######.....##............######.....##............######.....##............######.....##............######.....##.....
.......#######.....#............#######.....#............#######.....#............#######.....#............#######.....#.....
.......########.................########.................########.................########.................########..........
####################.....####################.....####################.....####################.....####################.....
.####################.....####################.....####################.....####################.....####################....
..####################.....####################.....####################.....####################.....####################...
...####################.....####################.....####################.....####################.....####################..
....####################.....####################.....####################.....####################.....####################.
.....####################.....####################.....####################.....####################.....####################
#.....##############.#####.....##############.#####.....##############.#####.....##############.#####.....##############.####
##.....#############..#####.....#############..#####.....#############..#####.....#############..#####.....#############..###
###....#############...#####....#############...#####....#############...#####....#############...#####....#############...##
####...#############....#####...#############....#####...#############....#####...#############....#####...#############....#
#####..#############.....#####..#############.....#####..#############.....#####..#############.....#####..#############.....
.#####.#############......#####.#############......#####.#############......#####.#############......#####.#############.....
..##################.......##################.......##################.......##################.......##################.....
........#####....................#####....................#####....................#####....................#####............
.........#####....................#####....................#####....................#####....................#####...........
..........#####....................#####....................#####....................#####....................#####..........
...........#####....................#####....................#####....................#####....................#####.........
............#####....................#####....................#####....................#####....................#####........
.......#.....#####..............#.....#####..............#.....#####..............#.....#####..............#.....#####.......
.......##.....#####.............##.....#####.............##.....#####.............##.....#####.............##.....#####......
.......###.....#####............###.....#####............###.....#####............###.....#####............###.....#####.....
.......####.....####............####.....####............####.....####............####.....####............####.....####.....
.......#####.....###............#####.....###............#####.....###............#####.....###............#####.....###.....
.......######.....##............######.....##............######.....##............######.....##............######.....##.....
.......#######.....#............#######.....#............#######.....#............#######.....#............#######.....#.....
.......########.................########.................########.................########.................########..........
####################.....####################.....####################.....####################.....####################.....
.####################.....####################.....####################.....####################.....####################....
..####################.....####################.....####################.....####################.....####################...
...####################.....####################.....####################.....####################.....####################..
....####################.....####################.....####################.....####################.....####################.
.....####################.....####################.....####################.....####################.....####################
#.....##############.#####.....##############.#####.....##############.#####.....##############.#####.....##############.####
##.....#############..#####.....#############..#####.....#############..#####.....#############..#####.....#############..###
###....#############...#####....#############...#####....#############...#####....#############...#####....#############...##
####...#############....#####...#############....#####...#############....#####...#############....#####...#############....#
#####..#############.....#####..#############.....#####..#############.....#####..#############.....#####..#############.....
.#####.#############......#####.#############......#####.#############......#####.#############......#####.#############.....
..##################.......##################.......##################.......##################.......##################.....
........#####....................#####....................#####....................#####....................#####............
.........#####....................#####....................#####....................#####....................#####...........
..........#####....................#####....................#####....................#####....................#####..........
...........#####....................#####....................#####....................#####....................#####.........
............#####....................#####....................#####....................#####....................#####........
.......#.....#####..............#.....#####..............#.....#####..............#.....#####..............#.....#####.......
.......##.....#####.............##.....#####.............##.....#####.............##.....#####.............##.....#####......
.......###.....#####............###.....#####............###.....#####............###.....#####............###.....#####.....
.......####.....####............####.....####............####.....####............####.....####............####.....####.....
.......#####.....###............#####.....###............#####.....###............#####.....###............#####.....###.....
.......######.....##............######.....##............######.....##............######.....##............######.....##.....
.......#######.....#............#######.....#............#######.....#............#######.....#............#######.....#.....
.......########.................########.................########.................########.................########..........
####################.....####################.....####################.....####################.....####################.....
.####################.....####################.....####################.....####################.....####################....
..####################.....####################.....####################.....####################.....####################...
...####################.....####################.....####################.....####################.....####################..
....####################.....####################.....####################.....####################.....####################.
.....####################.....####################.....####################.....####################.....####################
#.....##############.#####.....##############.#####.....##############.#####.....##############.#####.....##############.####
##.....#############..#####.....#############..#####.....#############..#####.....#############..#####.....#############..###
###....#############...#####....#############...#####....#############...#####....#############...#####....#############...##
####...#############....#####...#############....#####...#############....#####...#############....#####...#############....#
#####..#############.....#####..#############.....#####..#############.....#####..#############.....#####..#############.....
.#####.#############......#####.#############......#####.#############......#####.#############......#####.#############.....
..##################.......##################.......##################.......##################.......##################.....
........#####....................#####....................#####....................#####....................#####............
.........#####....................#####....................#####....................#####....................#####...........
..........#####....................#####....................#####....................#####....................#####..........
...........#####....................#####....................#####....................#####....................#####.........
............#####....................#####....................#####....................#####....................#####........
  • อาร์กิวเมนต์ความกว้างต้องมาก่อน ทุกรูปแบบการป้อนข้อมูลที่เหมาะสม (เช่นw,h, w h, (w, h)) จะปรับ
  • พิมพ์หรือส่งคืนผลลัพธ์ด้วยการขึ้นบรรทัดใหม่ที่เป็นตัวเลือก
  • คุณอาจจะใช้ที่แตกต่างกันสองASCII พิมพ์ตัวอักษรในสถานที่และ.#
  • คุณสามารถแปลมือถือฐานในแนวตั้งหรือแนวนอนเช่นถ้ามันมีเงื่อนไขขอบเขตระยะ ดังนั้นด้านบนซ้ายมุมของการส่งออกจะไม่จำเป็นต้อง 7 × 8 สี่เหลี่ยมผืนผ้า.'s ( กฎใหม่! )

รหัสที่สั้นที่สุดในหน่วยไบต์ชนะ

ในฐานะโบนัสให้สร้างภาพแทนโดยที่แต่ละ.พิกเซลเป็นหนึ่งสีและแต่ละ#พิกเซลเป็นสีอื่น


โบนัสชนิดใด คุกกี้ .. ;-)
Zach Gates

4
สกรู "รหัสที่สั้นที่สุดที่ชนะ" ของคุณฉันนี่มันส์ขนาดนี้!
El'endia Starman

7
@ZachGates บางทีสุนัขบิสกิต
งานอดิเรกของ Calvin

หมุนไปที่นั่น!
เกร็กเบคอน

คำตอบ:


17

Pyth, 61 60 55 49 ไบต์

j*vwmjk*Qd++Rm012Jmms}k++Rhd5U-d4T=T13+Lm1T_mP_dJ

ลองใช้งานออนไลน์: การสาธิต

แก้ไข 1: รวมสองคำสั่งที่สร้างวงดนตรีและสามเหลี่ยม (ดูด้านล่าง)

แก้ไข 2: ไม่เห็นว่าเราสามารถใช้สัญลักษณ์ใด ๆ บันทึก 5 ไบต์แก้ไขแล้ว

แก้ไข 3: @ Calvin'sHobbies อนุญาตให้แปลภาพฐาน เนื่องจากวิธีการของฉันขึ้นอยู่กับความคิดนี้สิ่งนี้ช่วยได้ค่อนข้างมาก -6 ไบต์

และสำหรับโบนัสคุกกี้ :

.w*vw*RQ++Rm012Jmm*K255}k++Rhd5U-d4T=T13+LmKT_mP_dJ

นี้เป็นเพียง 2 ไบต์อีกต่อไป (51 bytes) o.pngและสร้างไฟล์ สำหรับอินพุต5\n4มันสร้างภาพต่อไปนี้:

ลาย Houndstooth

คำอธิบาย:

รูปแบบ Houndstooth ดูค่อนข้างผิดปกติจริงๆ แต่ถ้าเรานำคอลัมน์ซ้าย 7 ไปทางขวาและแถวบนสุด 5 แถวไปที่กระดุมเราจะได้รูปแบบที่ดีกว่า:

.#####...................
..#####..................
...#####.................
....#####................
.....#####...............
#.....#####..............
##.....#####.............
###.....#####............
####.....####............
#####.....###............
######.....##............
#######.....#............
########.................
#############.....#######
##############.....######
###############.....#####
################.....####
#################.....###
##################.....##
#############.#####.....#
#############..#####.....
#############...#####....
#############....#####...
#############.....#####..
#############......#####.
#############.......#####

ครั้งแรกที่ฉันผลิตบล็อก 13x13 บนซ้าย:

.#####.......
..#####......
...#####.....
....#####....
.....#####...
#.....#####..
##.....#####.
###.....#####
####.....####
#####.....###
######.....##
#######.....#
########.....

มีอสมการง่าย ๆ 2 ตัวที่อธิบายถึงสอง#-areas วงดนตรีที่สามารถอธิบายได้ด้วยและสามเหลี่ยมสามารถอธิบายได้ด้วยy + 1 <= x <= y + 5 x <= y - 5ฉันได้รวมเงื่อนไขทั้งสองนี้ไว้แล้ว:

Jmms}k++Rhd5U-d4T=T13
                 =T13   T = 13
 m               T      map each d of [0, 1, ..., 12] to: 
                           the list produced by
  m             T          map each k of [0, 1, ..., 12] to:
       +Rhd5                  the list [d+1, d+2, ..., d+5]
      +                       extended by 
            U-d4              the list [0, 1, ..., d - 5]
    }k                        test if k is in the list
   s                          and convert the boolean result to 1 or 0
J                       assign this 13x13 block to J

จากนั้น+Rm012เพิ่ม 12 ศูนย์ที่ส่วนท้ายของแต่ละแถวเพื่อรับบล็อก 25x13 ตอนบน

ตอนนี้บล็อก 25x13 ที่ต่ำกว่านั้นง่ายมาก ๆ :

+Lm1T_mP_dJ
      m   J    map each row d of J to:
       P_d        reverse the row and pop the last element
     _         reverse the order the rows
+Lm1T          add T ones at the beginning of each row. 

สิ่งที่เหลืออยู่ตอนนี้คือการทำซ้ำรูปแบบและพิมพ์

j*vwmjk*Qd+upperlower   implicit: Q = first input number
          +upperlower   combine the two blocks to a 25x26 block
    m                   map each row d to:
       *Qd                 repeat d Q times
     jk                    and join to a string
 *vw                    read another number from input and repeat
j                       join by newlines and print

ความแตกต่างกับรหัสโบนัสคุกกี้ :

  • 255 แทน 1
  • แทนที่จะmjk*Qdใช้*RQเพราะฉันไม่ต้องการสตริง
  • .w บันทึก 2D-Array นี้เป็นไฟล์ (แปลงเป็น png โดยปริยาย)

5
คำอธิบายที่ยอดเยี่ยม!
trichoplax

คุณหมายถึง "แถวล่างสุด 5 แถวขึ้นไปด้านบน" อย่างชัดเจนนั่นเป็นเพียงการพิมพ์ผิด ฉันไม่เข้าใจว่าทำไมความคิดเห็นของฉันถูกลบโดยไม่ต้องดำเนินการใด ๆ ดังนั้นฉันอายที่จะไปและแก้ไขโพสต์ของคุณตอนนี้ สรุปคำตอบที่ดีมากและคำอธิบายที่ยอดเยี่ยม ฉันได้อัปเดตก่อนหน้านี้แล้ว
ระดับแม่น้ำ St

@ สตีฟเวอร์ริลล์โอ้ขอโทษ ฉันคิดว่าคุณต้องการที่จะแก้ไขภาษาอังกฤษของฉันในทางที่ฉันอธิบายการเปลี่ยนแปลงกลับมา แก้ไขทันที ขอบคุณ
Jakube

11

CJam, 106 73 71 ไบต์

0000000: 71 7e 22 04 94 51 af 40 6e 73 b2 68 3a e1 7e 13 f2 a1  q~"..Q.@ns.h:.~...
0000012: 3e 1d de f5 64 9c 6b 0f 27 4c 36 d7 81 3d 30 35 56 f8  >...d.k.'L6..=05V.
0000024: cd e8 cd 7c dc 90 31 59 40 8b 8c 22 32 35 36 62 32 32  ...|..1Y@.."256b22
0000036: 62 41 73 33 39 2a 2e 2a 73 32 35 2f 2a 66 2a 4e 2a     bAs39*.*s25/*f*N*

พิมพ์1และ0แทนและ. #ลองใช้ออนไลน์ในล่าม CJamล่าม

มันทำงานอย่างไร

q~      e# Read and evaluate all input. This pushes W and H.
"…"     e# Push an encoding of run lengths of the characters in the output.
256b22b e# Convert from base 256 to base 22.
As39*   e# Push "10" and repeat it 39 times.
.*      e# Vectorized character repetition; multiply each base 22 digit (run
        e# length) by the corresponding character of "10…10".
s25/    e# Flatten and split into chunks of length 25.
*       e# Repeat the resulting array of rows H times.
f*      e# Repeat each row W times.
N*      e# Join the rows, separating by linefeeds.

โบนัสคุกกี้

0000000: 27 50 6f 31 70 71 7e 5d 5f 5b 32 35 5f 29 5d 2e 2a 5c  'Po1pq~]_[25_)].*\
0000012: 7e 22 04 94 51 af 40 6e 73 b2 68 3a e1 7e 13 f2 a1 3e  ~"..Q.@ns.h:.~...>
0000024: 1d de f5 64 9c 6b 0f 27 4c 36 d7 81 3d 30 35 56 f8 cd  ...d.k.'L6..=05V..
0000036: e8 cd 7c dc 90 31 59 40 8b 8c 22 32 35 36 62 32 32 62  ..|..1Y@.."256b22b
0000048: 41 73 33 39 2a 2e 2a 73 32 35 2f 2a 66 2a 73 2b 4e 2a  As39*.*s25/*f*s+N*

พิมพ์ Portable BitMap แทน ASCII art

ด้านล่างคือเอาต์พุตสำหรับอินพุต24 13แปลงเป็น PNG:

เอาท์พุต


7

Befunge-93 , 2120 1967 ไบต์

นี่คือบางส่วนที่มีคุณภาพสูงด้วยข้อยกเว้นสำหรับการแก้จุดบกพร่อง

&&00p10pv
v       <
    >94+2*20p        v
>00g|   >                v
    @                >10g>0020gv-1:<
                               >:0`|
                     ,       v    $<
                     +        >v>v>v>v>v>v>v>v>v>v>v>v>v>v>v>v>v>v>v>v>v>v>v>v>v>v>v
 v_$1-:#^_$20g1-20p55^       >|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>"!DAB"....@
 ,:
 >^".......#.....#####......."                                                    <
  ^".......##.....#####......"                                                  <
  ^".......###.....#####....."                                                <
  ^".......####.....####....."                                              <
  ^".......#####.....###....."                                            <
  ^".......######.....##....."                                          <
  ^".......#######.....#....."                                        <
  ^".......########.........."                                      <
  ^"####################....."                                    <
  ^".####################...."                                  <
  ^"..####################..."                                <
  ^"...####################.."                              <
  ^"....####################."                            <
  ^".....####################"                          <
  ^"#.....##############.####"                        <
  ^"##.....#############..###"                      <
  ^"###....#############...##"                    <
  ^"####...#############....#"                  <
  ^"#####..#############....."                <
  ^".#####.#############....."              <
  ^"..##################....."            <
  ^"........#####............"          <
  ^".........#####..........."        <
  ^"..........#####.........."      <
  ^"...........#####........."    <
  ^"............#####........"  <
^                     p00-1g00<

(เห็นได้ชัดว่านี่ยังเล่นได้ง่ายมากฉันแค่อยากได้คำตอบตอนนี้)

ดังนั้นนี้ประกอบด้วยส่วนต่าง ๆ

&&00p10p

นี่เป็นเพียงเครื่องมือเริ่มต้นที่ใช้ในค่าและเก็บไว้

    >94+2*20p
>00g|      > 
    @  

ส่วนนี้รีเซ็ตการนับแถวเพื่อให้เราสามารถพิมพ์รูปภาพ (ความกว้าง) อื่น ๆ แบบเคียงข้างกัน 94+2*กำลังคำนวณ 26 จำนวนแถว นอกจากนี้หากความสูงเป็นศูนย์โปรแกรมจะยุติการทำงาน

>10g

สิ่งนี้จะได้ความกว้างของสแต็ก

0020gv-1:<
     >:0`|
         $

สิ่งนี้จะเพิ่มค่าดัมมี่สองค่าในสแต็กเพื่อบอกเมื่อเราดำเนินการเสร็จแล้วรวมถึงแถว (n) ที่เราเปิดอยู่ นี่จะเพิ่มค่า n ลงในสแต็ก

>v>v>v>v>v>v>v>v>v>v>v>v>v>v>v>v>v>v>v>v>v>v>v>v>v>v>v
|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>"!DAB"....@

                                                    <
                                                  <
                                                <
                                              <
                                            <
                                          <
                                        <
                                      <
                                    <
                                  <
                                <
                              <
                            <
                          <
                        <
                      <
                    <
                  <
                <
              <
            <
          <
        <
      <
    <
  <
<

นี่เป็นส่วนควบคุมที่จะไปยังแถว (26-n) นี่เป็นวิธีที่ง่ายที่สุดที่ฉันสามารถหาวิธีที่จะทำ

".......#.....#####......."
".......##.....#####......"
".......###.....#####....."
".......####.....####....."
".......#####.....###....."
".......######.....##....."
".......#######.....#....."
".......########.........."
"####################....."
".####################...."
"..####################..."
"...####################.."
"....####################."
".....####################"
"#.....##############.####"
"##.....#############..###"
"###....#############...##"
"####...#############....#"
"#####..#############....."
".#####.#############....."
"..##################....."
"........#####............"
".........#####..........."
"..........#####.........."
"...........#####........."
"............#####........"

เห็นได้ชัดว่านี่คือการอ่านและจะปรากฏขึ้นไม่ว่าแถวใดก็ตามที่ถูกอ่านลงบนสแต็กหลัง ซึ่งหมายความว่าเมื่อเรานำออกมามันจะพิมพ์อย่างถูกต้อง

v_
,:
>^

สิ่งนี้จะพิมพ์จนกว่าสแต็คจะชนกับ 0 ซึ่งเราทิ้งไว้ก่อนหน้านี้

1-:#^_

สิ่งนี้ใช้เวลา 1 จากจำนวนของบรรทัดที่ระบุในการพิมพ์จากนั้นตรวจสอบว่าเป็นศูนย์หรือไม่ หากไม่ใช่ศูนย์เราจะกลับไปที่บล็อกรหัสที่สี่

          ,
          +
20g1-20p55^

ลบ 1 จากแถว (n), พิมพ์บรรทัดใหม่แล้วกลับไปที่บล็อก 3

p00-1g00

เมื่อพิมพ์แถวทั้งหมดแล้วจะลบแถวนี้จากความสูงเริ่มต้นและกลับไปที่บล็อก 2

โค้ดที่เหลือทั้งหมดเป็นโฟลว์ควบคุมหรือการจัดการสแต็ก เขียน mas นี้มากกว่าที่ฉันคิดว่ามันจะเป็น แต่ฉันพอใจกับลักษณะ มันสามารถเล่นกอล์ฟได้มากขึ้นและน่าจะเป็นโครงการต่ออีกวัน

2120 -> 1967 : ตัดแต่งบางบรรทัดที่มีพื้นที่ว่างเปล่าจำนวนมาก


1
ฉันเล่นกอล์ฟ ไม่ใช่คำตอบของคุณโดยเฉพาะ แต่ฉันเล่นกอล์ฟใน Befunge!
El'endia Starman

6

Perl, 243

(เพิ่มหนึ่งไบต์สำหรับ-nสวิตช์เพื่อดึงข้อมูลจาก stdin)

($w,$h)=split;for(1..$h){print((sprintf("%025b",hex)x$w).$/)foreach qw(20f80 307c0 383e0 3c1e0 3e0e0 3f060 3f820 3fc00 1ffffe0 fffff0 7ffff8 3ffffc 1ffffe fffff 107ffef 183ffe7 1c3ffe3 1e3ffe1 1f3ffe0 fbffe0 7fffe0 1f000 f800 7c00 3e00 1f00)}

นี่เป็นสิ่งที่ตรงไปตรงมา - มันจะแปลงอาเรย์ของเลขฐานสิบหก 26 ให้เป็นเลขฐานสองและพิมพ์ออกมาตามจำนวนครั้งที่ต้องการ

ตัวอย่าง:

การป้อนข้อมูล:

3 2

เอาท์พุท:

000000010000011111000000000000001000001111100000000000000100000111110000000
000000011000001111100000000000001100000111110000000000000110000011111000000
000000011100000111110000000000001110000011111000000000000111000001111100000
000000011110000011110000000000001111000001111000000000000111100000111100000
000000011111000001110000000000001111100000111000000000000111110000011100000
000000011111100000110000000000001111110000011000000000000111111000001100000
000000011111110000010000000000001111111000001000000000000111111100000100000
000000011111111000000000000000001111111100000000000000000111111110000000000
111111111111111111110000011111111111111111111000001111111111111111111100000
011111111111111111111000001111111111111111111100000111111111111111111110000
001111111111111111111100000111111111111111111110000011111111111111111111000
000111111111111111111110000011111111111111111111000001111111111111111111100
000011111111111111111111000001111111111111111111100000111111111111111111110
000001111111111111111111100000111111111111111111110000011111111111111111111
100000111111111111110111110000011111111111111011111000001111111111111101111
110000011111111111110011111000001111111111111001111100000111111111111100111
111000011111111111110001111100001111111111111000111110000111111111111100011
111100011111111111110000111110001111111111111000011111000111111111111100001
111110011111111111110000011111001111111111111000001111100111111111111100000
011111011111111111110000001111101111111111111000000111110111111111111100000
001111111111111111110000000111111111111111111000000011111111111111111100000
000000001111100000000000000000000111110000000000000000000011111000000000000
000000000111110000000000000000000011111000000000000000000001111100000000000
000000000011111000000000000000000001111100000000000000000000111110000000000
000000000001111100000000000000000000111110000000000000000000011111000000000
000000000000111110000000000000000000011111000000000000000000001111100000000
000000010000011111000000000000001000001111100000000000000100000111110000000
000000011000001111100000000000001100000111110000000000000110000011111000000
000000011100000111110000000000001110000011111000000000000111000001111100000
000000011110000011110000000000001111000001111000000000000111100000111100000
000000011111000001110000000000001111100000111000000000000111110000011100000
000000011111100000110000000000001111110000011000000000000111111000001100000
000000011111110000010000000000001111111000001000000000000111111100000100000
000000011111111000000000000000001111111100000000000000000111111110000000000
111111111111111111110000011111111111111111111000001111111111111111111100000
011111111111111111111000001111111111111111111100000111111111111111111110000
001111111111111111111100000111111111111111111110000011111111111111111111000
000111111111111111111110000011111111111111111111000001111111111111111111100
000011111111111111111111000001111111111111111111100000111111111111111111110
000001111111111111111111100000111111111111111111110000011111111111111111111
100000111111111111110111110000011111111111111011111000001111111111111101111
110000011111111111110011111000001111111111111001111100000111111111111100111
111000011111111111110001111100001111111111111000111110000111111111111100011
111100011111111111110000111110001111111111111000011111000111111111111100001
111110011111111111110000011111001111111111111000001111100111111111111100000
011111011111111111110000001111101111111111111000000111110111111111111100000
001111111111111111110000000111111111111111111000000011111111111111111100000
000000001111100000000000000000000111110000000000000000000011111000000000000
000000000111110000000000000000000011111000000000000000000001111100000000000
000000000011111000000000000000000001111100000000000000000000111110000000000
000000000001111100000000000000000000111110000000000000000000011111000000000
000000000000111110000000000000000000011111000000000000000000001111100000000

3

Rev 1, C, 118 115 bytes

i,x,y;f(w,h){for(i=26*h*(w*=25);i--;i%w||puts(""))x=i%25,y=i/w%26,putchar(((y>x^y>x+5^x>y+4)&y/13==x/13^y/13)+34);}

บันทึก 9 ไบต์เนื่องจากกฎใหม่ที่อนุญาตการแปลเซลล์ 3 w*=25ไบต์บันทึกไว้โดยการใช้งานของ โพสต์ที่เหลือยังคงไม่เปลี่ยนแปลง

Rev 0, C, 127 bytes

i,x,y;f(w,h){for(i=650*w*h;i--;i%(25*w)||puts(""))x=(i+20)%25,y=(i/25/w+8)%26,putchar(((y>x^y>x+5^x>y+4)&y/13==x/13^y/13)+34);}

สิ่งนี้จะผ่านตัวละครโดยพิมพ์ทีละตัว i%(25*w)||puts("")แทรกขึ้นบรรทัดใหม่ในตอนท้ายของแต่ละบรรทัด

วิธีการดูการออกแบบของฉันคล้ายกับของ Jakube แต่ฉันนำ 8 แถวบนสุดไปด้านล่างและคอลัมน์ขวา 5 คอลัมน์ทางซ้ายเพื่อรับมุมมองต่อไปนี้ ในโปรแกรมขั้นตอนนี้คือ "ย้อนกลับ" โดย+20และ+8ในนิพจน์สำหรับ x และ y

"""""####################
#"""""###################
##"""""##################
###"""""#################
####"""""################
#####"""""###############
"#####"""""##############
""#####"""""#############
"""#####""""#############
""""#####"""#############
"""""#####""#############
""""""#####"#############
"""""""##################
"""""""""""""#####"""""""
""""""""""""""#####""""""
"""""""""""""""#####"""""
""""""""""""""""#####""""
"""""""""""""""""#####"""
""""""""""""#"""""#####""
""""""""""""##"""""#####"
""""""""""""###"""""#####
""""""""""""####"""""####
""""""""""""#####"""""###
""""""""""""######"""""##
""""""""""""#######"""""#
""""""""""""########"""""

นอกเหนือจาก "การผกผันของสี" มันอาจดูคล้ายกันมาก แต่มีความแตกต่างที่สำคัญ: ลายเส้นทแยงมุมจับคู่ (โปรดทราบว่าการออกแบบดั้งเดิมไม่มีความสมมาตรในแนวทแยงเนื่องจากมีขนาด 25x26)

การแสดงออก((y>x^y>x+5^x>y+4)^y/13)+34ผลิตต่อไปนี้ที่ดำเนินการเปรียบเทียบต่างๆผลิตลายเส้นที่^y/13ผลิต "สีพลิก" ครึ่งทางขึ้นและ+34ใช้เวลาจำนวนที่เกิดขึ้นและช่วยเพิ่มไปยังช่วงแอสกี0,134,35

"""""####################
#"""""###################
##"""""##################
###"""""#################
####"""""################
#####"""""###############
"#####"""""##############
""#####"""""#############
"""#####"""""############
""""#####"""""###########
"""""#####"""""##########
""""""#####"""""#########
"""""""#####"""""########
########"""""#####"""""""
#########"""""#####""""""
##########"""""#####"""""
###########"""""#####""""
############"""""#####"""
#############"""""#####""
##############"""""#####"
###############"""""#####
################"""""####
#################"""""###
##################"""""##
###################"""""#
####################"""""

คำนี้&y/13==x/13ประเมินว่าเป็น false = 0 ในไตรมาสที่สี่บนขวาและล่างซ้ายซึ่งจะสร้างส่วนที่สองของรูปแบบดังแสดงก่อนหน้านี้ โปรดทราบว่าเนื่องจากโปรแกรม downcounts จุดเริ่มต้น x = y = 0 อยู่ที่ด้านล่างขวา สิ่งนี้มีประโยชน์เนื่องจากความ#กว้างของตัวอักษร 13 ตัวในขณะที่ความกว้าง"เพียง 12 ตัวอักษร


2

Befunge -93, 968 bytes

ใช่ถูกแล้ว! คำตอบ Befunge ที่แข่งขันได้!

&:&\00p10p:520pv:g00p02<v  <
    #   p1*45-1_v#:" "  <  v
    |`-1*65:g02$<      ,
    >:" "\39*\p:" "\47 *v
+:"<"\39*\p:"v"\47*\p25^>\p 1
".......#.....#####......."<v
".......##.....#####......"
".......###.....#####....."
".......####.....####....."
".......#####.....###....."
".......######.....##....."
".......#######.....#....."
".......########.........."
"####################....."
".####################...."
"..####################..."
"...####################.."
"....####################."
".....####################"
"#.....##############.####"
"##.....#############..###"
"###....#############...##"
"####...#############....#"
"#####..#############....."
".#####.#############....."
"..##################....."
"........#####............"
".........#####..........."
"..........#####.........."
"...........#####........."
"............#####........"
,,,,,,,,,,,,,,,,,,,,,,,,,  v>
    > 10g1-:10p #v_@
 " " \47*\p5:"<"v>:" "\39*\ p
\*74 \"v":p\*93\<      v,*5 2p

คำอธิบายพรุ่งนี้นอนได้แล้ว ฉันจะบอกว่าฉันทำสิ่งที่ชาญฉลาดด้วยการย้ายลูกศรเปลี่ยนเส้นทางคู่และฉันใช้คุณสมบัติล้อมรอบด้วยเช่นกัน ทดสอบในล่ามออนไลน์นี้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.