ASCII 2D oyun haritası


9

Sorun

A'nın a, çıktının her bir 'bloğu' için yalnızca bir öğeye sahip olduğu sürece, herhangi bir girdi biçimindeki bir karakter ızgarası olduğu giriş verilir.

Ve bburada b, girişle aynı boyutta bir sayı ızgarasıdır a.

İki yol türü vardır, 1 yolu ile işaretlenmiş bir taş yolu @ve 2 yolu ile işaretlenmiş bir toprak yolu temsil eder#

  • Bir @yol blokta ortalanmıştır ve 6x6 boyutundadır, eğer bir yol bitişikse, bu taraf ızgara hücre sınırına uzatılır
  • Bir #yol bitişik ise, yol bloğu ortalanır boyutu 4x4, yan grid hücre sınırına uzatılır olan

Girişteki ASCII karakterinin 8x8 satır numarası ile bir ızgara ofseti çıktısı alın ve girişten abir 'yol' yerleşimib ör

Giriş a=[[a,b,a],[b,a,b],[a,b,a]] b=[[1,1,1],[2,0,1],[2,0,0]]

Çıktı:

Adım 1: Izgara (girişin 8x8 gösterimi a)

aaaaaaaabbbbbbbbaaaaaaaa
aaaaaaaabbbbbbbbaaaaaaaa
aaaaaaaabbbbbbbbaaaaaaaa
aaaaaaaabbbbbbbbaaaaaaaa
aaaaaaaabbbbbbbbaaaaaaaa
aaaaaaaabbbbbbbbaaaaaaaa
aaaaaaaabbbbbbbbaaaaaaaa
aaaaaaaabbbbbbbbaaaaaaaa
bbbbbbbbaaaaaaaabbbbbbbb
bbbbbbbbaaaaaaaabbbbbbbb
bbbbbbbbaaaaaaaabbbbbbbb
bbbbbbbbaaaaaaaabbbbbbbb
bbbbbbbbaaaaaaaabbbbbbbb
bbbbbbbbaaaaaaaabbbbbbbb
bbbbbbbbaaaaaaaabbbbbbbb
bbbbbbbbaaaaaaaabbbbbbbb
aaaaaaaabbbbbbbbaaaaaaaa
aaaaaaaabbbbbbbbaaaaaaaa
aaaaaaaabbbbbbbbaaaaaaaa
aaaaaaaabbbbbbbbaaaaaaaa
aaaaaaaabbbbbbbbaaaaaaaa
aaaaaaaabbbbbbbbaaaaaaaa
aaaaaaaabbbbbbbbaaaaaaaa
aaaaaaaabbbbbbbbaaaaaaaa

2. Adım: Şununla temsil edilen yollarla bindirme b:

aaaaaaaabbbbbbbbaaaaaaaa
a@@@@@@@@@@@@@@@@@@@@@@a
a@@@@@@@@@@@@@@@@@@@@@@a
a@@@@@@@@@@@@@@@@@@@@@@a
a@@@@@@@@@@@@@@@@@@@@@@a
a@@@@@@@@@@@@@@@@@@@@@@a
a@@@@@@@@@@@@@@@@@@@@@@a
a@@@@@@abbbbbbbba@@@@@@a
bb####bbaaaaaaaab@@@@@@b
bb####bbaaaaaaaab@@@@@@b
bb####bbaaaaaaaab@@@@@@b
bb####bbaaaaaaaab@@@@@@b
bb####bbaaaaaaaab@@@@@@b
bb####bbaaaaaaaab@@@@@@b
bb####bbaaaaaaaab@@@@@@b
bb####bbaaaaaaaabbbbbbbb
aa####aabbbbbbbbaaaaaaaa
aa####aabbbbbbbbaaaaaaaa
aa####aabbbbbbbbaaaaaaaa
aa####aabbbbbbbbaaaaaaaa
aa####aabbbbbbbbaaaaaaaa
aa####aabbbbbbbbaaaaaaaa
aaaaaaaabbbbbbbbaaaaaaaa
aaaaaaaabbbbbbbbaaaaaaaa

Adım 3: Her satırı satır numarası ile ofset:

aaaaaaaabbbbbbbbaaaaaaaa
 a@@@@@@@@@@@@@@@@@@@@@@a
  a@@@@@@@@@@@@@@@@@@@@@@a
   a@@@@@@@@@@@@@@@@@@@@@@a
    a@@@@@@@@@@@@@@@@@@@@@@a
     a@@@@@@@@@@@@@@@@@@@@@@a
      a@@@@@@@@@@@@@@@@@@@@@@a
       a@@@@@@abbbbbbbba@@@@@@a
        bb####bbaaaaaaaab@@@@@@b
         bb####bbaaaaaaaab@@@@@@b
          bb####bbaaaaaaaab@@@@@@b
           bb####bbaaaaaaaab@@@@@@b
            bb####bbaaaaaaaab@@@@@@b
             bb####bbaaaaaaaab@@@@@@b
              bb####bbaaaaaaaab@@@@@@b
               bb####bbaaaaaaaabbbbbbbb
                aa####aabbbbbbbbaaaaaaaa
                 aa####aabbbbbbbbaaaaaaaa
                  aa####aabbbbbbbbaaaaaaaa
                   aa####aabbbbbbbbaaaaaaaa
                    aa####aabbbbbbbbaaaaaaaa
                     aa####aabbbbbbbbaaaaaaaa
                      aaaaaaaabbbbbbbbaaaaaaaa
                       aaaaaaaabbbbbbbbaaaaaaaa

Kurallar:

  • Öncü boşluk veya satır sonlarına izin verilir.
  • Sondaki boşluk ve satır sonlarına izin verilir.
  • Bu kod golf, bu yüzden en kısa kod kazanır

İşte aklıma gelen bütün uç örnekleri ekstra test niteliği taşıyor.


neden sadece 1 satıra izin verilir? (boşluklu) önde gelen yeni satırlar olabilir mi?
dzaima

1
Ek test durumunda, dizi diziden adaha küçüktür b.
Zgarb

@dzaima Neden daha fazlasına izin verilmeli?
LiefdeWen

Kötü davranmıyorlar ve daha fazla golf fırsatı
veriyorlar

1
Bana öyle geliyor ki, sorunuz iyi tanımlanmamış. İlk önce, test durumunuzda ikinci girdi satırı a ['.', ',', '.', ',', '.', ',', '.'], ancak çıktı o satır gibidir [',', '.', ',', '.', ',', '.', ',']. Ayrıca, bunu test durumunuzdan çıktı olarak almanızı engelleyen şey: gist.github.com/anonymous/dfcf3b754464f3ca4394d34e9f3bf123 b girişinin ilk satırındaki ikinci 1'in iki 2'ye bitişik olduğuna dikkat edin. Neden sadece ilk 2'ye (aynı satırda) bağlamayı seçtiniz?

Yanıtlar:


3

JavaScript (ES6), 250 207 bayt

Düzenleme Hata düzeltme :(

Kıvrım sözdiziminde (a) (b) girdileri alan bir işlev.

a=>b=>a.map((r,i)=>k.map(y=>(h+=' ')+r.map((c,j)=>k.map(x=>(t=x<v,s=x>7-v,!v|t&(!q[j-1]|w|u)|s&(!q[j+1]|w|u)|u&(!p[j]|t|s)|w&(!(b[i+1]||[])[j]|t|s)?c:'-@#'[v]),v=q[j],w=y>7-v,u=y<v).join``).join``,p=q,q=b[i]).join`
`,h=q=[],k=[...'01234567']).join`
`

Daha az golf

a=>b=>a.map((r,i)=>
  [0,1,2,3,4,5,6,7].map(y=>
    (h+=' ') + r.map((c,j)=>
      [0,1,2,3,4,5,6,7].map(x=> (
        t=x<v, s=x>7-v,
        v == 0 
        || t && (!B[i][j-1] | w|u)
        || s && (!B[i][j+1] | w|u)
        || u && (!(B[i-1]||[])[j] | t|s)
        || w && (!(B[i+1]||[])[j] | t|s)
        ? c : '-@#'[v] )
      , v = B[i][j], w=y>7-v,u=y<v).join``
    ).join``
  ).join`\n`
,h = '').join`\n`

Ölçek

F=
a=>b=>a.map((r,i)=>k.map(y=>(h+=' ')+r.map((c,j)=>k.map(x=>(t=x<v,s=x>7-v,!v|t&(!q[j-1]|w|u)|s&(!q[j+1]|w|u)|u&(!p[j]|t|s)|w&(!(b[i+1]||[])[j]|t|s)?c:'-@#'[v]),v=q[j],w=y>7-v,u=y<v).join``).join``,p=q,q=b[i]).join`
`,h=q=[],k=[...'01234567']).join`
`

A=[['a','b','a'],['b','a','b'],['a','b','a']]
B=[[1,1,1],[2,0,1],[2,0,0]]

O.textContent = F(A)(B)+'\n'
A=[['.', ',', '.', ',', '.', ',', '.'],['.', ',', '.', ',', '.', ',', '.'],['.', ',', '.', ',', '.', ',', '1']]
B=[[0,1,0,0,1,2,0],[1,1,1,2,2,2,2],[0,2,0,0,0,1,0]]

O.textContent += F(A)(B)
<pre id=O></pre>


4

PHP 857 bayt

Gerçekten ne kimse "golfed" diyebiliriz ama kimse başka bir şey girmiş gibi görünüyor, bu bir başlangıç ​​olduğunu düşündüm. Çok büyük, ama işe yarıyor gibi görünüyor. Zaman alırsam yarın golf oynamak için çaba göstereceğim.

function a($a,$b){$c=sizeof($a);$d=sizeof($a[0]);for($e=0;$e<$c;$e++){for($f=0;$f<$d;$f++){$A=$GLOBALS['h']=$a[$e][$f];$i=$GLOBALS['i']=$b[$e][$f];$B=j($i==1&&$b[$e-1][$f]>0);$C=j($i==1&&$b[$e][$f+1]>0);$D=j($i==1&&$b[$e+1][$f]>0);$E=j($i==1&&$b[$e][$f-1]>0);$F=j($i>0&&$b[$e-1][$f]>0);$G=j($i>0&&$b[$e][$f+1]>0);$H=j($i>0&&$b[$e+1][$f]>0);$I=j($i>0&&$b[$e][$f-1]>0);$J=j($i==1);$K=j($i==1||($i>1&&$b[$e-1][$f]>0));$L=j($i==1||($i>1&&$b[$e][$f+1]>0));$M=j($i==1||($i>1&&$b[$e+1][$f]>0));$N=j($i==1||($i>1&&$b[$e][$f-1]>0));$O=j($i>0);$P=$e*8;$g[$P].="$A$B$F$F$F$F$B$A";$g[$P+1].="$E$J$K$K$K$K$J$C";$l="$I$N$O$O$O$O$L$G";$g[$P+2].=$l;$g[$P+3].=$l;$g[$P+4].=$l;$g[$P+5].=$l;$g[$P+6].="$E$J$M$M$M$M$J$C";$g[$P+7].="$A$D$H$H$H$H$D$A";}}foreach($g as$h){echo str_repeat(' ', $i++)."$h\n";}}function j($k){return($k)?strtr($GLOBALS['i'],'12','@#'):$GLOBALS['h'];}

Test durumu

error_reporting(0);
$a=[[a,b,a],[b,a,b],[a,b,a]];
$b=[[1,1,1],[2,0,1],[2,0,0]];
a($a,$b);

Çıktı

aaaaaaaabbbbbbbbaaaaaaaa
 a@@@@@@@@@@@@@@@@@@@@@@a
  a@@@@@@@@@@@@@@@@@@@@@@a
   a@@@@@@@@@@@@@@@@@@@@@@a
    a@@@@@@@@@@@@@@@@@@@@@@a
     a@@@@@@@@@@@@@@@@@@@@@@a
      a@@@@@@@@@@@@@@@@@@@@@@a
       a@@@@@@abbbbbbbba@@@@@@a
        bb####bbaaaaaaaab@@@@@@b
         bb####bbaaaaaaaab@@@@@@b
          bb####bbaaaaaaaab@@@@@@b
           bb####bbaaaaaaaab@@@@@@b
            bb####bbaaaaaaaab@@@@@@b
             bb####bbaaaaaaaab@@@@@@b
              bb####bbaaaaaaaab@@@@@@b
               bb####bbaaaaaaaabbbbbbbb
                aa####aabbbbbbbbaaaaaaaa
                 aa####aabbbbbbbbaaaaaaaa
                  aa####aabbbbbbbbaaaaaaaa
                   aa####aabbbbbbbbaaaaaaaa
                    aa####aabbbbbbbbaaaaaaaa
                     aa####aabbbbbbbbaaaaaaaa
                      aaaaaaaabbbbbbbbaaaaaaaa
                       aaaaaaaabbbbbbbbaaaaaaaa

Test durumu

error_reporting(0);
$a=[['.', ',', '.', ',', '.', ',', '.'],['.', ',', '.', ',', '.', ',', '.'],['.', ',', '.', ',', '.', ',', '1']];
$b=[[0,1,0,0,1,2,0],[1,1,1,2,2,2,2],[0,2,0,0,0,1,0]];
a($a,$b);

Çıktı

........,,,,,,,,........,,,,,,,,........,,,,,,,,........
 ........,@@@@@@,........,,,,,,,,.@@@@@@@,,,,,,,,........
  ........,@@@@@@,........,,,,,,,,.@@@@@@@######,,........
   ........,@@@@@@,........,,,,,,,,.@@@@@@@######,,........
    ........,@@@@@@,........,,,,,,,,.@@@@@@@######,,........
     ........,@@@@@@,........,,,,,,,,.@@@@@@@######,,........
      ........,@@@@@@,........,,,,,,,,.@@@@@@@,,####,,........
       ........,@@@@@@,........,,,,,,,,.@@@@@@.,,####,,........
        ........,@@@@@@,........,,,,,,,,..####..,,####,,........
         .@@@@@@@@@@@@@@@@@@@@@@@,,,,,,,,..####..,,####,,........
          .@@@@@@@@@@@@@@@@@@@@@@@##############################..
           .@@@@@@@@@@@@@@@@@@@@@@@##############################..
            .@@@@@@@@@@@@@@@@@@@@@@@##############################..
             .@@@@@@@@@@@@@@@@@@@@@@@##############################..
              .@@@@@@@@@@@@@@@@@@@@@@@,,,,,,,,........,,####,,........
               ........,@@@@@@,........,,,,,,,,........,,####,,........
                ........,,####,,........,,,,,,,,........,@@@@@@,11111111
                 ........,,####,,........,,,,,,,,........,@@@@@@,11111111
                  ........,,####,,........,,,,,,,,........,@@@@@@,11111111
                   ........,,####,,........,,,,,,,,........,@@@@@@,11111111
                    ........,,####,,........,,,,,,,,........,@@@@@@,11111111
                     ........,,####,,........,,,,,,,,........,@@@@@@,11111111
                      ........,,,,,,,,........,,,,,,,,........,@@@@@@,11111111
                       ........,,,,,,,,........,,,,,,,,........,,,,,,,,11111111

Test durumu

error_reporting(0);
$a=[[p,p,p,p,h,h,h,p,p,p,p],[p,p,p,p,h,h,h,p,p,p,p],[p,p,p,p,h,h,h,p,p,p,p],[p,p,p,p,h,h,h,p,p,p,p],[p,p,p,p,h,h,h,p,p,p,p]];
$b=[[1,1,1,0,1,0,1,0,1,1,1],[1,0,1,0,1,0,1,0,1,0,1],[1,1,1,0,1,1,1,0,1,1,1],[1,0,0,0,1,0,1,0,1,0,0],[1,0,0,0,1,0,1,0,1,0,0]];
a($a,$b);

Çıktı

pppppppppppppppppppppppppppppppphhhhhhhhhhhhhhhhhhhhhhhhpppppppppppppppppppppppppppppppp
 p@@@@@@@@@@@@@@@@@@@@@@ppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@@@@@@@@@@@@@@@@@p
  p@@@@@@@@@@@@@@@@@@@@@@ppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@@@@@@@@@@@@@@@@@p
   p@@@@@@@@@@@@@@@@@@@@@@ppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@@@@@@@@@@@@@@@@@p
    p@@@@@@@@@@@@@@@@@@@@@@ppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@@@@@@@@@@@@@@@@@p
     p@@@@@@@@@@@@@@@@@@@@@@ppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@@@@@@@@@@@@@@@@@p
      p@@@@@@@@@@@@@@@@@@@@@@ppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@@@@@@@@@@@@@@@@@p
       p@@@@@@pppppppppp@@@@@@ppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@pppppppppp@@@@@@p
        p@@@@@@pppppppppp@@@@@@ppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@pppppppppp@@@@@@p
         p@@@@@@pppppppppp@@@@@@ppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@pppppppppp@@@@@@p
          p@@@@@@pppppppppp@@@@@@ppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@pppppppppp@@@@@@p
           p@@@@@@pppppppppp@@@@@@ppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@pppppppppp@@@@@@p
            p@@@@@@pppppppppp@@@@@@ppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@pppppppppp@@@@@@p
             p@@@@@@pppppppppp@@@@@@ppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@pppppppppp@@@@@@p
              p@@@@@@pppppppppp@@@@@@ppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@pppppppppp@@@@@@p
               p@@@@@@pppppppppp@@@@@@ppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@pppppppppp@@@@@@p
                p@@@@@@pppppppppp@@@@@@ppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@pppppppppp@@@@@@p
                 p@@@@@@@@@@@@@@@@@@@@@@ppppppppph@@@@@@@@@@@@@@@@@@@@@@hppppppppp@@@@@@@@@@@@@@@@@@@@@@p
                  p@@@@@@@@@@@@@@@@@@@@@@ppppppppph@@@@@@@@@@@@@@@@@@@@@@hppppppppp@@@@@@@@@@@@@@@@@@@@@@p
                   p@@@@@@@@@@@@@@@@@@@@@@ppppppppph@@@@@@@@@@@@@@@@@@@@@@hppppppppp@@@@@@@@@@@@@@@@@@@@@@p
                    p@@@@@@@@@@@@@@@@@@@@@@ppppppppph@@@@@@@@@@@@@@@@@@@@@@hppppppppp@@@@@@@@@@@@@@@@@@@@@@p
                     p@@@@@@@@@@@@@@@@@@@@@@ppppppppph@@@@@@@@@@@@@@@@@@@@@@hppppppppp@@@@@@@@@@@@@@@@@@@@@@p
                      p@@@@@@@@@@@@@@@@@@@@@@ppppppppph@@@@@@@@@@@@@@@@@@@@@@hppppppppp@@@@@@@@@@@@@@@@@@@@@@p
                       p@@@@@@ppppppppppppppppppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@ppppppppppppppppp
                        p@@@@@@ppppppppppppppppppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@ppppppppppppppppp
                         p@@@@@@ppppppppppppppppppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@ppppppppppppppppp
                          p@@@@@@ppppppppppppppppppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@ppppppppppppppppp
                           p@@@@@@ppppppppppppppppppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@ppppppppppppppppp
                            p@@@@@@ppppppppppppppppppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@ppppppppppppppppp
                             p@@@@@@ppppppppppppppppppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@ppppppppppppppppp
                              p@@@@@@ppppppppppppppppppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@ppppppppppppppppp
                               p@@@@@@ppppppppppppppppppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@ppppppppppppppppp
                                p@@@@@@ppppppppppppppppppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@ppppppppppppppppp
                                 p@@@@@@ppppppppppppppppppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@ppppppppppppppppp
                                  p@@@@@@ppppppppppppppppppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@ppppppppppppppppp
                                   p@@@@@@ppppppppppppppppppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@ppppppppppppppppp
                                    p@@@@@@ppppppppppppppppppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@ppppppppppppppppp
                                     p@@@@@@ppppppppppppppppppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@ppppppppppppppppp
                                      p@@@@@@ppppppppppppppppppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@ppppppppppppppppp
                                       pppppppppppppppppppppppppppppppphhhhhhhhhhhhhhhhhhhhhhhhpppppppppppppppppppppppppppppppp

2

Java - 661 bayt

Selam! Bu benim ilk görüşüm. Eğer yanlış bir şey yaparsam lütfen söyle.

static void m(char[][]b,int[][]t){String z="";int w=b[0].length;int h=b.length;char[][]r=new char[h*8][w*8];for(int j=0;j<h;j++){for(int i=0;i<w;i++){for(int x=0;x<8;x++)for(int y=0;y<8;y++){r[j*8+y][i*8+x]=b[j][i];int n=t[j][i];if(n!=0){char c;int d,e;if(n==1){c='@';e=0;d=7;}else{c='#';e=1;d=6;}if(x>e&&y>e&&x<d&&y<d)r[j*8+y][i*8+x]=c;if(x>e&&x<d){if(j>0&&y<2&&t[j-1][i]!=0)r[j*8+y][i*8+x]=c;if(j<h-1&&y>5&&t[j+1][i]!=0)r[j*8+y][i*8+x]=c;}if(y>e&&y<d){if(i>0&&x<2&&t[j][i-1]!=0)r[j*8+y][i*8+x]=c;if(i<w-1&&x>5&&t[j][i+1]!=0)r[j*8+y][i*8+x]=c;}}}}for(int l=0;l<8;l++){System.out.println(z+Arrays.toString(r[j*8+l]).replaceAll("[\\[\\]]|[, ]\\s",""));z+=" ";}}}

Burada deneyebilirsiniz :)

Unminified:

static void m(char[][] b, int[][] t) {
    String z="";
    int w=b[0].length;int h=b.length;
    char[][]r=new char[h*8][w*8];
    for(int j=0;j<h;j++){
        for(int i=0;i<w;i++){
            for(int x=0;x<8;x++)for(int y=0;y<8;y++){
                r[j*8+y][i*8+x] = b[j][i];
                int n=t[j][i];
                if(n!=0){
                    char c;int d,e;
                    if(n==1){c='@';e=0;d=7;}
                    else{c='#';e=1;d=6;}
                    if(x>e&&y>e&&x<d&&y<d)r[j*8+y][i*8+x]=c;

                    if(x>e&&x<d){
                        if(j>0&&y<2&&t[j-1][i]!=0)r[j*8+y][i*8+x]=c;
                        if(j<h-1&&y>5&&t[j+1][i]!=0)r[j*8+y][i*8+x]=c;
                    }
                    if(y>e&&y<d){
                        if(i>0&&x<2&&t[j][i-1]!=0)r[j*8+y][i*8+x]=c;
                        if(i<w-1&&x>5&&t[j][i+1]!=0)r[j*8+y][i*8+x]=c;
                    }
                }
            }
        }
        for(int l=0;l<8;l++){System.out.println(z+Arrays.toString(r[j*8+l]).replaceAll("[\\[\\]]|[, ]\\s",""));z+=" ";}
    }
}

Ah, statik sürümü güncellemeyi unutmuş olmalıyım. Bunu işaret ettiğiniz için teşekkürler!
100Toby1

100Toby1 Merhaba Toby, Welcome ve güzel cevap @, kendi değiştirebilir andbitsel için s ands &&> - &birkaç bayt için.
LiefdeWen

ayrıca init yaparsanız c='#',d=6,e=1o zaman başka `c {'=' # '; e = 1; d = 6;}`
LiefdeWen

0

JavaScript - 299 bayt

(a,b,g=(x,y)=>!(b[y]||0)[x],u=s=r='',L='length',R='repeat')=>{for(y=v=-1;++y<a[L];)for(i=v;++i<8;)for(x=v,s+=`
`+r,r+=' ';m=b[y][++x],W=Q=a[y][x],W+=(Z=~m&1)?Q:u,D=(A=i<m)|(B=i>7-m)?W:u,p=g(x-1,y)?W:D,q=g(x+1,y)?W:D,x<a[0][L];)s+=p+(A&&g(x,y-1)||B&&g(x,y+1)||!m?Q:'@#'[Z])[R](8-(p+q)[L])+q;return s}

Burada deneyin


0

PHP, 275268266264252 bayt

<?foreach($_GET[a]as$y=>$r)for($z=8;$z--;)for($x=-print"
".$f.=" ";$w--||$c=$r[++$x+!$w=7];)echo[$a=($s=($m=$_GET[b])[$y])[$x+1],$a|$b=2>$n=$s[$x],1,1,1,1,$b|$a=$s[$x-1],$a][$w]*[$a=$m[$y+1][$x],$a|$b,1,1,1,1,$b|$a=$m[$y-1][$x],$a][$z]*$n?" @#"[$n]:$c;

GET parametrelerinden girdi alır ave bSTDOUT'a yazdırır. Çevrimiçi deneyin.

Yıkmak

foreach($_GET[a]as$y=>$r)   # loop 1: through rows of first array
    for($z=8;$z--;)             # loop 2: $z from 7 to 0 (line = 8*$y+7-$z)
        for($x=-print"\n".$f.=" ";  # print newline and padding
            $w--                        # loop 4: loop $w from 7 to 0 (column = 8*$x+7-$w)
            ||$c=$r[++$x+!$w=7];)   # loop 3: loop $c through characters in row
                echo
                [                               # vertical test
                    $a=($s=($m=$_GET[b])[$y])[$x+1],    # $m=2nd array, $s=current row
                                                        # $a=block to the right has road
                    $a|$b=2>$n=$s[$x],                  # $b=current block has brick road
                    1,1,1,1,
                    $b|$a=$s[$x-1],                     # $a=block to the left has road
                    $a
                ][$w]                               # index tests
                *
                [                               # horizontal test
                    $a=$m[$y+1][$x],                    # $a=block below has road
                    $a|$b,
                    1,1,1,1,
                    $b|$a=$m[$y-1][$x],                 # $a=block above has road
                    $a
                ][$z]                               # index tests
                *$n                             # is a road in this block?
                ?" @#"[$n]:$c;                  # if block&v-test&h-test then print road
                                                # else print character from 1st array
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.