In Quốc kỳ Anh!


10

Lấy cảm hứng từ In cờ Mỹ! đây là bản sao trực tiếp nhưng với quốc kỳ Anh vì nó có một số đối xứng nhưng vẫn khá phức tạp!

Thách thức của bạn là sản xuất ASCII-Art sau càng ít byte càng tốt! Quay đầu / màn hình của bạn (không phải cả hai!) 90 độ để xem đúng.

 __________________________________________ 
|\  \XXXXXXXXXXXX  000000  XXXXXXXXXXXX//0/|
|0\  \XXXXXXXXXXX  000000  XXXXXXXXXXX//0/ |
|\0\  \XXXXXXXXXX  000000  XXXXXXXXXX//0/  |
|\\0\  \XXXXXXXXX  000000  XXXXXXXXX//0/  /|
|X\\0\  \XXXXXXXX  000000  XXXXXXXX//0/  /X|
|XX\\0\  \XXXXXXX  000000  XXXXXXX//0/  /XX|
|XXX\\0\  \XXXXXX  000000  XXXXXX//0/  /XXX|
|XXXX\\0\  \XXXXX  000000  XXXXX//0/  /XXXX|
|XXXXX\\0\  \XXXX  000000  XXXX//0/  /XXXXX|
|XXXXXX\\0\  \XXX  000000  XXX//0/  /XXXXXX|
|XXXXXXX\\0\  \XX  000000  XX//0/  /XXXXXXX|
|XXXXXXXX\\0\  \X  000000  X//0/  /XXXXXXXX|
|XXXXXXXXX\\0\  \  000000  //0/  /XXXXXXXXX|
|XXXXXXXXXX\\0\    000000  /0/  /XXXXXXXXXX|
|XXXXXXXXXXX\\0\   000000  0/  /XXXXXXXXXXX|
|XXXXXXXXXXXX\\0\  000000  /  /XXXXXXXXXXXX|
|XXXXXXXXXXXXX\\0  000000    /XXXXXXXXXXXXX|
|XXXXXXXXXXXXXX\\  000000   /XXXXXXXXXXXXXX|
|                  000000                  |
|000000000000000000000000000000000000000000|
|000000000000000000000000000000000000000000|
|000000000000000000000000000000000000000000|
|                  000000                  |
|XXXXXXXXXXXXXX/   000000  \\XXXXXXXXXXXXXX|
|XXXXXXXXXXXXX/    000000  0\\XXXXXXXXXXXXX|
|XXXXXXXXXXXX/  /  000000  \0\\XXXXXXXXXXXX|
|XXXXXXXXXXX/  /0  000000   \0\\XXXXXXXXXXX|
|XXXXXXXXXX/  /0/  000000    \0\\XXXXXXXXXX|
|XXXXXXXXX/  /0//  000000  \  \0\\XXXXXXXXX|
|XXXXXXXX/  /0//X  000000  X\  \0\\XXXXXXXX|
|XXXXXXX/  /0//XX  000000  XX\  \0\\XXXXXXX|
|XXXXXX/  /0//XXX  000000  XXX\  \0\\XXXXXX|
|XXXXX/  /0//XXXX  000000  XXXX\  \0\\XXXXX|
|XXXX/  /0//XXXXX  000000  XXXXX\  \0\\XXXX|
|XXX/  /0//XXXXXX  000000  XXXXXX\  \0\\XXX|
|XX/  /0//XXXXXXX  000000  XXXXXXX\  \0\\XX|
|X/  /0//XXXXXXXX  000000  XXXXXXXX\  \0\\X|
|/  /0//XXXXXXXXX  000000  XXXXXXXXX\  \0\\|
|  /0//XXXXXXXXXX  000000  XXXXXXXXXX\  \0\|
| /0//XXXXXXXXXXX  000000  XXXXXXXXXXX\  \0|
|/0//XXXXXXXXXXXX__000000__XXXXXXXXXXXX\__\|

Khối có 44 x 42 ký tự. Lưu ý rằng dòng đầu tiên kết thúc với một khoảng trắng! Không có khoảng trống khác được cho phép nhưng một dòng mới ở cuối được cho phép trên dòng cuối cùng.

Tôi không biết bất kỳ ý nghĩa ngày nào đối với Vương quốc Anh tại thời điểm này!


21
Là một người Pháp, danh dự của tôi ngăn cản tôi thực hiện thử thách này
Fatalize 5/07/2015

3
@Firthize Tôi sẽ đăng một thử thách Cờ Pháp cho Ngày Bastille nhưng bạn sẽ phải lấy màu ngay!
CJ Dennis

3
Newton's Princia Mathematica được xuất bản ngày 5 tháng 7 năm 1687, nhưng tôi không chắc liệu điều đó có được tính không. Một mặt nó nằm dưới lịch Julian; mặt khác, toàn bộ hệ thống ngày của chúng ta ít nhiều tùy ý, vì vậy nếu nó được gọi là cùng một ngày, tại sao không ăn mừng nó?
lirtosiast

1
@ThomasKwa Chà, Công chúa Charlotte đã được đặt tên hôm nay, nhưng tôi nghĩ thành tích của Newton có ý nghĩa hơn. Hôm nay là ngày quốc khánh cho Algeria, Cape Verde và Venezuela, tất cả đều có ngôi sao trong lá cờ của họ.
Cấp sông St

9
@Firthize Đây là một lá cờ Pháp cho bạn theo bảng màu của thử thách này : X 0. Tôi hy vọng rằng mã thông báo nhỏ sẽ giúp bạn vượt qua sự phản đối của bạn.
Cấp sông St

Câu trả lời:


10

SpecBAS - 1137 byte

Hoàn toàn không có hy vọng chiến thắng nhân vật, nhưng đầu ra có màu ...

1 PAPER 15: CLS 
2 PRINT AT 1,2;("_"*42): FOR y=2 TO 42: PRINT AT y,1;"|";AT y,44;"|": NEXT y
3 FOR y=4 TO 18: PRINT AT y,y-2;"\";AT y+1,y-2;"\": NEXT y: PRINT AT 19,17;"\"
4 FOR y=2 TO 14: PRINT AT y,y;"\  \";AT y+28,y+26;"\  \": NEXT y: FOR y=15 TO 17: PRINT AT y,y;"\";AT y+12,y+13;"\": NEXT y
5 FOR y=25 TO 39: PRINT AT y,y+3;"\\": NEXT y: PRINT AT 40,43;"\"
6 FOR y=2 TO 14: PRINT AT y,42-y;"/";AT y+1,42-y;"/": NEXT y: PRINT AT 2,41;"/"
7 FOR y=2 TO 17: PRINT AT y,45-y;"/";AT y+3,45-y;"/": NEXT y
8 FOR y=2 TO 16: PRINT AT y+23,18-y;"/";AT y+26,18-y;"/": NEXT y: PRINT AT 27,17;"/"
9 FOR y=1 TO 13: PRINT AT y+29,17-y;"//": NEXT y: PRINT AT 29,17;"/"
10 PRINT AT 42,18;"__";AT 42,26;"__";AT 42,41;"__"
11 INK 2
12 FOR y=2 TO 42: PRINT AT y,20;"0"*6: NEXT y
13 FOR y=21 TO 23: PRINT AT y,2;"0"*42: NEXT y
14 FOR y=3 TO 18: PRINT AT y,y-1;"0";AT y+23,y+25;"0": NEXT y
15 FOR y=2 TO 16: PRINT AT y,44-y;"0";AT y+26,19-y;"0": NEXT y
16 INK 1
17 FOR y=2 TO 13: LET l$="x"*(14-y): PRINT AT y,4+y;l$;AT y,28;l$;AT 44-y,4+y;l$;AT 44-y,28;l$: NEXT y
18 FOR y=6 TO 19: LET l$="x"*(y-5): PRINT AT y,2;l$;AT y,49-y;l$;AT 44-y,2;l$;AT 44-y,44-LEN l$;l$: NEXT y

nhập mô tả hình ảnh ở đây


Làm thế nào ngắn là nó không có màu sắc?
Beta Decay

12 ký tự ít hơn (các câu lệnh INK). Xem xét điều này đã có hơn 1000 ký tự so với hầu hết các mục, tôi sẽ không ngụy biện về chúng. :-)
Brian

1
Haha bạn biết bạn có thể có được điều này ngắn hơn rất nhiều trong BBC BASIC
Beta Decay

Tôi đếm 1554 byte
TuxCrafting

4

Python 2, 223 byte

o=""
x="X"*15
s=x+r"\  \0\\%s//0/  /"%x
exec'o+="|%s  000000  %s|\\n"%(s[18:2:-1],s[25:41]);s=s[1:]+s[0];'*18
print" "+"_"*42+" \n"+o+"\n".join("|%s000000%s|"%(c*18,c*18)for c in" 000 ")+o[:43:-1]+o[43::-1].replace(" ","_")

Vẫn còn nhiều để chơi golf.

Mặc dù có vẻ ngoài của nó, một nửa phía sau giống như nửa phía trước đảo ngược (chặn các dấu gạch dưới), rất đẹp cho một mẫu có dấu gạch chéo.


2

Con trăn 3 361 331

p=print
p("","_"*42,"")
r='|'
w="X"*16
s="\\  \\0\\\\"
z="//0/  /"
O=" 000000 "
m=r+" "*18+"0"*3
o=w+s+w
e=w+z+w
T=e[::-1]
f=o[::-1]
R=range(18)
for i in R:p(r+o[i+19:i+3:-1],O,e[i+4:i+20]+r)
B="p(m+m[::-1]);"
exec(B+"p(r+'0'*42+r);"*3+B)
for i in R[1:]:p(r+T[i+1:i+17],O,f[i+16:i:-1]+r)
p(r+T[19:35]+"__000000__"+o[4:17]+"__\\|")

Chương trình này sử dụng các khả năng cắt chuỗi tuyệt vời của python để tạo ra một chuỗi đại diện cho các sọc:

o = "XXXXXXXXXXXXXXX\  \0\\XXXXXXXXXXXXXXX" 

Sau đó liên tục in ngược về phía sau trong khi dịch chuyển sang phải bằng cách tăng bắt đầu và kết thúc của chuỗi chuỗi để có được điều này:

\  \XXXXXXXXXXX
0\  \XXXXXXXXXX
\0\  \XXXXXXXXX
\\0\  \XXXXXXXX
X\\0\  \XXXXXXX
XX\\0\  \XXXXXX
XXX\\0\  \XXXXX
XXXX\\0\  \XXXX
XXXXX\\0\  \XXX
XXXXXX\\0\  \XX
XXXXXXX\\0\  \X
XXXXXXXX\\0\  \
XXXXXXXXX\\0\  
XXXXXXXXXX\\0\ 
XXXXXXXXXXX\\0\  
XXXXXXXXXXXX\\0  
XXXXXXXXXXXXX\\ 

Đây là góc trên cùng bên trái.

Tôi lặp lại bốn lần này với các biến thể trên chuỗi gốc (như đảo ngược bit ở giữa) để có được bốn góc còn lại.


@ Sp3000 Có tốt hơn không?
James

Bây giờ tôi nghĩ rằng nó quá mỏng
Sp3000

btw Tôi nghĩ rằng bạn đánh giá quá cao - trong 2 ký tự (ví dụ -1, 17) bạn cần sử dụng sáu lần trước khi bạn tiết kiệm bất cứ điều gì
Sp3000

@ Sp3000 bạn nói đúng, tôi nghĩ rằng sẽ tiết kiệm được 2 cái.
James

btw cũng có một khoảng trống ở dòng đầu tiên, mà tôi không nghĩ là bạn in
Sp3000

2

CJam, 131 126 102 99 byte

S'_42*SK,'XE*"//0/  /"+2*f>Gf<_2>
\W%2>.{"\/"_W%er" 000 ":_@}" 0 0"
[I6I63].*+s_W%+42/{N"||"@*}/S'_er

Hai nguồn cấp dữ liệu được bao gồm để ngăn cuộn ngang. Hãy thử trực tuyến trong trình thông dịch CJam .

Ý tưởng

Chúng tôi bắt đầu bằng cách sửa đổi chuỗi

XXXXXXXXXXXXXX//0/  /XXXXXXXXXXXXXX

bằng cách đẩy 19 bản sao, loại bỏ n ký tự đầu tiên cho bản sao thứ n và cắt từng kết quả sau ký tự thứ 16 .

XXXXXXXXXXXXXX//
XXXXXXXXXXXXX//0
XXXXXXXXXXXX//0/
XXXXXXXXXXX//0/ 
XXXXXXXXXX//0/  
XXXXXXXXX//0/  /
XXXXXXXX//0/  /X
XXXXXXX//0/  /XX
XXXXXX//0/  /XXX
XXXXX//0/  /XXXX
XXXX//0/  /XXXXX
XXX//0/  /XXXXXX
XX//0/  /XXXXXXX
X//0/  /XXXXXXXX
//0/  /XXXXXXXXX
/0/  /XXXXXXXXXX
0/  /XXXXXXXXXXX
/  /XXXXXXXXXXXX
  /XXXXXXXXXXXXX
 /XXXXXXXXXXXXXX

Bằng cách loại bỏ hai chuỗi đầu tiên, chúng ta có được góc phần tư phía trên bên phải của cờ.

Bây giờ, nếu chúng ta đảo ngược thứ tự của các chuỗi, một lần nữa loại bỏ hai chuỗi đầu tiên và hoán đổi độ nghiêng của dấu gạch chéo, chúng ta có được góc phần tư phía trên bên trái.

Bằng cách nối các chuỗi tương ứng, " 000000 "ở giữa và nối thêm một vài khoảng trắng và số 0, chúng ta thu được

\  \XXXXXXXXXXXX  000000  XXXXXXXXXXXX//0/
0\  \XXXXXXXXXXX  000000  XXXXXXXXXXX//0/ 
\0\  \XXXXXXXXXX  000000  XXXXXXXXXX//0/  
\\0\  \XXXXXXXXX  000000  XXXXXXXXX//0/  /
X\\0\  \XXXXXXXX  000000  XXXXXXXX//0/  /X
XX\\0\  \XXXXXXX  000000  XXXXXXX//0/  /XX
XXX\\0\  \XXXXXX  000000  XXXXXX//0/  /XXX
XXXX\\0\  \XXXXX  000000  XXXXX//0/  /XXXX
XXXXX\\0\  \XXXX  000000  XXXX//0/  /XXXXX
XXXXXX\\0\  \XXX  000000  XXX//0/  /XXXXXX
XXXXXXX\\0\  \XX  000000  XX//0/  /XXXXXXX
XXXXXXXX\\0\  \X  000000  X//0/  /XXXXXXXX
XXXXXXXXX\\0\  \  000000  //0/  /XXXXXXXXX
XXXXXXXXXX\\0\    000000  /0/  /XXXXXXXXXX
XXXXXXXXXXX\\0\   000000  0/  /XXXXXXXXXXX
XXXXXXXXXXXX\\0\  000000  /  /XXXXXXXXXXXX
XXXXXXXXXXXXX\\0  000000    /XXXXXXXXXXXXX
XXXXXXXXXXXXXX\\  000000   /XXXXXXXXXXXXXX
                  000000                  
000000000000000000000000000000000000000000
000000000000000000000

Nửa sau của cờ chứa gần như chính xác cùng một ký tự, theo thứ tự đọc ngược (phải sang trái, từ dưới lên trên).

Tất cả những gì còn lại phải làm để hoàn thành toàn bộ cờ là đẩy dòng đầu tiên, thay thế khoảng trắng bằng dấu gạch dưới ở cuối và giới thiệu các thanh dọc và nguồn cấp dữ liệu thực tế.

S'_42*S   e# Push a space, a string of 42 underscores and another space.
K,        e# Push [0 ... 19].
'XE*      e# Push a string of 14 X's.
"//0/  /" e# Push that string.
+2*       e# Concatenate and repeat the result twice.
f>        e# Push copies with 0, ..., 19 character removed from the left.
Gf<       e# Truncate each result after 16 characters.
_2>       e# Copy the array and discard its first two elements.
\W%2>     e# Reverse the original array and discard its first two elements.

.{        e# For each pair of corresponding strings in the arrays:
  "\/"    e#   Push "\/".
  _W%     e#   Reverse a copy to push "/\\".
  er      e#   Perform transliteration on the string from the right array..
  " 000 " e#   Push that string.
  :_      e#   Duplicate each charcter to push "  000000  ".
  @       e#   Rotate the string from the left array on top.
}         e#

" 0 0"    e# Push that string.
[I6I63]   e# Push [18 6 18 63].
.*        e# Vectorized repetition.
+s        e# Concatenate ad flatten.
_W%+      e# Push a reversed copy and concatenate.
42/       e# Split into chunks of length 42.
{         e# For each chunk:
  N       e#   Push a linefeed.
  "||"@*  e#   Join the string "||", using the chunk as separator.
}/        e#
S'_er     e# Replace spaces with underscores in the last string.

1

Javascript ES6, 726 725 655 647 643 byte

a="__";l=" ";b=l+l;c=`|
|`;d="X";e="0";f=b+e[r="repeat"](6)+b;g="\\  \\";h="//0/";i="/  /";Z="\\";A=Z+Z;j=A+0;k=d[r].bind(d);y=c+l[r](16)+f+l[r](16);z=c+e[r](42);B="/";C="\\0";D="0//";E=B+D;q=n=>k(n)+f+k(n);F=n=>g+q(n)+h;G=n=>c+k(n)+j+F(9-n)+k(3+n);H=n=>A+k(n+1)+c+k(n);I=n=>q(n)+g+e+H(8-n)+i+D;console.log(l+a[r](21)+` 
|`+F(12)+c+e+F(11)+d+c+C+F(10)+d+d+c+j+F(9)+k(3)+c+d+j+F(8)+k(4)+G(2)+G(3)+G(4)+G(5)+G(6)+G(7)+G(8)+y+z+z+z+y+c+k(14)+B+l+f+H(13)+B+b+f+e+H(12)+i+f+C+H(11)+i+e+f+l+C+H(10)+i+"0/"+f+b+C+H(9)+i+D+I(0)+I(1)+I(2)+I(3)+I(4)+I(5)+I(6)+I(7)+I(8)+q(9)+g+e+A+c+b+E+q(10)+g+e+Z+c+l+E+q(11)+g+e+c+E+k(12)+a+e[r](6)+a+k(12)+Z+a+Z+"|")

2
Bạn đang sử dụng ES6, tại sao không có chức năng mũi tên béo?
Hạ cấp

1
Ngoài ra, các chuỗi mẫu có thể cắt giảm khoảng hai byte cho\n
Downgoat

1

PHP, 240 byte

 <?=str_pad(_,42,_)." ";for($o=18;$o--;)$r.="
".($s="|".substr("XXXXXXXXXXXXXX\\\\0\  \\XXXXXXXXXXXX//0/",$o,16)."  000").($v=strrev)(strtr($s,"\\","/"));echo$r;for(;$i<5;)echo"
",$s=str_pad("|",19,$i++%4?0:" ")."000",$v($s);echo"
",$v($r);

Lưu ý không gian trước thẻ mở! Hãy thử trực tuyến .


0

SpecBAS một lần nữa - 507 byte

Đây là một phiên bản tương tự như của Brian ở trên (tôi chưa có đủ danh tiếng để bình luận) nhưng không có màu. Nó sử dụng một phương pháp rất khác nhau để tạo ra màn hình.

10 DEF FN rr$(r$)=r$(2 TO)+r$(1): DEF FN rl$(r$)=r$(LEN r$)+r$( TO LEN r$-1)
20 a$="\  \"+"x"*14+"\\0",b$="x"*12+"//0/  /xx",c$="x"*14+"/  /0//",d$="\\"+"x"*14+"\  \0",e$="  000000  ": ?" ";"_"*42: DO 18: ?"|";a$( TO 16);e$;b$( TO 16);"|": a$=FN rl$(a$),b$=FN rr$(b$): LOOP: ?"|";TAB 17;e$;TAB 43;"|"'("|"+("0"*42)+"|"+#13)*3;"|";TAB 17;e$;TAB 43;"|": DO 18: ?"|";c$( TO 16);e$;d$( TO 16);"|": c$=FN rr$(c$),d$=FN rl$(d$): LOOP: ?#11;TAB 17;"__";TAB 25;"__";TAB 40;"__"

0

Bong bóng , 213 byte

00000000: b5d3 0106 4421 1080 6100 de29 e606 759c  ....D!..a..)..u.
00000010: 105d a4c3 6fdb 461f 030f f607 f019 994c  .]..o.F........L
00000020: 8cd7 c533 7b44 6f14 5177 118d 4aa9 653e  ...3{Do.Qw..J.e>
00000030: b3a2 13d6 c6c2 1d9d b076 6375 c2d8 b270  .........vcu...p
00000040: 5327 8c6d 5fac 4e18 bbb1 3a61 ecc1 6ab1  S'.m_.N...:a..j.
00000050: f662 b518 0b46 83b1 6034 180b 5683 b162  .b...F..`4..V..b
00000060: f5c5 58b1 1a8c 05a3 c158 b1fa 62ac 587d  ..X......X..b.X}
00000070: 3156 ac06 630f 8ed4 c1a9 85eb ebfe 8adf  1V..c...........
00000080: bf39 6da3 803b 67cc eab0 e08a 0663 0b93  .9m..;g......c..
00000090: d160 2c3f 8806 6b99 8c06 6bc1 1d0d c67a  .`,?..k...k....z
000000a0: 2968 3056 8c06 63c5 6830 568c 0663 c5e8  )h0V..c.h0V..c..
000000b0: 8bb5 62f5 c1d8 8cd1 1b6b 3346 2fac cd58  ..b......k3F/..X
000000c0: bdb0 3663 f4c6 da8c d10b 6f4b 63fc f018  ..6c......oKc...
000000d0: 4d3d 469f 1f                             M=F..

Hãy thử trực tuyến!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.