Podsumowując, to po prostu kolejna sztuczka w golfie kodowym


64

Celem tego wyzwania jest wyprodukowanie wersji ASCII okładki tego wspaniałego albumu zespołu rockowego Pink Floyd.

Ceglane skrzyżowania składają się z postaci _i |. Cegły mają szerokość 7 i wysokość 2 znaki, z wyłączeniem skrzyżowań. Zatem podstawową jednostką, w tym skrzyżowaniami, jest:

_________
|       |
|       |
_________

Każdy rząd cegieł jest przesunięty o połowę szerokości cegły (4 znaki) w stosunku do poprzedniego rzędu:

________________________________________
  |       |       |       |       |     
  |       |       |       |       |     
________________________________________
      |       |       |       |       | 
      |       |       |       |       | 
________________________________________
  |       |       |       |       |     
  |       |       |       |       |     

Ściana jest parametryzowana w następujący sposób. Wszystkie parametry są mierzone w znakach, w tym skrzyżowaniach:

  1. Poziome przesunięcie pierwszego rzędu F. Jest to odległość między lewym marginesem a pierwszym pionowym skrzyżowaniem najwyższego rzędu. (Pamiętaj również o względnym przesunięciu między cegłami między rzędami). Jego możliwych wartości 0, 1, ..., 7.
  2. Całkowita szerokość , W. Obejmuje to skrzyżowania. Jego wartość jest dodatnią liczbą całkowitą.
  3. Łączna wysokość , H. Obejmuje to skrzyżowania. Jego wartość jest dodatnią liczbą całkowitą.

Szczyt ściany zawsze pokrywa się z górą rzędu. Dno może być poszarpane (jeśli całkowita wysokość nie jest wielokrotnością 3). Na przykład, tutaj jest wyjście 6, 44, 11:

____________________________________________
      |       |       |       |       |     
      |       |       |       |       |     
____________________________________________
  |       |       |       |       |       |     
  |       |       |       |       |       |     
____________________________________________
      |       |       |       |       |     
      |       |       |       |       |     
____________________________________________
  |       |       |       |       |       |     

oraz wizualne objaśnienie parametrów:

          F=6
         ......   
     .   ____________________________________________
     .         |       |       |       |       |    
     .         |       |       |       |       |     
     .   ____________________________________________
     .     |       |       |       |       |       | 
H=11 .     |       |       |       |       |       |      
     .   ____________________________________________
     .         |       |       |       |       |     
     .         |       |       |       |       |     
     .   ____________________________________________
     .     |       |       |       |       |       |      

         ............................................
                             W=44

Dodatkowe zasady

Możesz podać program lub funkcję.

Format wejściowy jest elastyczny jak zwykle. Dane wyjściowe mogą być przekazywane przez STDOUT lub argument zwracany przez funkcję. W tym przypadku może to być ciąg znaków z nowymi liniami lub tablica ciągów.

Końcowe spacje lub znaki nowej linii są dozwolone.

Najkrótszy kod w bajtach wygrywa.

Przypadki testowe

Dane wejściowe są w podanej wyżej kolejności, to znaczy: przesunięcie w poziomie pierwszego rzędu, całkowita szerokość, całkowita wysokość.

6, 44, 11:
____________________________________________
      |       |       |       |       |     
      |       |       |       |       |     
____________________________________________
  |       |       |       |       |       | 
  |       |       |       |       |       | 
____________________________________________
      |       |       |       |       |     
      |       |       |       |       |     
____________________________________________
  |       |       |       |       |       |     


2, 20, 10:
____________________
  |       |       | 
  |       |       | 
____________________
      |       |     
      |       |     
____________________
  |       |       | 
  |       |       | 
____________________


1, 1, 1:
_


1, 2, 3:
__
 |
 |


3, 80, 21:
________________________________________________________________________________
   |       |       |       |       |       |       |       |       |       |    
   |       |       |       |       |       |       |       |       |       |    
________________________________________________________________________________
       |       |       |       |       |       |       |       |       |       |
       |       |       |       |       |       |       |       |       |       |
________________________________________________________________________________
   |       |       |       |       |       |       |       |       |       |    
   |       |       |       |       |       |       |       |       |       |    
________________________________________________________________________________
       |       |       |       |       |       |       |       |       |       |
       |       |       |       |       |       |       |       |       |       |
________________________________________________________________________________
   |       |       |       |       |       |       |       |       |       |    
   |       |       |       |       |       |       |       |       |       |    
________________________________________________________________________________
       |       |       |       |       |       |       |       |       |       |
       |       |       |       |       |       |       |       |       |       |
________________________________________________________________________________
   |       |       |       |       |       |       |       |       |       |    
   |       |       |       |       |       |       |       |       |       |    

34
Dostałeś mnie z kliknięciem w hnq
— Rohan Jhunjhunwala

2
@RohanJhunjhunwala Brzmi dobrze
— Insane

4
Dziękuję za dopasowanie liczby sylab w tekście ... nie uwierzysz, ile osób próbuje wyodrębnić piosenkę i źle zrozumie sylabację, doprowadza mnie to do szału!
— Chris Cirefice,

1
@ChrisCirefice Haha, dzięki! Tytuł był ważną częścią tego wyzwania
— Luis Mendo

Odpowiedzi:


17

Pyth, 43 27 bajtów

I potrzebują do golfa to mocno ... wynik jest zbyt wstydliwe.

AQVE<*H?%N3X*8d+G*4/N3\|\_H

Wypróbuj już online.

Format wejściowy

6,44
11

Format wyjściowy

____________________________________________
      |       |       |       |       |     
      |       |       |       |       |     
____________________________________________
  |       |       |       |       |       | 
  |       |       |       |       |       | 
____________________________________________
      |       |       |       |       |     
      |       |       |       |       |     
____________________________________________
  |       |       |       |       |       | 

Wyjaśnienie

AQVE<*H?%N3X*8d+G*4/N3\|\_H   First two inputs as list in Q,
                              third input as E.

AQ                            Assign G to the first item in Q
                              and H to the second item in Q.
  VE                          For N from 0 to E-1:
                   /N3            N floor-div 3.
                                    if N gives a remainder of 3 or 4 or 5
                                    when divided by 6, this will be odd;
                                    otherwise, this will be even.
                 *4               Multiply by 4.
                                    if the above is odd, this will leave
                                    a remainder of 4 when divided by 8;
                                    otherwise, the remainder would be 0.
               +G                 Add G (as an offset).
           X*8d       \|          In the string "        " (*8d),
                                  replace (X) the character with the
                                  index above with "|" (modular indexing,
                                  hence the manipulation above).
       ?%N3             \_        If N%3 is non-zero, use the above;
                                  otherwise, use "_".
     *H                           The above repeated H times.
    <                     H       Take the first H characters of above.
                                  Implicitly print with newline.

Wygląda na to, że
— wygrałeś

30

C, 86 85 83 82 bajtów

3 bajty zapisane dzięki Lynn.
1 bajt zapisany dzięki Charlie.

i;f(o,w,h){++w;for(i=0;++i<w*h;)putchar(i%w?i/w%3?i%w+i/w/3*4+~o&7?32:124:95:10);}

1
for(i=0;++i<w*h;)lub jeśli ijest lokalny (param trick):for(;++i<w*h;)
— charlie

zamień i;na i=1;i zapisz jeszcze jeden bajt w pętli for.
— xryl669,

for(i=1;i<w*h;++i)-> for(i=0;++i<w*h;)zapisuje 1
— Yay295

@ xryl669 To nie jest poprawne, funkcje muszą być wielokrotnego użytku.
— orlp

@ Yay295 Przypisałem to Charliemu, ponieważ opublikował go 7 godzin wcześniej.
— orlp


13

Perl, 63 bajty

#!perl -nl
$y+=print+map$y%3?$_++-$`&7?$":'|':_,($y%6&4)x$&for/ \d+/..$'

Licząc shebang jako 2, dane wejściowe są pobierane ze standardowego wejścia, oddzielone spacjami.

Przykładowe użycie

$ echo 2 20 10 | perl bricks.pl
____________________
  |       |       |
  |       |       |
____________________
      |       |
      |       |
____________________
  |       |       |
  |       |       |
____________________

11

Haskell, 83 bajty

q s="_":[s,s]
(f!w)h=take h$cycle$take w.drop(7-f).cycle<$>q"       |"++q"   |    "

Definiuje to potrójną funkcję poprawki, !która zwraca listę ciągów znaków. Przykład użycia:

*Main> putStrLn $ unlines $ (3!14) 7
______________
   |       |  
   |       |  
______________
       |      
       |      
______________

Jak to działa:

            q"       |"++q"   |    "  -- build a list of 6 strings
                                      --   1:     "_"
                                      --   2:     "       |"
                                      --   3:     "       |"
                                      --   4:     "_"
                                      --   5:     "   |    "
                                      --   6:     "   |    "
         <$>                          -- for each of the strings
     take w.drop(7-f).cycle           -- repeat infinitely, drop the first 7-f chars
                                      --    and take the next w chars
  cycle                               -- infinitely repeat the resulting list
take h                                -- and take the first h elements

1
Takie odpowiedzi sprawiają, że chcę się uczyć tego języka.
— GuitarPicker,

3
Myślałem o Haskellu, czytając opis problemu. „Powtarzanie w nieskończoność” to naprawdę fajna funkcja.
— DLosc

10

JavaScript (ES6), 96 95 bajtów

g=
(f,w,h)=>[...Array(h)].map((_,i)=>(i%3?`       |`:`_`).repeat(w+7).substr(f^7^i%6&4,w)).join`
`
;
<div onchange=o.textContent=g(f.value,w.value,+h.value)><input id=f type=number min=0 max=7 placeholder=Offset><input id=w type=number min=0 placeholder=Width><input id=h type=number min=0 placeholder=Height></div><pre id=o>

Objaśnienie: Tworzy ciąg powtarzających się 7 spacji plus |wzorzec lub tylko powtarzane _s, ale co najmniej wystarczająco długi, aby móc wyodrębnić wznaki wymagane dla każdego wiersza. Pierwsze trzy rzędy zaczynają się od pozycji, f^7a następnie następne trzy rzędy zaczynają się od pozycji f^3, więc osiągam to poprzez przełączanie bitu 2 z fco trzeciego rzędu za pomocą przeciwnego bitu 2 w ostatnich dwóch rzędach każdego bloku 6 dla oszczędności 1 bajt.


7

MATL, 42 36 33 bajtów

:-Q'_ | |'[DClCl]Y"8et4YShwi:3$)!

Format wejściowy jest: nCols, offset,nRows

Wypróbuj online

Podejście polega na tym, że ustawiamy „szablon”, do którego następnie indeksujemy, używając indeksów wierszy ( [1 2 ... nRows]) i indeksów kolumn przesuniętych o pierwsze wejście ( [1 2 ... nCols] - shift). Dzięki modułowemu indeksowaniu MATL, automatycznie wygeneruje kafelkowe wyjście. Na marginesie, aby zaoszczędzić trochę miejsca, technicznie pracuję z transponowaną wersją szablonu, a następnie biorę transpozycję ( !) na końcu.

Szablon jest następujący:

________
       |
       |
________
  |     
  |     

1
Dobre wykorzystanie kodowania długości przebiegu do wygenerowania wzoru
— Luis Mendo

6

Python 2, 93 88 bajtów

Drugi poziom wcięcia to zakładka Oszczędność niektórych bajtów dzięki Dziurawej Zakonnicy i własnym modyfikacjom, teraz także poprawne przesunięcie:

def f(F,W,H):
 for h in range(H):print["_"*W,((("|"+7*" ")*W)[8-F+h%6/3*4:])[:W]][h%3>0]

poprzedni kod:

def f(F,W,H,x="|"+7*" "):
 for h in range(H):
    print ["_"*W,(x[F+4*(h%6>3):]+x*W)[:W]][h%3>0]

Taka sama długość jak nienazwana lambda:

lambda F,W,H,x="|"+7*" ":"\n".join(["_"*W,(x[F+4*(h%6>3):]+x*W)[:W]][h%3>0]for h in range(H))

F,W,H=input()
— Leaky Nun

usuń spację poprint
— Leaky Nun

użyj h/3%2*4lub h%6/3*4zamiast4*(h%6>3)
— Leaky Nun

Nie potrzebujesz drugiego poziomu wcięcia. Wystarczy umieścić printoświadczenie w tym samym wierszu, co foroświadczenie
— Leaky Nun

"| "jest krótszy niż, ("|"+7*" ")jeśli liczę poprawnie
— Leaky Nun

6

QBasic, 121 109 bajtów

(Testowane na QB64)

Dzięki @DLosc za grę w golfa moim IFstwierdzeniem z matematycznym odpowiednikiem. To było warte 12 bajtów.

Ogólna metoda:

Pętli każdej komórce jednej na raz i ustalić, czy powinien to być _, albo |w zależności od jego lokalizacji. MODinstrukcje i logika logiczna służą do określania granic cegieł i tego, jak bardzo rozłożyć cegły.

Kod:

INPUT F,W,H
FOR y=0TO H-1:FOR x=0TO W-1
?CHR$((y MOD 3>0)*(((x-(y MOD 6>3)*4)MOD 8=F)*92+63)+95);
NEXT:?:NEXT

Uwaga dotycząca użytkowania:

QBasic oczekuje, że dane wejściowe będą liczbami oddzielonymi przecinkami.


1
Używanie matematyki zamiast IF/ THENdodaje jeszcze więcej nawiasów, ale oszczędza 12 bajtów:?CHR$((y MOD 3>0)*(((x-(y MOD 6>3)*4)MOD 8=F)*92+63)+95);
— DLosc

Dziękuję za komentarz. Z tyłu głowy zastanawiałem się nad poznaniem matematyki, ale nie zrobiłem tego. Zrobiłem coś podobnego do tego, aby pokolorować obraz w ostatnim zgłoszeniu , ale implementacja, której użyłem, nie miała operatora MOD.
— GuitarPicker

5

Java, 149 , 147 , 146 , 143 bajtów

Gra w golfa:

String f(int o,int w,int h){String s="";for(int y=0,x;y<h;++y){for(x=0;x<w;++x){s+=y%3>0?(x-o+(y-1)/3%2*4)%8==0?'|':' ':'_';}s+='\n';}return s;}

Nie golfowany:

public class AllInAllItsJustUhAnotherTrickInCodeGolf {

  public static void main(String[] args) {
    int offset = 6;
    int width = 44;
    int height = 11;
    System.out.println(new AllInAllItsJustUhAnotherTrickInCodeGolf()
        .f(offset, width, height));
  }

  // Begin golf
  String f(int o, int w, int h) {
    String s = "";
    for (int y = 0, x; y < h; ++y) {
      for (x = 0; x < w; ++x) {
        s += y % 3 > 0 ? (x - o + (y - 1) / 3 % 2 * 4) % 8 == 0 ? '|' : ' ' : '_';
      }
      s += '\n';
    }
    return s;
  }
  // End golf

}

1
Może mógłbyś zmienić kolejność trójki, porównując z tym, > 0co mogłoby zapisać dwie postacie. I oczywiście można łączyć deklaracje z int y=0,x.
— Frozn

Jak powiedział Frozn , możesz usunąć int przed xi użyć int y=0,xw pierwszej pętli for, aby zapisać 2 bajty. Ponadto obecnie możesz zmienić y%3==0na y%3<1. (To nie jest możliwe, ...%8==0aby ...&8<1chociaż, ponieważ operacja może wrócić liczbę ujemną.)
— Kevin Cruijssen

Gotowe i gotowe. Masz rację, ten drugi moduł może zwracać wartość ujemną, a zrobił to podczas debugowania, kiedy pierwotnie napisałem tę funkcję.

1
Nie jestem pewien, jak to przeoczyliśmy, ale możesz usunąć spacje przy swoich parametrach dla -2 bajtów. Alternatywnie, użycie int...ojako parametru i zamiana wna o[1], hna o[2]i ona o[0]to -3 bajty.
— Kevin Cruijssen

4

Rubin, 72 66 bajtów

->f,w,h{h.times{|i|puts i%3<1??_*w:((?|+' '*7)*w)[8-f+i%6/4*4,w]}}

Dzięki @Value Ink za 6 bajtów!

Proste mnożenie i krojenie ciągów.

Działa w Ruby 2.3.0 (w wersji 2.1 ideone wystąpił błąd składniowy).


2
Użyj i%6/4*4zamiast (i%6>3?4:0)i użyj ?_zamiast '_', ?|zamiast '|'.
— Wartość tuszu

Dziękuję Ci. Zapomniałem o ?sztuczce single char, a część „matematyczna” robi wrażenie!
— Leibrug,

1
Myślę, że ((' '*7+?|)*w)[f^7^i%6&4,w]oszczędza ci dwa bajty.
— Neil,

Dziękuję @Neil.
— Zmodyfikuję

4

Julia: 150 128 116 108 107 bajtów

# in codegolf.jl
r=repmat;b=r([' '],6,8);b[[1,4],:]='_';b[[2,3,23,24]]='|';b=r(b,h,w)[1:h,o+=1:o+w];b[:,end]=10;print(b'...)

uruchomić z argumentami: julia -e 'o=2;h=18;w=40;include("codegolf.jl")'

Jeśli czujesz, że dzwonienie z bash jest oszustwem i chcesz mieć funkcję wewnątrz interpretera, to wersja funkcji ma 117 bajtów :)

f(o,h,w)=(r=repmat;b=r([' '],6,8);b[[1,4],:]='_';b[[2,3,23,24]]='|';b=r(b,h,w)[1:h,o+=1:o+w];b[:,end]=10;print(b'...))

próbny

(Dzięki, @ glen-o za dodatkową wskazówkę oszczędzającą bajty!)


Witamy w PPCG! Miło cię widzieć także tutaj!
— Luis Mendo,

Zauważ, że dane wejściowe powinny być podejmowane jawnie, tzn. Potrzebujesz jakiejś instrukcji wejściowej dla tych trzech zmiennych. Lub możesz użyć funkcji, która bierze je jako argumenty i wyniki lub wyświetla wynik. Gdy skończysz, możesz opublikować demo online za pomocą Wypróbuj online!
— Luis Mendo,


ah. tak! : p
— Tasos Papastylianou

1
Możesz zapisać kilka znaków, używając repmat zamiast z nich ( repmat([32],6,8)), a następnie zmieniając nazwę repmat, aby ogolić inny znak ( g=repmat;b=g([32],6,8)i później b=g(b,h,w)[1:h,o+1:o+w+1]). Następnie zastąpić reinterpretz map. Według moich obliczeń zaoszczędzisz 9 bajtów między tymi zmianami.
— Glen O

3

JavaScript, 172 168 165 157 147 142 137 137 bajtów

(O,W,H)=>{t='_'.repeat(W),x='|       '.repeat(W),f=t+`
`;for(i=0;++i<H;)f+=(!(i%3)?t:(i%6)>3?x.substr(O,W):x.substr(8-O,W))+`
`;return f}

N = (O,W,H)=>{t='_'.repeat(W),x='|       '.repeat(W),f=t+`
`;for(i=0;++i<H;)f+=(!(i%3)?t:(i%6)>3?x.substr(O,W):x.substr(8-O,W))+`
`;return f}

let test_data = [[6,44,11],
                 [2,20,10],
                 [1,1,1],
                 [1,2,3],
                 [3,80,21]];

for (test of test_data)
    console.log(N(...test));


Dlaczego nie użyć s.repeat(w)zamiast Array(w).fill(s).join``?
— Neil,

@Neil: Dobry pomysł, ale pomyślałem o czymś lepszym.
— Yay295,

i wtedy zdałem sobie sprawę, że twoje rozwiązanie jest lepsze niż myślałem. Dzięki!
— Yay295,

3

Dyalog APL, 29 bajtów

↑⎕⍴⎕⍴¨a,4⌽¨a←'_',2⍴⊂⌽⎕⌽¯8↑'|'

Testy: 6 44 11, 2 20 10, 1 1 1, 1 2 3, 3 80 21

⎕jest analizowany wkład; jako wyrażenie wykonuje od prawej do lewej, to prosi o F, Wi Hw tej kolejności

¯8↑'|' jest ' |'

⎕⌽ obraca się, tnie znaki F z przodu i kładzie je na końcu łańcucha

drugi ⌽oznacza odwrócenie

'_',2⍴⊂ tworzy 3 krotkę „_”, a następnie dwie osobne kopie ciągu

a,4⌽¨a← dodajmy 4-rotację wszystkiego do tej pory, otrzymujemy 6-krotność

⎕⍴¨ przekształć każdy element na szerokość

⎕⍴ zmienić kształt na wysokość

↑ zmieszać wektor wektorów w macierz


2

Faktycznie , 44 43 40 bajtów

Jest to właściwie port algorytmu w odpowiedzi JS Neila . Sugestie dotyczące gry w golfa mile widziane. Wypróbuj online!

╗╝r⌠;6(%4&╜7^^╛'|7" "*+*t╛@H╛'_*3(%YI⌡Mi

Ungolfing:

          Takes implicit input in the order h, w, f.
╗╝        Save f to register 0. Save w to register 1.
r⌠...⌡M   Map over range [0..h-1]. Call this variable i.
  ;         Duplicate i
  6(%       i%6...
  4&        ...&4
  ╜7^^      ...^i^7. Call it c.
  ╛         Push w.
  '|7" "*+  The string "       |"
  *t╛@H     (("       |" * w)[c:])[:w]
  ╛'_*      Push "_" * w
  3(%       Push 3, move duplicate i to TOS, mod.
  YI        If not i%3, take "_"*w, else (("       |" * w)[c:])[:w]
            Function ends here.
i         Flatten the resulting list and print the bricks implicitly.


1

Oktawa 80 76 bajtów

% in file codegolf.m
c(6,8)=0;c([1,4],:)=63;c([2,3,23,24])=92;char(repmat(c+32,h,w)(1:h,o+1:o+w))

uruchomić z terminala: octave --eval "o=2;h=18;w=44; codegolf"

(alternatywnie, jeśli uważasz, że wywołanie terminalu oszukuje: p, wówczas implementacja funkcji anonimowej zajmuje 86 bajtów :)

c(6,8)=0;c([1,4],:)=63;c([2,3,23,24])=92;f=@(o,h,w)char(repmat(c+32,h,w)(1:h,o+1:o+w))

Zadzwoń f(2,18,44)do tłumacza oktawy.


1

Bash + Sed, 411 395 381 370 bajtów:

F=`printf '_%.s' $(eval echo {1..$2})`;V="       |";(($[($2-$1)/8]>0))&&L=`printf "$V%.s" $(eval echo {1..$[($2-$1)/8]})`||L=;Z=`printf "%$1.s|%s\n" e "$L"`;I=$[($2-(${#Z}-4))/8];(($I>0))&&W=`printf "$V%.s" $(eval echo {1..$I})`||W=;J=${Z:4}$W;for i in `eval echo {1..$[$3/3+1]}`;{ (($[$i%2]<1))&&O+="$F\n$J\n$J\n"||O+="$F\n$Z\n$Z\n";};echo "`echo -e "$O"|sed -n 1,$3p`"

Cóż, oto moja pierwsza odpowiedź w języku Bash lub w dowolnym innym języku skryptowym. Jest to także zdecydowanie najdłuższa odpowiedź tutaj. Pobiera sekwencję rozdzielonych spacjami argumentów wiersza poleceń w formacie Offset Width Height. Może to być prawdopodobnie o wiele krótsze niż obecnie, więc wszelkie wskazówki i / lub triki dotyczące gry w golfa są doceniane bardziej.


1

Delphi / Object Pascal, 305 , 302 , 292 bajtów

Pełny program konsoli, który odczytuje 3 parametry.

uses SySutils,Math;var i,q,o,w,h:byte;begin o:=StrToInt(paramstr(1));w:=StrToInt(paramstr(2));h:=StrToInt(paramstr(3));for q:=0to h-1do begin for i:=1to w do if q mod 3=0then Write('_')else if IfThen(Odd(q div 3),((i+o)mod 8),((i-o)mod 8))=1then Write('|')else Write(' ');Writeln('');end end.

bez golfa

uses
  SySutils,
  Math;
var
  i,q,o,w,h:byte;
begin
  o:=StrToInt(paramstr(1));
  w:=StrToInt(paramstr(2));
  h:=StrToInt(paramstr(3));

  for q := 0 to h-1 do
  begin
    for i := 1 to w do
      if q mod 3 = 0  then
        Write('_')
      else
        if IfThen(Odd(q div 3),((i+o)mod 8),((i-o)mod 8)) = 1 then
          Write('|')
        else Write(' ');
    Writeln('');
  end
end.

Niestety, Delphi nie ma potrójnego operatora i jest to dość szczegółowy język.

walizka testowa

D:\Test\CodeGolfWall\Win32\Debug>Project1.exe 2 20 10
____________________
  |       |       |
  |       |       |
____________________
      |       |
      |       |
____________________
  |       |       |
  |       |       |
____________________

D:\Test\CodeGolfWall\Win32\Debug>Project1.exe 6 44 11
____________________________________________
      |       |       |       |       |
      |       |       |       |       |
____________________________________________
  |       |       |       |       |       |
  |       |       |       |       |       |
____________________________________________
      |       |       |       |       |
      |       |       |       |       |
____________________________________________
  |       |       |       |       |       |

Edycja: Można ogolić 3 bajty, używając bajtu jako typu dla wszystkich zmiennych.

Edycja 2: A aplikacje konsolowe nie potrzebują deklaracji programu, -10

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.