พิมพ์ ASCII Voxels


28

เขียนโปรแกรมที่อ่านn×n×nอาร์เรย์ของค่าไบนารีซึ่งเป็นตัวแทนของn×n×nลูกบาศก์ที่ประกอบด้วยn3ก้อนขนาดเล็ก แต่ละค่าบอกว่ามี voxel (ลูกบาศก์เล็ก ๆ ) อยู่ในตำแหน่งที่กำหนดหรือไม่ โปรแกรมจะต้องส่งออกอาร์เรย์ที่กำหนดเป็นกราฟิก ASCII (นั่นหมายถึงเอาต์พุตผ่านคอนโซลหรือการเขียนไปยังไฟล์)

ตัวอย่าง

ให้เราพิจารณาอาร์เรย์2 × 2 × 2×2×2ต่อไปนี้:

[
 [[0,0],
  [1,0]]
 [[1,1],
  [1,0]],
]

[
 [[0,0],
  [0,0]]
 [[1,1],
  [1,1]],
]

ในกรณีนี้ผลลัพธ์ควรมีลักษณะเช่นนี้ (ดูไม่ดีเท่าที่ควรในตัวแก้ไขโค้ด / คอนโซลที่มีพื้นที่แนวตั้งน้อยกว่า):

  +----+
 /    /|-+----+
+----+ |     /|
|    | +----+ |
|    | |    | +
+    + |    |/
|    | +----+
|    |/
+----+

    +----+----+
   /         /|
  +         + |
 /         /  +
+----+----+  /
|         | +
|         |/
+----+----+

12×12×127×7×7

ข้อมูลจำเพาะของ ASCII

แต่ละมุมของ voxel จะถูกแทนด้วย a +ตราบใดที่มีขอบใด ๆ ที่นำไปสู่ +จะวาดยังเมื่อมีขอบตรงที่เป็นมากกว่าหนึ่งหน่วยยาว ขอบมีสามประเภท: แนวนอนจากซ้ายไปขวา----, แนวนอนกลับไปข้างหน้า/และแนวตั้ง

|
|

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

'การวาด' นั้นเป็นการฉายแบบขนานดังนั้นมองเห็นเฉพาะด้านบนขวาและด้านหน้า - จากมุมเดียวกันเสมอ

รายละเอียด

n=1,2,,1212×12×123×3×3

10

  • มิติที่ 1: เลเยอร์ทีละชั้นจากบนสุดถึงต่ำที่สุด
  • มิติที่สอง: เรียงกลับเป็นแถว (ห่างออกไป) ไปข้างหน้า (ใกล้ที่สุด)
  • มิติที่สาม: voxels ในแต่ละแถวจากซ้ายไปขวา

ไม่ว่าคุณจะใช้คอนโซลหรืออ่านไฟล์ในขณะที่อินพุตและเอาต์พุตนั้นขึ้นอยู่กับคุณ โปรดบอกเราเกี่ยวกับรหัสของคุณ / วิธีที่คุณเข้าหามัน

การตัดสิน

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

(และฉันจะอัปโหลดผลงานส่งพร้อมตัวอย่างสร้างสรรค์ =)

นี้ได้รับแรงบันดาลใจจากหน้าปริศนาของร็อบ

คำตอบ:


12

Python ( 444 361 354 ไบต์)

แก้ไข:ฉันพบข้อผิดพลาดอื่นที่จะข้ามมุมในกรณีพิเศษมาก การแก้ไขไปข้างหน้าแบบตรงเพิ่มรหัส 50 ไบต์ให้กับฉันดังนั้นฉันพยายามตีมันลงอีกเล็กน้อย ตอนนี้ข้อผิดพลาดได้รับการแก้ไขและสั้นลงถึง 83 ไบต์ มันแฮ็คมาก ฉันต้องการกำจัดวงห้าเท่าสำหรับลูป แต่ยังหาวิธีแก้ปัญหาไม่ได้ ความคิดใด ๆ

แก้ไข 2:ด้วยการนำเข้าที่มีความยาวมากฉันสามารถบันทึกอักขระได้อีก 7 ตัว

ไม่สั้นมากหรือสง่างาม แต่จากนั้นอีกครั้งมันเป็นปัญหาที่ซับซ้อน:

#input:
u=[[[1,1,1],[1,0,1],[1,1,1]],
   [[1,0,1],[0,0,0],[1,0,1]],
   [[1,1,1],[1,0,1],[1,1,1]]]

#actual code that counts:
r=range
n=len(u)
g=r(n)
a=([' ']*9*n+['\n'])*6*n
t='/|-+\n '
d=dict(zip(t+'%!=*',2*t))
for y,z,x,i,j in __import__('itertools').product(g,g,g[::-1],r(6),r(8)):
 if abs(i+j-6)<5*u[x][y][z]:a[(9*n+1)*(i+3*x+2*y)+j+5*z-2*y+2*n]+='./    %|+====* ||    ! *|    !/.*----+'[8*i+j-8]
o=''.join((d[x[-1]],' ')[x[-2:]in('%/','!|','=-')or x[-4:]=='*++*']for x in a)

#output:
print o

ก่อนอื่นจะดึงแต่ละ voxels ทั้งหมดด้วยบรรทัดทั้งหมดที่ด้านบนของกันและกัน จากนั้นจะแสดงเฉพาะอักขระสูงสุดและกำจัดเส้นเหล่านั้นและข้ามบนระนาบระนาบที่ไม่ควรวาดตามข้อกำหนด

ฉันเดาว่ามันเป็นไปได้ที่จะตีกอล์ฟลงได้บ้าง แต่ 444 เป็นจำนวนที่ดีมาก :)

ตัวอย่างเอาต์พุต 3x3x3 และ 7x7x7 (มีการลบบรรทัดใหม่บางส่วน):

        +----+----+----+   
       /              /|   
      +    +----+    + |   
     /    /|   /    /  +   
    +    +----+    +   |   
   /              /  + |   
  +----+----+----+  /| +   
  |              | + | |   
  |              | |-+ |   
  +    +----+    + |/  +   
  |    | +--|    | +  /    
  |    |/   |    |   +     
  +    +----+    +  /      
  |              | +       
  |              |/        
  +----+----+----+         

                +----+----+----+    +----+----+----+           
               /              /|   /              /|           
              +    +----+    + |  +    +----+    + |           
             /    /|   /    /  + /    /|   /    /  +           
            +    + |  +    +  / +    + |  +    +  /            
           /    /  +-/    /  + /    /  +-/    /  +             
          +----+  /-+----+  /-+----+  /-+----+  /--+           
          |    | +  |    | +  |    | +  |    | +  /|           
        +----+ | |+----+ | |+----+ | |+----+ | | + |           
       /    /| + /    /| + /    /| + /    /| + |/  +           
      +    + | |+    + | |+    + | |+    + | | +   |           
     /    /  + /    /  + /    /  + /    /  + |   + |           
    +    +----+    +   |+    +----+    +   | +  /| +           
   /              /  + /              /  + | | + | |           
  +----+----+----+  /|+----+----+----+  /| + |/--+ |           
  |              | + ||              | + | |-+  /  +           
  |              |/--+|              |/--+ |   +  /            
  +----+----+----+  / +----+----+----+  /  +  /  +             
    +    +  / +    +--- +    +  /-+    +  /--+  /--+           
   /    /  + /              /  + /    /  +   | +  /|           
  +----+  / +----+----+----+  /-+----+  /--+ |/  + |           
  |    | +  |              | +  |    | +  /|-+  /  +           
  |    | |-+|              |/  +|    | | + |   +  /            
  +    + |  +----+----+----+  /|+    + |/  +  /  +             
  |    | +----+----+ | |+    + ||    | +  /--+  /              
  |    |/         /| + /    /  +|    |   +   | +               
  +    +----+----+ | |+----+  /-+    +  /--+ |/                
  |              | + ||    | +  |    | +  /|-+                 
  |              | | +|    | | +|    |/  + |                   
  +----+----+    + | |+    + |/|+----+  /  +                   
    +    +--|    | + ||    | + |  +    +  /                    
   /        |    | |-+|    |   +-/    /  +                     
  +----+----+    + |  +    +  / +----+  /                      
  |              | +  |    | +  |    | +                       
  |              |/   |    |/   |    |/                        
  +----+----+----+    +----+    +----+                         

1
งานที่ดี! กะทัดรัดมากเมื่อเทียบกับความยุ่งเหยิงของฉัน ตรวจสอบขอบเว้าของคุณ! (ไม่มีเครื่องหมายบวก) - repl.it/XA9/2
PiGuy

@ PiGuy: จับได้ดี! ฉันคิดว่าฉันแก้ไขมัน มันทำให้โค้ดของฉันยาวขึ้นอีกเล็กน้อย แต่ฉันก็พบว่าบางสิ่งที่เล่นกอล์ฟได้ไกลขึ้นดังนั้นฉันจึงยังคงมีจำนวนไบต์เดียวกัน
Emil

ดูเหมือนว่ามี '+' มากเกินไปบน '4' ที่ใกล้ชิด (คุณสามารถลองใช้ 7x7x7 ที่ฉันโพสต์ได้หรือไม่)
ข้อผิดพลาด

@ flawr: เครื่องหมายบวกนั้นเป็นของไกล 4 (มุมล่างขวาล่าง) ดังนั้นมันควรจะถูก :) ฉันจะเพิ่มเคส 7x7x7 ฉันออกไปก่อนเพราะฉันคิดว่ามันจะถ่วงหน้าถ้าทุกคนโพสต์ แต่ฉันคิดว่ามันดี
Emil

ตอนนี้ฉันเห็นแล้ว - ฉันคิดว่าฉันถูกหลอกด้วยพื้นที่แนวตั้งขนาดใหญ่
ข้อบกพร่อง

20

Lua (1442 ไบต์)

ภาพเคลื่อนไหวโบนัส! :)
หากคุณมีงานศิลปะ voxel ที่ยอดเยี่ยมในรูปแบบเดียวกับตัวอย่างให้เชื่อมโยงในความคิดเห็นและฉันจะสร้างภาพเคลื่อนไหวจากมัน
7x7x7
ภาพเคลื่อนไหวโบนัส
12x12x12
โบนัส 2
นี่คือกอล์ฟรหัสแรกของฉันมันยุ่งมากและฉันวางแผนที่จะปรับปรุง หรือย้ายไปเป็นภาษาอื่น
นี่คือสิ่งที่ฉันมีตอนนี้ที่ขนาดไม่เกิน 2.5kB เพิ่งเล่นกอล์ฟ (เพิ่งลบช่องว่างการเยื้องในจุดนี้ฉันจะดำเนินการต่อในภายหลัง)

นี่คือตอนนี้ ~ 1.4kB golfed และเวอร์ชันย่อ (หมายเหตุตาราง "a" ในบรรทัดแรกคือตัวยึดสำหรับเมทริกซ์ voxel):

local a={}
local b,c=table,string;local d,e,f,g,h,i=b.concat,#a,c.gsub,c.gmatch,ipairs,b.insert;local function j(k,l,m)return a[k]and a[k][l]and a[k][l][m]==1 end;local n={}for o=1,e*5+1 do n[o]={}for p=1,e*7+1 do n[o][p]=" "end end;local q=[[
__6hhhh7
_g    ij
1aaaa2 j
b    d 5
b    de_
3cccc4__
]]local function r(k,l,m)local s=q;if j(k,l,m)then local t,u,v,w,x,y,z,A=j(k-1,l,m),j(k+1,l,m),j(k,l,m-1),j(k,l,m+1),j(k,l-1,m),j(k+1,l+1,m),j(k+1,l,m+1)," "if t then s=f(s,"[ai]"," ")end;if u and not y then A=A.."c"end;if u and not z then A=A.."e"end;if v then A=A.."bg"end;if w then A=A.."di"end;if x then if not j(k,l-1,m+1)then A=A.."j"end;A=A.."h"end;if t then if w and j(k-1,l,m+1)then A=A.."2"end;if v and j(k-1,l,m-1)then A=A.."1"end end;if u then if w and j(k+1,l,m+1)then A=A.."4"end;if v and j(k+1,l,m-1)then A=A.."3"end end;if x then if w and j(k,l-1,m+1)then A=A.."7"end;if v and j(k,l-1,m-1)then A=A.."6"end;if u and j(k+1,l-1,m)then A=A.."5"end end;s=f(f(f(f(f(s,"["..A.."]"," "),"[ach]","-"),"[bdj]","|"),"[gie]","/"),"[1234567]","+")else s=nil end;return s end;local B,C;local D=e*2-1;local E=1;for k=e,1,-1 do for l=1,e do for m=1,e do B=(l-1)*-2+(m-1)*5+D;C=(l-1)*2+(k-1)*3+E;local s=r(k,l,m)if s then local F={}for G in s:gmatch("[^\n]+")do local H={}for I in G:gmatch(".")do i(H,I)end;i(F,H)end;for J,K in h(F)do for L,I in h(K)do if I~="_"then n[C+J-1][B+L-1]=I end end end end end end end;for o,a in h(n)do print(d(a))end

แก้ไข : นี่คือต้นฉบับ (กว่า 3KB) เวอร์ชั่น ungolfed รวมทั้งการแก้ไขของฉันสำหรับการทำภาพเคลื่อนไหว (ถ้าคุณใช้มันด้วยตัวเองและต้องการการเคลื่อนไหวเปลี่ยนแปลงอยู่ด้านล่างของรหัสไปยังfalsetrue

local v = {}
local depth = #v;

function voxel(y,z,x)
  return (v[y] and v[y][z] and v[y][z][x]==1)
end

local canvas = {}
print("Constructing canvas of depth",depth)
for i=1,depth*5+1 do
  canvas[i] = {}
  for j=1,depth*7+1 do
    canvas[i][j] = " "
  end
end

local voxelProto = [[
__6hhhh7
_g    ij
1aaaa2 j
b    d 5
b    de_
3cccc4__
]]

function renderVoxel(y,z,x)
  local vox = voxelProto
  if (voxel(y,z,x)) then
    local up = voxel(y-1,z,x)
    local down = voxel(y+1,z,x)
    local left = voxel(y,z,x-1)
    local right = voxel(y,z,x+1)
    local back = voxel(y,z-1,x)
    local downFront = voxel(y+1,z+1,x)
    local downRight = voxel(y+1,z,x+1)

    if (up) then
      vox = vox:gsub("[ai]"," ")
    end
    if (down and not downFront) then
      vox = vox:gsub("[c]"," ")
    end
    if (down and not downRight) then
      vox = vox:gsub("[e]"," ")
    end
    if (left) then
      vox = vox:gsub("[bg]"," ")
    end
    if (right) then
      vox = vox:gsub("[di]"," ")
    end
    if (back and not voxel(y,z-1,x+1)) then
      vox = vox:gsub("[j]"," ")
    end
    if (back or up) then
      vox = vox:gsub("[h]"," ")
    end
    if (up and right and voxel(y-1,z,x+1)) then
      vox = vox:gsub("[2]"," ")
    end
    if (up and left and voxel(y-1,z,x-1)) then
      vox = vox:gsub("[1]"," ")
    end
    if (down and right and voxel(y+1,z,x+1)) then
      vox = vox:gsub("[4]"," ")
    end
    if (down and left and voxel(y+1,z,x-1)) then
      vox = vox:gsub("[3]"," ")
    end
    if (back and right and voxel(y,z-1,x+1)) then
      vox = vox:gsub("[7]"," ")
    end
    if (back and left and voxel(y,z-1,x-1)) then
      vox = vox:gsub("[6]"," ")
    end
    if (back and down and voxel(y+1,z-1,x)) then
      vox = vox:gsub("[5]"," ")
    end

    vox = vox:gsub("[ach]","-")
    vox = vox:gsub("[bdj]","|")
    vox = vox:gsub("[gie]","/")
    vox = vox:gsub("[1234567]","+")
  else
    vox = nil
  end
  return vox
end
local xpos,ypos
local minx = depth*2-1
local miny = 1;

local pic = {}
function drawCanvas()
  for k,v in pairs(canvas) do
    pic[k] = table.concat(v)
  end
  return table.concat(pic,"\n")
end

local timeline = {}
print("Compositing voxels")
for y=depth,1,-1 do
  for z=1,depth do
    for x = 1,depth do
      xpos = (z-1)*-2 + (x-1)*5 + minx
      ypos = (z-1)*2 + (y-1)*3 + miny
      local vox = renderVoxel(y,z,x)
      if (vox) then
        local vt = {}
        for line in vox:gmatch("[^\n]+") do
          local vtl = {}
          for c in line:gmatch(".") do
            table.insert(vtl,c)
          end
         table.insert(vt,vtl)
        end
        for ly,chars in ipairs(vt) do
          for lx,c in ipairs(chars) do
            if (c ~= "_") then
              canvas[ypos+ly-1][xpos+lx-1] = c
            end
          end
        end
        table.insert(timeline,drawCanvas())
      end
    end
  end
end

if (false) then -- change to true if you want to see the animation!
  for i=1,#timeline do
    local t = os.clock() + 0.05
    io.write(timeline[i],'\n\n')
    io.flush()
    while (t > os.clock()) do end
  end
end         
print(timeline[#timeline])

นี่คือตัวอย่างของโค้ดที่จะเติมเมทริกซ์ voxel จากสตริงสำหรับเมทริกซ์ 3xox3x3 (มันจะใช้สตริงใด ๆ ในรูปแบบที่คล้ายกัน แต่ให้แน่ใจว่ามันเป็นคิวบ์หรือสิ่งที่อาจจะแตก)
เพื่อใช้สิ่งนี้แทรกอันนี้ทันทีหลังจากบรรทัดแรกlocal v = {}

local vs = [[
100
000
000

110
100
000

111
110
101
]]
for layer in vs:gmatch("[^a]+") do
 local a = {}
 for row in layer:gmatch("[^\n]+") do
 local b = {}
 for _vox in row:gmatch("[01]") do
 table.insert(b,(_vox=="1") and 1 or 0)
 end
 table.insert(a,b)
 end
 table.insert(v,a)
end

นี่คือผลลัพธ์จากรูปแบบvoxel ขนาด 12x12x12 ที่กำหนด : (และใช่มันดูดีกว่าบนอุปกรณ์คอนโซล / การดูข้อความปกติมีระยะห่างแนวตั้งมากเกินไปเล็กน้อยที่นี่)

                                                                          +----+----+
                                                                         /         /|
                                                                        +----+----+ |
                                                                        |         | +
                                                            +----+      |         |/
                                                           /    /|      +    +----+
                                                          +----+ |      |    | +----+
                                                          |    | +      |    |/    /|
                                                          |    | |      +    +----+ |
                                                          +    + |      |         | +
              +----+----+                         +----+--|    | +      |         |/
             /         /|                        /        |    | |      +    +----+
            +----+----+ |                       +----+----+    + |      |    | +----+
            |         | +                       |              | +      |    |/    /|
            |         |/       +----+----+----+ |              | |      +    +----+ |
            +    +----+       /              /| +    +----+    + |      |         | +
            |    | +         +----+----+----+ | |    | +--|    | +      |         |/
            |    | |         |              | + |    |/   |    | |      +----+----+
            +    + |         |              | | +    +----+    + |            
            |    | +         +    +----+    + | |              | +            
            |    | |         |    | +--|    | + |              |/             
            +    + |         |    |/   |    | | +----+----+----+              
            |    | +----+    +    +----+    + |                               
            |    |/    /|    |              | +                               
            +    +----+ |    |              |/                                
            |         | +    +----+----+----+                                 
            |         |/                                                      
            +----+----+                                       +----+----+     
                                                             /         /|     
                                                  +----+    +----+----+ |     
                                                 /    /|    |         | +     
                                                +----+ |    |         |/      
                                                |    | +    +    +----+       
      +----+----+----+  +----+----+----+----+---|    | |---+|    | +----+-+----+----+
     /              /| /                        +    + |    |    |/    /|          /|
    +----+----+----+ |+                         |    | +    +    +----+ |         + |
    |              | +                          |    | |    |         | +        /  +
    |              | |      +----+----+----+    +    + |    |         |/        +  /
    +    +----+    + |     /              /|    |    | +    +    +----+        /  +
    |    | +--|    | +    +----+----+----+ |    |    | |    |    | +          +  /
    |    |/   |    | |    |              | +    +    + |    |    | |         /  +
    +    +----+    + |    |              | |    |    | +    +    + |        +  /
    |              | +    +    +----+    + |    |    | |    |    | +       /  +
    |              | |    |    | +--|    | +    +    + |    |    |/       +  /
    +----+----+    + |    |    |/   |    | |    |    | +    +----+       /  + 
      +----+--|    | +    +    +----+    + |    |    |/                 +  /  
     /        |    | |    |              | +    +----+                 /  +   
    +----+----+    + |    |              |/                           +  /    
    |              | +    +----+----+----+                           /  +     
    |              |/                                               +  /      
    +----+----+----+                                               /  +       
      +                                                           +  /        
     /                                                           /  +         
    +                                                           +  /          
   /                                                           /  +           
  +                                                           +  /            
 /                                                           /  +             
+----+----+----+----+----+----+----+----+----+----+----+----+  /              
|                                                           | +               
|                                                           |/                
+----+----+----+----+----+----+----+----+----+----+----+----+   

นี่คือผลลัพธ์จากตัวอย่าง 7x7x7 ที่นี่

              +----+----+----+    +----+----+----+
             /              /|   /              /|
            +    +----+    + |  +    +----+    + |
           /    /|   /    /  + /    /|   /    /  +
          +    + |  +    +  / +    + |  +    +  / 
         /    /  +-/    /  + /    /  +-/    /  +  
        +----+  /-+----+  /-+----+  /-+----+  /--+
        |    | +  |    | +  |    | +  |    | +  /|
      +----+ | |+----+ | |+----+ | |+----+ | | + |
     /    /| + /    /| + /    /| + /    /| + |/  +
    +    + | |+    + | |+    + | |+    + | | +   |
   /    /  + /    /  + /    /  + /    /  + |   + |
  +    +----+    +   |+    +----+    +   | +  /| +
 /              /  + /              /  + | | + | |
+----+----+----+  /|+----+----+----+  /| + |/--+ |
|              | + ||              | + | |-+  /  +
|              |/--+|              |/--+ |   +  / 
+----+----+----+  / +----+----+----+  /  +  /  +  
  +    +  / +    +----+    +  /-+    +  /--+  /--+
 /    /  + /              /  + /    /  +   | +  /|
+----+  / +----+----+----+  /-+----+  /--+ |/  + |
|    | +  |              | +  |    | +  /|-+  /  +
|    | |-+|              |/  +|    | | + |   +  / 
+    + |  +----+----+----+  /|+    + |/  +  /  +  
|    | +----+----+ | |+    + ||    | +  /--+  /   
|    |/         /| + /    /  +|    |   +   | +    
+    +----+----+ | |+----+  /-+    +  /--+ |/     
|              | + ||    | +  |    | +  /|-+      
|              | | +|    | | +|    |/  + |        
+----+----+    + | |+    + |/|+----+  /  +        
  +    +--|    | + ||    | + |  +    +  /         
 /        |    | |-+|    |   +-/    /  +          
+----+----+    + |  +    +  / +----+  /           
|              | +  |    | +  |    | +            
|              |/   |    |/   |    |/             
+----+----+----+    +----+    +----+              

ว้าวดูดี =) คุณสามารถรวมรหัสการแยกวิเคราะห์ / เอาท์พุทแม้ว่ามันจะไม่นับ - เพื่อให้ผู้ที่ไม่ใช่คนเถื่อนสามารถทำซ้ำผลลัพธ์ของคุณ =)
ข้อผิดพลาด

ฉันได้รวมตัวอย่างใหม่ไว้ด้วยจะดีมากถ้าคุณสามารถรวมสิ่งนั้นด้วย =)
ข้อผิดพลาด

อัปเดตด้วยตัวอย่าง 7x7x7 ใหม่เพิ่มตัวอย่างสำหรับการสร้างตารางจากสตริง pastebin
PiGuy

@ 7x7x7: ดูเหมือนว่าโปรแกรมของคุณจะไม่วาดขอบแนวตั้งเว้า ชอบด้านบนของส่วนโค้งนั้นที่ด้านหลัง (เพิ่มเติม) ของชั้นบนสุด หรือคล้ายกันที่ด้านหน้า (ใกล้) ด้านขวาบนเลเยอร์ต่ำสุด ฉันชอบภาพเคลื่อนไหวทั้งหมด!
ข้อบกพร่อง

@ flawr ขอบคุณฉันแก้ไขมันรวมทั้งใช้เวลาในการรับ byte count down และตอนนี้ต่ำกว่า 1.5kB และฉันเพิ่มรหัสเต็มที่ฉันใช้ในการสร้างภาพเคลื่อนไหวด้วย
PiGuy
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.