วาดธงสวิส


46

ภารกิจ:เอาต์พุตแฟล็ก Swiss

สุขสันต์วันชาติสวิส / Schweizer Bundesfeiertag / Fête nationale สวิส / Festa nazionale svizzera / Fiasta naziunala svizra!

รายละเอียด: ธงประกอบด้วย#FFFFFFกากบาทสีขาว ( ) บน#FF0000พื้นหลังสีแดง ( ) ไม้กางเขนประกอบด้วย 6x6 สี่เหลี่ยมจัตุรัสแขนขนาด 6x7 ติดกาวแต่ละข้าง กากบาทอยู่ในใจกลางของพื้นหลังสี่เหลี่ยมจัตุรัส 32x32 ซึ่งมีระยะทาง 6 หน่วยในแต่ละด้าน ( ที่มา )

ผู้เข้าร่วมสามารถเลือกขนาดผลงานได้ แต่ภาพจะต้องตรงกับสัดส่วนเหล่านี้อย่างแน่นอนซึ่งหมายความว่าขนาดของภาพนั้นต้องเท่ากับ 32

เวอร์ชันขั้นต่ำจะมีหน้าตาดังนี้:


1
ในบางรุ่นของความท้าทายธงเอาท์พุท ASCII สีได้รับอนุญาต แต่คุณยังไม่ได้รวมascii-ศิลปะ เพียงเพื่อยืนยันไม่อนุญาตให้ใช้เอาต์พุต ASCII?
Stephen

1
ขวาเฉพาะรูปแบบภาพที่รู้จักอย่างกว้างขวางเท่านั้นที่ได้รับอนุญาตเช่นเดียวกับเอาต์พุตบนหน้าจอ
ข้อบกพร่อง

20
echo 🇨🇭- ฉันถือว่าสิ่งนี้ไม่ได้รับอนุญาต
Digital Trauma

ฉันเห็น CH สีน้ำเงินฉันไม่เห็นว่าทำไมจึงควรอนุญาต
ข้อบกพร่อง

1
@Tutleman ฉันคิดว่ามันทำ
Luis Mendo

คำตอบ:


40

SVG (HTML5), 94 83 82 64 ไบต์

<svg><path d=M0,0V32H32V0M6,13h7V6h6v7h7v6H19v6H13V19H6 fill=red

บันทึก 2 ไบต์ขอบคุณ @ThePirateBay บันทึก 1 ไบต์ขอบคุณ @ATaco บันทึกแล้ว 18 ไบต์ด้วย @CraigAyre ชี้ให้เห็นว่ารูปภาพ 32 × 32 นั้นเป็นที่ยอมรับ ตามที่ระบุโดย @Shaggy สิ่งนี้จะถือว่าพื้นหลังเริ่มต้นของคุณเป็นสีขาว เพิ่ม 22 ไบต์สำหรับการตั้งค่าสถานะที่ทำงานบนพื้นหลังใด ๆ :

<svg><path d=M0,0V32H32V0 fill=red /><path d=M6,13h7V6h6v7h7v6H19v6H13V19H6 fill=#FFF


ไม่จำเป็นต้องปิดเส้นทาง คุณสามารถบันทึกได้ 4 ไบต์โดยเปิดเส้นทางทิ้งไว้

ดังที่ ThePirateBay กล่าวว่าสิทธิ์>ในแท็กพา ธ ของคุณเป็นตัวเลือก
ATaco

6
SVG มี "ภาษากอล์ฟ" ของตัวเองหรือไม่ Oo
ETHproductions

16
เมื่อใช้ในการเขียนไวยากรณ์ XML รหัสนี้ทำให้ตาของฉันมีเลือดไหล
Nayuki

3
คุณสามารถลบviewBoxเวอร์ชั่นขั้นต่ำออกได้ไหม? <svg><path d=M0,0V32H32V0M6,13h7V6h6v7h7v6H19v6H13V19H6 fill=red
Craig Ayre

31

x86-16 รหัสเครื่องสำหรับ DOS, 43 ไบต์

               ; Draw 32x32 red square
B8 0C 28          mov  ax, 0x0C28   ; AL == color red, AH == set pixel function
B9 00 1F          mov  cx, 31
               DrawBox:
BA 00 1F          mov  dx, 31
               DrawRow:
CD 10             int  0x10
4A                dec  dx
75 FB             jnz  DrawRow
E2 F6             loop DrawBox

               ; Draw the interior white cross
B0 0F             mov  al, 0x0F    ; high byte already set
B1 06             mov  cl, 6       ; high byte already 0
               DrawCross:
B2 0D             mov  dl, 13      ; high byte already 0
               DrawCrossInner:
CD 10             int  0x10        ; plot CX, DX
87 D1             xchg dx, cx
CD 10             int  0x10        ; plot DX, CX
87 D1             xchg dx, cx
42                inc  dx
80 FA 12          cmp  dl, 13+6
75 F2             jne  DrawCrossInner
41                inc  cx
80 F9 19          cmp  cl, 6+(32-6-6)
75 EA             jne  DrawCross

C3                ret

รหัสดังกล่าวได้รับการออกแบบมาเพื่อประกอบเป็นไฟล์ COM จากนั้นเรียกใช้ภายใต้ DOS มันเรียกใช้บริการวิดีโอ ROM BIOS เพื่อพล็อตแต่ละพิกเซลของธงสร้างการแสดงธงชาติสวิส 32 × 32 ที่มุมบนซ้ายของหน้าจอ

รหัสสันนิษฐานว่าโหมดวิดีโอตั้งค่าไว้ที่โหมด 0x13 แล้วซึ่งหมายความว่าต้องใช้จอแสดงผล VGA สามารถใช้โหมดวิดีโออื่น ๆ ได้ แต่การกำหนด VGA ให้คุณมีสองสิ่ง: (1) สแควร์พิกเซลและ (2) พาเล็ตเริ่มต้นที่มีสีแดงจริง 100% ( 0xFF0000) ซึ่งหมายความว่าคุณไม่ต้องเสียเวลาเปลี่ยนไบต์จานสี สี) ก่อนที่จะรันโปรแกรมนี้คุณจะต้องสลับการแสดงผลเป็นโหมด 0x13 รหัสต่อไปนี้เป็นสิ่งที่คุณต้องทำ:

mov  ax, 0x13
int  0x10

รหัสไม่มีข้อสันนิษฐานอื่น ๆ และควรใช้กับฮาร์ดแวร์ที่รองรับ x86 ใด ๆ ภายใต้ระบบปฏิบัติการที่เข้ากันได้กับระบบปฏิบัติการ DOS

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

อาจเป็นไปได้ที่จะลดขนาดลงไปอีกโดยเขียนข้อมูลพิกเซลลงในบัฟเฟอร์วิดีโอโดยตรงโดยเฉพาะอย่างยิ่งเมื่อฉันอยู่ในโหมด 0x13 ฉันยังไม่ได้ลอง INT 0x10เป็นการเรียนการสอนสั้น ๆ อยู่แล้วแต่ถ้าฉันสามารถใช้คำแนะนำสตริงไบต์เดียวเพื่อเขียนข้อมูลพิกเซลโดยตรงไปยังหน่วยความจำแล้วนั่นอาจส่งผลในการประหยัดรหัสที่สำคัญ


ที่น่าประทับใจ! ฉันไม่ได้เห็นแอสมากมาย แต่เมื่อฉันทำมันน่าสนใจมากเสมอ
เอเดรียนจาง

ดีใจที่ได้เห็นแฟน ๆ ของ ASM
Billal Begueradj

คุณสามารถทำได้ด้วยไทล์กว้าง 32 พิกเซลสามรายการวนซ้ำทุกแถว มันใช้ข้อมูลมากขึ้น แต่บันทึกในจำนวนของการดำเนินการ อีกทางหนึ่งคุณสามารถใช้ไทล์กว้าง 16 พิกเซลสามอันสำหรับด้านซ้ายและดำเนินการทางสัณฐานวิทยาโดยกลับด้านซ้าย
ATL_DEV

21

MATL , 29 ไบต์

2Y66t&Y"OJQht3$)6thYaQK7hBoYG

ลองที่MATL Online!

คำอธิบาย

2Y6     % Push predefined literal: 3×3 matrix [0 1 0; 1 1 1; 0 1 0]
6t&Y"   % Repeat each entry 6 times in the two dimensions. Gives an 18×18 matrix
OJQh    % Push [0 1j+1]. Used as an index, this means [0 1 ... end+1]. Indexing
        % is 1-based and modular, so 0 is the same as end
t3$)    % Apply that index in the two dimensions. This extends by 1 entry in 
        % each dimension, so that the arms have length 7. Gives a 20×20 matrix
6thYa   % Pad with 6 zeros in the two dimensions. Gives a 32×32 matrix
Q       % Add 1. The matrix now contains values 1 (will become red) and 2 (white)
K7hBo   % Convert array [4 7] to binary. Gives [1 0 0; 1 1 1], to be used as
        % colormap. First row is red, second is white
YG      % Show image using colormap

17

Java 8, 246 + 42 = 288 ไบต์

ขอบคุณ @Aaron สำหรับ -64 ไบต์
-4 ไบต์โดยการส่งออกไปยังไฟล์aโดยไม่มีนามสกุล

import java.awt.*;import java.awt.image.*;
x->{BufferedImage i=new BufferedImage(32,32,1);Graphics g=i.getGraphics();g.setColor(Color.RED);g.fillRect(0,0,32,32);g.setColor(Color.WHITE);g.fillRect(13,6,6,20);g.fillRect(6,13,20,6);javax.imageio.ImageIO.write(i,"png",new java.io.File("a"));}

นิพจน์ lamba ที่สามารถกำหนดให้กับวิธีการอินเทอร์เฟซที่ใช้งานได้ซึ่งส่งข้อยกเว้น สร้างไฟล์รูปภาพชื่อa(ไฟล์รูปภาพ) ในไดเรกทอรีที่ใช้ไฟล์นี้

รหัสล้อมรอบที่ใช้ในการเรียกใช้: ลองออนไลน์!

Ungolfed

x->{
    BufferedImage i=new BufferedImage(32,32,1);
    Graphics g=i.getGraphics();
    g.setColor(Color.RED);
    g.fillRect(0,0,32,32);
    g.setColor(Color.WHITE);
    g.fillRect(13,6,6,20);
    g.fillRect(6,13,20,6);
    javax.imageio.ImageIO.write(i,"png",new java.io.File("a"));
}

ผลลัพธ์

กริดจัดทำโดยการแสดงตัวอย่างภาพ IntelliJ IDEA (เห็นได้ชัด)


คุณสามารถโกนหนวดได้สองสามไบต์โดยเปลี่ยนfillPolygonสายเป็นสองfillRectสาย ฉันไม่แน่ใจว่าฉันเคารพขนาด แต่ฉันมาด้วยg.fillRect(7,13,18,6);g.fillRect(13,7,6,18)ซึ่งสั้นกว่า 64 ไบต์
Aaron

@Aaron โทรดีด้วยเหตุผลบางอย่างฉันคิดว่ามันจะนานกว่านี้ ... ขอบคุณ!
Justin Mariner

คุณสามารถตั้งชื่อไฟล์.pngแทนa.pngและบันทึกไบต์
user2428118

@ user2428118 ดีมันจะได้รับอนุญาตให้นำไปเพิ่มเติมและเพียงแค่ตั้งชื่อaโดยไม่มีส่วนขยายหรือไม่ มันยังคงสามารถเปิดได้เพียงแค่ต้องบอกให้เปิดในโปรแกรมดูภาพถ่าย
Justin Mariner

1
@ OlivierGrégoireฉันรู้สึกว่ามันไกลเกินกว่าความคิดในการแก้ปัญหาของฉัน แต่คุณยินดีที่จะโพสต์สิ่งนั้นด้วยตัวคุณเอง
Justin Mariner

16

Excel VBA, 86 85 79 ไบต์

รหัส

ฟังก์ชันหน้าต่าง VBE แบบไม่ระบุชื่อทันทีที่ไม่รับอินพุตและเอาต์พุตแฟล็ก Swiss ลงในช่วง[A1:F32]ของActiveSheetวัตถุ สิ่งนี้ทำงานโดยการทำให้เซลล์เป็นรูปสี่เหลี่ยมจัตุรัสจากนั้นจึงวาดพื้นที่สีแดงและในที่สุดก็วาดในกากบาทสีขาว

Cells.RowHeight=48:[A1:AF32].Interior.Color=255:[G14:Z19,N7:S26].Interior.Color=-1

โปรดทราบว่าการเตรียมการที่เอาขั้นตอนการระบายสี "กากบาท" ของธงชาติสวิสหลังจากวางในพื้นหลังสีแดงจริง ๆ แล้วยาวกว่าการกำหนดค่าข้างต้นเนื่องจากพวกเขาต้องการอย่างน้อย 16 เซลล์ที่อยู่ซึ่งประสานงานกับ 8 ภูมิภาคที่แตกต่างกัน ธง

-1 ไบต์ขอบคุณ @ Greedo's RowHeight=48นานกว่าColumnWidth=2

-6 Bytes ต้องขอบคุณ @ Greedo's for -1แทนrgbWhite

เอาท์พุต

ป้อนคำอธิบายรูปภาพที่นี่


1
ที่ยอดเยี่ยม; แต่คุณยังสามารถบันทึกได้ 6 ไบต์ด้วยInterior.Color=-1แทนที่จะเป็นInterior.Color=rgbWhite
Greedo

@ เกรโด้คุณรู้หรือไม่ - นั่นวิเศษมาก ฉันใช้rgbWhiteเกินค่าทศนิยม16777215เพื่อความชัดเจนฉันไม่รู้ว่า-1จะมีผลเหมือนกัน ขอบคุณ!
เทย์เลอร์สกอตต์

1
ตามลิงค์นี้: ( reddit.com/r/compsci/comments/62x9g9/... ) PowerPoint เป็นทัวริงสมบูรณ์ดังนั้นฉันสงสัยว่านี้อาจได้รับการย้ายไปยัง PowerPoint
Suhrid Mulay

13

C ++, SFML, 406 399 394 ไบต์

-2 ไบต์ขอบคุณ pdpi
-10 ไบต์ขอบคุณZacharý

SFML (ห้องสมุดมัลติมีเดียที่ง่ายและรวดเร็ว)เป็นห้องสมุด C ++ ที่เขียนขึ้นเพื่อลดความยุ่งยากในการพัฒนาวิดีโอเกมและโปรแกรมมัลติมีเดีย

รหัส :

#include<SFML\Graphics.hpp>
using namespace sf;int main(){for(RenderWindow t(VideoMode(128,128),"");t.isOpen();){t.clear();RectangleShape r({128.f,128.f});r.setFillColor(Color::Red);t.draw(r);r.setFillColor(Color::White);r.setPosition({24.f,52.f});r.setSize({80.f,24.f});t.draw(r);r.rotate(90);r.setPosition({76.f,24.f});t.draw(r);t.display();for(Event e;t.pollEvent(e);)if(!e.type)t.close();}}

การตั้งค่าสถานะถูกแสดงในหน้าต่าง 128x128 ระบบปฏิบัติการของคุณจะต้องสามารถแสดงหน้าต่าง 128x128 ได้ (Win8.1 ของฉันไม่สามารถแสดงด้วยความกว้างที่เล็กลง)

คำเตือน : คุณอาจต้องการเพิ่มรหัส 2 บรรทัดเหล่านี้: t.setFramerateLimit(60);t.setVerticalSyncEnabled(true);ดังนั้น CPU ของคุณจะไม่ร้อนเมื่อคุณเรียกใช้รหัส ฉันไม่ได้ใส่รหัสเดิมไว้เพื่อเหตุผลในการตีกอล์ฟ


คุณสามารถหดตัวลงเล็กน้อยได้โดยแทนที่ whiles ของคุณด้วย fors และเริ่มต้น t และ e ในนั้น: int main(){for(sf::RenderWindow t(sf::VideoMode(128,128),"");t.isOpen();){t.clear();sf::RectangleShape r({128.f,128.f});r.setFillColor(sf::Color::Red);t.draw(r);r.setFillColor(sf::Color::White);r.setPosition({24.f,52.f});r.setSize({80.f,24.f});t.draw(r);r.rotate(90);r.setPosition({76.f,24.f });t.draw(r);t.display();for(sf::Event e;t.pollEvent(e);)if(e.type == 0)t.close();}}
pdpi

นอกจากนี้คุณยังสามารถบันทึกสองไบต์ด้วยการลบช่องว่าง: e.type == 0=> e.type==0หรือแม้แต่!e.type(อย่าจดจำลำดับความสำคัญ) 24.f }=>24.f}
Zacharý

โอ้และเป็นusing namespace sf;ไปได้?
Zacharý

12

Braindraw, 227 ไบต์ (ไม่ใช่การแข่งขัน) (อัปเดตเพื่อให้ใช้งานได้จริง)

รุ่นที่ไม่ถูกปรับแต่ง (241 ไบต์)

r<<^++++++++[-^++++v]^[->>[>]>++++++++[-<++++>]<[<]<]>>[[-vv[v]-[^]^]>]vv<[<]>>>>>>>>>>>>>>vvvvvvg<<^^++++++[->>[>]>+++++[-<++++>]<[<]<]>>[[-vv[v]b-g-[^]^]>]<vv[<]><<<<<<<vvvvvvv<<^^++++++[-vv[v]++++++++++++++[^]^]vv[[->>[>]b[+]-g[+]-[<]<]v]

รุ่น golfed เบา (227 ไบต์)

r<<^++++++++[-^++++v]^[->>[>]>++++++++[-<++++>]<[<]<]>>[[-vv[v]-[^]^]>]vv<[<]g>>>>>>>>>>>>vvvv++++++[->>[>]>+++++[-<++++>]<[<]<]>>[[-vv[v]b-g-[^]^]>]<vv[<]<<<<<<vvvvv<<++++++[-vv[v]++++++++++++++[^]^]vv[[->>[>]b[+]-g[+]-[<]<]v]

Braindraw เป็นภาษาการเขียนโปรแกรมของการออกแบบของฉันเอง ตั้งแต่ 15:08 น. วันนี้ฉันมีล่ามทำงานและตรวจสอบว่าโปรแกรมทำงานอย่างถูกต้อง อย่างไรก็ตามล่ามไม่ได้มีอยู่ก่อนการแข่งขันครั้งนี้เริ่มขึ้นดังนั้นฉันจึงไม่ได้แข่งขัน

Braindraw นั้นเหมือนกับ Brainf *** ยกเว้นว่ามันทำงานกับสองอาร์เรย์สามมิติแทนที่จะเป็นหนึ่งมิติหนึ่งอาร์เรย์ อาร์เรย์เหล่านี้เรียกว่า r, g และ b และทำหน้าที่เป็นช่องสีแดงสีเขียวและสีน้ำเงิน ตัวดำเนินการ r ย้ายตัวชี้ไปยังช่องสีแดง ฯลฯ ขึ้นเป็น ^ ลงคือ v


9
หวังเป็นอย่างยิ่งว่าจะได้พบล่ามสำหรับสิ่งนี้อาจเป็นเรื่องสนุกที่จะลอง
Darren H

1
เป็นความคิดที่สนุกแน่นอนฉันกำลังรอคอยล่ามอยู่ด้วย! (โดยทางเทคนิคเราอนุญาตเฉพาะภาษาที่นำไปใช้และเราถือว่าล่ามเป็นคำจำกัดความของภาษาเหล่านั้น)
ข้อบกพร่อง

ถูกต้องหรือไม่ว่าคุณไม่ได้แสดงผลอะไรออกมาอย่างชัดเจน แต่เพียงเอาท์พุท "canvas" ทั้งหมดในที่สุด? คุณคิดว่าผืนผ้าใบไม่มีที่สิ้นสุดหรือไม่?
ข้อบกพร่อง

ในอีกครั้ง: ไม่มีล่ามฉันเดาว่านั่นหมายความว่ารายการของฉันไม่ได้แข่งขัน โอ้ดี แต่ใช่โปรแกรมนี้ไม่มีเอาต์พุตต่อ se พื้นที่การคำนวณจะปรากฏขึ้นในขณะที่และหลังจากที่โปรแกรมทำงาน ผืนผ้าใบนั้นไม่มีที่สิ้นสุดในทางทฤษฎี แต่ในการดำเนินการฉันอาจจะทำให้มันมีความกว้างคงที่ที่มีขนาดใหญ่เช่นบางที 512x512
เบนซิน

ภาษานี้ดูเหมือนว่าจะสามารถท้าทายภาพลักษณ์ที่ซับซ้อนของ kolmogorov ได้ และคุณกำลังทำงานกับล่ามอยู่หรือไม่?
Zacharý

10

TI-BASIC (TI-84 Plus C (S) E เท่านั้น), 58 ไบต์

:For(A,0,31
:For(B,0,31
:Pxl-On(A,B,RED
:End
:End
:For(A,6,25
:For(B,13,18
:Pxl-Off(A,B
:Pxl-Off(B,A
:End
:End

นี่เป็นคำตอบที่ยอดเยี่ยม ฉันเพิ่งสร้างบัญชีเพื่อลงทะเบียน TI-BASIC ยอดเยี่ยมมาก
Zags

1
โอ้สิ่งที่พารามิเตอร์ที่สามที่ยอดเยี่ยม Pxl-On ตอนนี้ ... มันทำให้ฉันร้องไห้เพียงแค่มีเอกรงค์ :(
เรย์

10

Mathematica, 83 ไบต์

R=Rectangle;Graphics[{Red,{0,0}~R~{32,32},White,{6,13}~R~{26,19},{13,6}~R~{19,26}}]

อันถัดไปมาจาก @ ASCII เท่านั้น (ฉันคิดว่ามันเป็นเรื่องตลก แต่ใช้งานได้!)

Mathematica ขนาด 23 ไบต์

"CH"~CountryData~"Flag"

-10 ไบต์จาก @Jonathan Frech


4
Mathematica ไม่มีการติดตั้งธงชาติสวิส
CJ Dennis

4
CountryData["Switzerland","Flag"]แต่อาจไม่ได้สัดส่วนที่ถูกต้อง
เฉพาะ ASCII เท่านั้น

6
Mathematica มีทุกสิ่งในตัว แต่นี่ใช่มั้ย
sergiol

10
"Switzerland"~CountryData~"Flag"ช่วยให้คุณประหยัดมากขึ้น
ซิมมอนส์

1
"CH"~CountryData~"Flag"ใช้เวลาเพียง 23 ไบต์
Jonathan Frech

9

HTML + CSS, 15 + 117 ไบต์ = 132 ไบต์

การใช้กระดาษห่อ flexbox inset box-shadowกับ

b{display:flex;box-shadow:red 0 0 0 6px inset;padding:2px;width:28px;flex-wrap:wrap}a{border:solid red 4px;margin:3px
<b><a><a><a><a>


HTML + CSS, 18 + 139 137 122 bytes = 140 bytes

คำตอบก่อนหน้าใช้borderและเสื้อคลุม flexbox marginกลางกับเชิงลบ

i,b,a{display:inline-flex}i{border:solid red 6px}b{margin:-4px;width:28px;flex-wrap:wrap}a{border:solid red 4px;margin:3px
<i><b><a><a><a><a>


7

GraphicsMagick (?), 96 ไบต์

gm convert -size 32x32 xc:red -fill #fff -draw "rectangle 13,6 18,25 rectangle 6,13 25,18" 1.bmp

ไม่แน่ใจว่าจะเล่นกอล์ฟกับ GM ได้อย่างไร (ควรพิจารณาว่าเป็นภาษาหรือไม่) ยังไม่แน่ใจวิธีนับไบต์ที่นี่ ...

มีการติดตั้งจีเอ็มพิมพ์รหัสที่กำหนดในหน้าต่าง cmd 1.bmpคุณจะได้รับภาพที่มีชื่อ คุณอาจต้องการเปลี่ยนอัญประกาศเป็นอัญประกาศเดี่ยวถ้าคุณใช้ bash (ควรใช้งานได้ แต่ฉันไม่ได้ทดสอบสิ่งนี้)

ขอบคุณ Digital Trauma ใช้เพียงหนึ่ง-drawบันทึก 8 ไบต์


ไม่แน่ใจว่ามันเหมือนกันใน GraphicsMagick หรือไม่ แต่ด้วย ImageMagick คุณสามารถใส่ทั้งสองรูปสี่เหลี่ยมใน-drawสตริงเดียวกันได้:convert -size 32x32 xc:red -fill white -draw "rectangle 13,6 18,25 rectangle 6,13 25,18" i.png
Digital Trauma

@ DigitalTrauma มันเหมือนกัน แก้ไข
tsh

7

JavaScript + HTML, 99 + 13 = 112 ไบต์

บันทึก 2 ไบต์ขอบคุณuser2428118
บันทึก 2 ไบต์ขอบคุณMatheus Avellar

JSFiddle

with(c.getContext`2d`)fillStyle='red',fillRect(0,0,32,32),clearRect(6,13,20,6),clearRect(13,6,6,20)
<canvas id=c>


เพียว JavaScript, 194 129 ไบต์

JSFiddle

with(document.write`<canvas id=c>`,c.getContext`2d`)fillStyle='red',fillRect(0,0,32,32),clearRect(6,13,20,6),clearRect(13,6,6,20)


2
ฉันเชื่อว่าคุณต้องทำตั้งแต่เริ่มต้น
Stephen

@StepHen ตกลงฉันเพิ่มมันเข้าไปด้วย

1
... คุณต้องรวมไว้ใน bytecount
เท่านั้น

@ ASCII เท่านั้น ที่รวมอยู่

1
สำหรับการอ้างอิงในอนาคตเมื่อใดก็ตามที่คุณต้องการ<canvas>คุณสามารถรวม HTML ในคำตอบของคุณได้โดยตรง ดูcodegolf.stackexchange.com/a/136972/47097
darrylyeo

6

JavaScript (ES6) ใน HTML4 (?) 178 176 ไบต์

document.write('<table cellspacing=0>'+[...Array(32)].map((_,y,p)=>p.map((_,x)=>`<td bgcolor=${x>5&&x<26&&y>12&&y<19||y>5&&y<26&&x>12&&x<19?'#fff':'red'}>`).join``).join`<tr>`)

ใช่ เราไม่จำเป็นต้อง<canvas>มิได้<svg>หรือแม้กระทั่ง<img>!

ขอบคุณ Justin Mariner บันทึก 2 ไบต์


5

Löve2D , 139 138 Bytes

l=love g=l.graphics c=g.setColor r=g.rectangle f="fill"w=255 l.draw=loadstring"c(w,0,0)r(f,0,0,32,32)c(w,w,w)r(f,13,6,6,20)r(f,6,13,20,6)"

บันทึกหนึ่งไบต์ด้วยThePirateBay

Ungolfed

function love.draw()
    love.graphics.setColor(255,0,0)
    love.graphics.rectangle("fill",0,0,32,32)
    love.graphics.setColor(255,255,255)
    love.graphics.rectangle("fill",13,6,6,20)
    love.graphics.rectangle("fill",6,13,20,6)
end

5

Python 3 , 190 ไบต์

บันทึกผลลัพธ์เป็นimage.xpmและเปิดด้วยโปรแกรมแก้ไขข้อความที่คุณชื่นชอบ

r=range;print('! XPM2\n32 32 2 1\nr c #FF0000\nw c #FFFFFF\n');d=[bytearray(b'r'*32)for _ in r(32)]
for i in r(20):
 for j in r(6):d[i+6][j+13]=d[j+13][i+6]=119
print(b'\n'.join(d).decode())

ลองออนไลน์!

เอาท์พุท:

! XPM2
32 32 2 1
r c #FF0000
w c #FFFFFF

rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
rrrrrrrrrrrrrwwwwwwrrrrrrrrrrrrr
rrrrrrrrrrrrrwwwwwwrrrrrrrrrrrrr
rrrrrrrrrrrrrwwwwwwrrrrrrrrrrrrr
rrrrrrrrrrrrrwwwwwwrrrrrrrrrrrrr
rrrrrrrrrrrrrwwwwwwrrrrrrrrrrrrr
rrrrrrrrrrrrrwwwwwwrrrrrrrrrrrrr
rrrrrrrrrrrrrwwwwwwrrrrrrrrrrrrr
rrrrrrwwwwwwwwwwwwwwwwwwwwrrrrrr
rrrrrrwwwwwwwwwwwwwwwwwwwwrrrrrr
rrrrrrwwwwwwwwwwwwwwwwwwwwrrrrrr
rrrrrrwwwwwwwwwwwwwwwwwwwwrrrrrr
rrrrrrwwwwwwwwwwwwwwwwwwwwrrrrrr
rrrrrrwwwwwwwwwwwwwwwwwwwwrrrrrr
rrrrrrrrrrrrrwwwwwwrrrrrrrrrrrrr
rrrrrrrrrrrrrwwwwwwrrrrrrrrrrrrr
rrrrrrrrrrrrrwwwwwwrrrrrrrrrrrrr
rrrrrrrrrrrrrwwwwwwrrrrrrrrrrrrr
rrrrrrrrrrrrrwwwwwwrrrrrrrrrrrrr
rrrrrrrrrrrrrwwwwwwrrrrrrrrrrrrr
rrrrrrrrrrrrrwwwwwwrrrrrrrrrrrrr
rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr

ฉันต้องลบบรรทัดที่ 5 ว่างเพื่อเปิดด้วย gimp บน linux
ทิม

5

Perl 5 , 184 ไบต์

176 รหัสไบต์ + 8 -Mutf8 -pสำหรับ

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

ป้อนคำอธิบายรูปภาพที่นี่

สัดส่วนควรมีการปรับขนาดตามพื้นที่ของอักขระหนึ่งตัวที่มี 'พิกเซล' แนวตั้งสองตัว

%a=qw(R 101 W 107 A 101;97 B 91;107);$_=R.($a="32 
"x3).($b="13 W6 R13 
"x3)."6 A7▄W6 A7▄"."R6 
6 W20 "x2 ."R6 
6 B7▄W6 B7▄R6 
$b$a";s/\d+(.)/$1x$&/ge;s/\pL/[$a{$&}m/g

ลองออนไลน์!

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


5

GFA พื้นฐาน (Atari ST), 62 ไบต์

รายการที่แก้ไขด้วยตนเองในรูปแบบ. LST ทุกบรรทัดลงท้ายด้วยCRรวมถึงบรรทัดสุดท้าย

DEFFILL2
PBOX0,0,31,31
DEFFILL0
PBOX13,6,18,25
PBOX6,13,25,18

ขยายและแสดงความคิดเห็น:

DEFFILL 2         ! set fill color: default system color #2 is red (&H700)
PBOX 0,0,31,31    ! draw the red square
DEFFILL 0         ! set fill color: default system color #0 is white (&H777)
PBOX 13,6,18,25   ! draw a vertical white rectangle
PBOX 6,13,25,18   ! draw a horizontal white rectangle

เอาท์พุต

ผลลัพธ์คือ 32x32

เอาต์พุต GFA

หมายเหตุ: นี่คือการใช้สี 'สีขาว' แม้ว่ามันจะดูเป็นสีเทาบนตัวจำลอง (และของจริงเช่นกันเว้นแต่คุณจะเปลี่ยนความสว่างค่อนข้างสูง)


5

R, 171 140 ไบต์

x = rep(c(6,13,19,26,19,13),e=2)
l=c(0,32)
par(bg="red",mar=0*1:4)
plot(0,0,'n',l,l,xaxs="i",yaxs="i")
polygon(x,c(x,x)[4:15],c="white",b=0)

(ค่อนข้าง) ungolfed:

x <- rep(c(6,13,19,26,19,13),each=2)
y <- c(x,x)[4:15] # index by 3 positions
par(bg="red",mar=c(0,0,0,0)) # prepare the plot space
plot(0,type='n', xaxs="i",yaxs="i",xlim=c(0,32),ylim=c(0,32))
polygon(x,y,col="white",border=0)

ขอบคุณ @gregor สำหรับการบันทึกบางไบต์

เรียกใช้!


1
ยินดีต้อนรับสู่เว็บไซต์! :)
DJMcMayhem

ดี! คุณสามารถบันทึกค่อนข้างไม่กี่ไบต์ที่มีการจับคู่บางส่วนของชื่ออาร์กิวเมนต์: e=2แทนeach=2, tแทนtype, cสำหรับcol, สำหรับb borderและสั้นกว่า0*1:4 c(0,0,0,0)
Gregor

ที่จริงแล้วคุณสามารถหลีกเลี่ยงได้ด้วยการจับคู่ตำแหน่งบนplot: plot(0,0,'n',l,l,xaxs="i",yaxs="i")(การกำหนดm="i"ค่าใช้จ่ายจริง ๆให้คุณหนึ่งไบต์) ด้วยทั้งหมดที่ได้รับลงไปที่ 141 ไบต์
Gregor

ฉันลืมทั้งหมดเกี่ยวกับการจับคู่บางส่วน ขอบคุณ!
Alex Axthelm

คู่อื่น ๆ ไบต์ออกไปlและxlim/ ไม่จำเป็นเพียงylim plot(0:32,0:32,...)ฉันยังดัดแปลงวิธีการของคุณและได้รับมันลงไป 117 นี่ใช้rectpolygonแทน
Gregor

5

ระดับแปดเสียง105 ไบต์ 73 ไบต์

หมายเหตุ: เพิ่มการป้อนบรรทัดเพื่อความคมชัดไม่รวมอยู่ในจำนวนไบต์

x(32,32,3)=0;
x(:,:,1)=1;
x(7:26,14:19,:)=1;
x(14:19,7:26,:)=1;
imshow(x*255)

แก้ไข: ขอบคุณข้อบกพร่องสำหรับการบันทึกค่อนข้างมากไบต์!

นี่คือผลลัพธ์ที่ได้จาก octave-online.net ขอบคุณsanchises

ผล


ฉันไม่แน่ใจเกี่ยวกับ Octave แต่ใน MATLAB ต่อไปนี้ควรใช้งานได้:x(32,32,3)=0; x(:,:,1)=1; x(7:26,14:19,:)=1; x(14:19,7:26,:)=1; imshow(x*255)
ข้อบกพร่อง

BTW: ยินดีต้อนรับสู่ PPCG !!!
ข้อบกพร่อง

Octave-online.net จะแสดงรูปภาพ
Sanchises

5

GIF, 97 ไบต์

GIF87a    ð  ÿ  ÿÿÿ,         @„©Ëí£œ´Ú;ƒÞXmÞ!ŸŠcyŒj¨,àZê<Cô
:8nïtï‹é‚BJ1tì$1ËKSvb=_ÔªõŠe  ;

ราคาถูกและหนัก แต่คุ้มค่า

แก้ไข: ตัวละครบางตัวไม่ได้อยู่ในรหัสข้างต้นนี่คือ pastebin สำหรับ hexdump ของ GIF

แก้ไข: บีบอัดลงไปที่ 97 ไบต์ด้วยเครื่องมือออนไลน์


1
ดูเหมือนว่าอักขระที่ไม่สามารถพิมพ์ได้บางตัวถูกลบออกจากข้อมูลโค้ดของคุณ อาจลองโพสต์ดัมพ์เลขฐานสิบหก

18
คุณออกเสียงภาษาอย่างไร
โอลิเวอร์

1
@Oliver ZHAIF
Neil

1
Gimp สร้างไฟล์ GIF ที่มีลักษณะเหมือนกันใน 95 ไบต์เท่านั้น (น้อยกว่าโซลูชั่นอื่น ๆ ) นี่คือฐานสิบหกของมัน
Armin Rigo

6
GIF เป็นภาษาการเขียนโปรแกรมตั้งแต่เมื่อใด
Adám

4

HTML + JavaScript (ES6), 13 + 112 = 125 ไบต์

C=c.getContext`2d`
C[s='fillStyle']='red'
C[r='fillRect'](0,0,32,32)
C[s]='#fff'
C[r](6,13,20,6)
C[r](13,6,6,20)
<canvas id=c>

HTML + JavaScript (ES6), 13 + 114 = 127 ไบต์

with(c.getContext`2d`)fillStyle='red',fillRect(0,0,32,32),fillStyle='#fff',fillRect(6,13,20,6),fillRect(13,6,6,20)
<canvas id=c>


ฉันขโมยวิธีสี่เหลี่ยมผืนผ้าของคุณและปรับปรุงเป็น 117 ไบต์โดยใช้clearRectฉันหวังว่าคุณจะเข้าใจ

มันฉลาด แต่น่าเสียดายที่ OP บอกว่าไม่อนุญาตให้ใช้พิกเซลโปร่งใส codegolf.stackexchange.com/questions/136927/draw-the-swiss-flag/…
darrylyeo

จริงๆแล้วมันเป็นสีขาว ตามค่าเริ่มต้นหน้าเว็บทั้งหมดจะมีพื้นหลังสีขาวและแฟล็กนั้นจะโปร่งใส แต่เป็นเพียงคำจำกัดความภายในของความโปร่งใส ความหมายภายนอกของความโปร่งใสคือหากพิกเซลในภูมิภาคนั้น (white plus) อาจเปลี่ยนสีในบางเงื่อนไข (หรืออาจถูกตั้งแบบสุ่ม) อย่างไรก็ตามเนื่องจากฉันใช้ทั้ง HTML และ JavaScript เอาต์พุตทั้งหมดคือแฟล็กสีแดงที่มีกากบาทสีขาว คุณไม่สามารถพิจารณาผืนผ้าใบและพื้นหลังแยกกันได้ วิธีแสดง Canvas บนพื้นหลังได้ถูกกำหนดไว้อย่างดีและผลลัพธ์นั้นมีกากบาทสีขาวเสมอตามข้อกำหนด

ฉันหวังว่ามันจะชัดเจนขึ้นในตอนนี้ฉันหมายความว่าคุณอาจไม่เห็นด้วย แต่ถ้าคุณคิดจริงๆฉันมั่นใจว่าคุณจะพบคำตอบที่สอดคล้องกับข้อกำหนดของ OP อย่างเต็มที่

@ThePirateBay ยุติธรรมเพียงพอ
darrylyeo

4

C # 265/266 209 ไบต์

 using System;using c=System.Console;class P{static void Main(){for(int i=0,j;i<32;i++){for(j=0;j<32;j++){if((6<i&&i<26&&j>13&&j<19)||(6<j&&j<26&&i>13&&i<19))c.BackgroundColor=ConsoleColor.White;else c.BackgroundColor=ConsoleColor.Red;c.Write(" ");}c.WriteLine();}}}     

ฉันเขียนอักขระ "space" ลงในคอนโซลขณะเปลี่ยนสีพื้นหลัง แต่ถ้าคุณคิดว่ามันสูงเกินไปและคุณนับตัวอักษรเดียวเป็น 8 x 16 พิกเซลคุณก็แค่เพิ่มค่าเป็นสองเท่าใกล้กับ "j" เช่นนี้ (+ 1 ไบต์และ + c.ReadKey();เพื่อหยุด):

  using System;using c=System.Console;class P{static void Main(){for(int i=0,j;i<32;i++){for(j=0;j<64;j++){if((6<i&&i<26&&j>26&&j<38)||(12<j&&j<52&&i>13&&i<19))c.BackgroundColor=ConsoleColor.White;else c.BackgroundColor=ConsoleColor.Red;c.Write(" ");}c.WriteLine();} c.ReadKey(); }}     

บันทึก 56 ไบต์ด้วยTheLethalCoder

 namespace System{using static Console;class P{static void Main(){for(int i=0,j;i<32;i++,WriteLine())for(j=0;j<32;Write(""))BackgroundColor=(ConsoleColor)((6<i&i<26&j>13&j<19)|(j++<26&i>13&i<19&6<j​)?15:12);}}}

209 ไบต์namespace System{using static Console;class P{static void Main(){for(int i=0,j;i<32;i++,WriteLine())for(j=0;j<32;Write(" "))BackgroundColor=(ConsoleColor)((6<i&i<26&j>13&j<19)|(6<j&j++<26&i>13&i<19)?15:12);}}}
TheLethalCoder

4

Tikz, 145 143 bytes

\documentclass[tikz]{standalone}\begin{document}\tikz{\def~{)rectangle(}\fill[red](,~33,33);\fill[white](7,14~27,20)(14,7~20,27)}\end{document}

นี่คือ "ungolfed"

\documentclass[tikz]{standalone}
\begin{document}
\tikz{
\def~{)rectangle(}
  \fill[red](,~33,33);
  \fill[white](7,14~27,20)(14,7~20,27)
}\end{document}

ที่นี่มันไม่ได้ถูกบดบังอีกต่อไป

\documentclass[tikz]{standalone}
\begin{document}
\tikz{
  \fill[red](1,1)rectangle(33,33);
  \fill[white](7,14)rectangle(27,20)(14,7)rectangle(20,27)
}\end{document}

นี่ทำให้สี่เหลี่ยม 3 รูปเป็นสีแดงขนาดใหญ่และสีขาวที่เล็กกว่าสองอัน

นี่คือสิ่งที่ดูเหมือนว่า มันไม่ได้ดูแตกต่างจากคนอื่น ๆ

ธง


ฉันเล่นกอล์ฟdocumentclass เมื่อไม่กี่สัปดาห์ก่อน และดูเหมือนจะไม่มีข้อกำหนดพื้นหลังหน้าต่างใด ๆ ด้วยที่\documentclass{g}\input tikzควรจะทำงานเพื่อประหยัด 5B คุณสามารถประหยัดได้มากขึ้นด้วยการทำงานใน TeX ธรรมดาแม้กับ TikZ
Chris H

4

R, 109 ไบต์

par(mar=0*1:4,bg=2,xaxs="i",yaxs="i")
frame()
rect(a<-c(6,13)/32,rev(a),b<-c(26,19)/32,rev(b),c="white",b=NA)

ใช้frameเพื่อหลีกเลี่ยงการพล็อตที่ตั้งไว้ล่วงหน้า แต่ขอบเขตการพล็อตเริ่มต้นอยู่ในช่วง [0,1] แทนที่จะเป็น [0,32] ยังใช้ความจริงที่rectเป็นเวกเตอร์ ขนาดเริ่มต้นของหน้าต่างการพล็อตคือ 7in x 7in มันส่งออกดังต่อไปนี้:

ตั้งค่าสถานะสวิสในหน้าต่างการลงจุด

R, 125 ไบต์

png()
par(mar=0*1:4,bg=2,xaxs="i",yaxs="i")
frame()
rect(a<-c(6,13)/32,rev(a),b<-c(26,19)/32,rev(b),c="white",b=NA)
dev.off()

ค่าเริ่มต้นสำหรับpngคือสี่เหลี่ยมจัตุรัส 480x480 พิกเซล เอาต์พุตเป็นไฟล์ png ต่อไปนี้:

ธงชาติสวิส


4

R, 112 ไบต์

par(bg=2,mar=0*1:4)
plot(0:32,0:32,'n',xaxs="i",yaxs="i")
rect(c(6,13),c(13,6),c(26,19),c(19,26),c="white",b=NA)

แม้ว่าเพื่อรับประกันอัตราส่วนภาพเราต้องการ 5 ไบต์เพิ่มขึ้นสำหรับทั้งหมด 117:

par(bg=2,mar=0*1:4)
plot(0:32,0:32,'n',xaxs="i",yaxs="i",as=1)
rect(c(6,13),c(13,6),c(26,19),c(19,26),c="white",b=NA)

ด้วยแรงบันดาลใจมากมายจากคำตอบของ Alex Axthelmและต้องขอบคุณ Rift ที่ช่วยประหยัดอีกไม่กี่ไบต์


3
คุณสามารถประหยัด 4 ไบต์ที่เปลี่ยนแปลงbg="red"ไปbg=2ซึ่งเป็นเหมือนกันในจานเริ่มต้น
ระแหง

4

Postscript, 301 286 187 bytes

/m{moveto}def
/s{setrgbcolor}def
/r{rlineto}def
/c{closepath fill}def
1 0 0 s
0 0 m
0 320 r
320 0 r
0 -320 r
c
1 1 1 s
130 60 m
60 0 r
0 200 r
-60 0 r
c
60 130 m
0 60 r
200 0 r
0 -60 r c

ขอบคุณบรรณาธิการที่ไม่ระบุชื่อผู้แนะนำการลด 99 ไบต์!


เพื่อแจ้งให้คุณทราบ: มีคนส่งการแก้ไขการเล่นกอล์ฟไปยังโพสต์นี้ ตามนโยบายของเรานั้นถูกปฏิเสธ แต่คุณอาจต้องการพิจารณาดำเนินการเปลี่ยนแปลงบางอย่าง
2560

3

สีแดง 79 ไบต์

รหัส:

view[base 32x32 red draw[fill-pen white pen off box 6x13 26x19 box 13x6 19x26]]

ผลลัพธ์:

หน้าต่าง

คำอธิบาย:

view [              ; activate view engine
base 32x32 red      ; draw a 32 by 32 red box as base
 draw [             ; draw on top of the base
  fill-pen white    ; fill color is white
  pen off           ; turn off outline, alternatively could use white
  box 6x13 26x19    ; draw a horizontal rectangle, specified as 2 corners XxY
  box 13x6 19x26    ; draw vertical rectangle
]]

3

บิตแมป 160 ไบต์

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

42 4D A0 00 00 00 00 00 00 00 20 00 00 00 0C 00
00 00 20 00 20 00 01 00 01 00 00 00 FF FF FF FF
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 07 E0 00 00 07 E0 00
00 07 E0 00 00 07 E0 00 00 07 E0 00 00 07 E0 00
00 07 E0 00 03 FF FF C0 03 FF FF C0 03 FF FF C0
03 FF FF C0 03 FF FF C0 03 FF FF C0 00 07 E0 00
00 07 E0 00 00 07 E0 00 00 07 E0 00 00 07 E0 00
00 07 E0 00 00 07 E0 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

ฉันพยายามตัดทอนเลขศูนย์ต่อท้าย แต่ผู้ดูรูปภาพต้องการให้มีพิกเซลเพียงพอสำหรับผ้าใบทั้งหมด

Swiss.bmp


3
"คำแนะนำใด ๆ ที่ฉันสามารถบันทึกไฟล์โดยพลการอย่างถาวร?" - บน GitHub

1
คุณสามารถใช้การเข้ารหัส RLE ได้หรือไม่?
Neil

1
ฮ่าฮ่าคุณได้ยกตัวอย่าง GIF ของฉันไปแล้ว 1 ครั้ง
Adrian จาง

1
ฉันคิดว่านี่ไม่ใช่ภาษาโปรแกรมที่ถูกต้อง IFAICTM, BMP ไม่สามารถตรวจสอบความเป็นเลิศหรือเพิ่มตัวเลขได้
Adám

3
โปรดทราบว่าเราอนุญาตให้ส่งผลงานที่ไม่ใช่ภาษาโปรแกรมตามฉันทามตินี้ดังนั้นการส่งนี้จึงสมบูรณ์แบบมาก (และเป็นมาตรฐานที่ดีสำหรับ IMO)
ข้อผิดพลาด

3

Python 2, 92 91 89 ไบต์

r,w=' \0\0',' '*3
A,B=192*r,(13*r+6*w+13*r)*7
print"P6 "+"32 "*3+A+B+(6*r+20*w+6*r)*6+B+A

เอาต์พุตเป็นไบนารี ppm, การใช้งาน:

python golf_swiss.py > swiss.ppm

การเพิ่มความลึกของสีทำให้ฉันใช้พื้นที่สำหรับค่าสูงสุด


3

Tcl / Tk, 94

ถ้ามันทำงานบนเปลือกโต้ตอบหนึ่งสามารถย่อcanvasไปcanและgridจะgri

gri [can .c -bg red -w 32 -he 32]
lmap R {{8 15 28 21} {15 8 21 28}} {.c cr r $R -f #FFF -w 0}

Tcl / Tk, 98

หากมันรันบนเชลล์แบบโต้ตอบหนึ่งสามารถย่อcanvasไปได้can

grid [can .c -bg red -w 32 -he 32]
.c cr r 8 15 28 21 -f #FFF -w 0
.c cr r 15 8 21 28 -f #FFF -w 0

Tcl / Tk, 101

pack [canvas .c -bg red -w 32 -he 32]
.c cr r 8 15 28 21 -f #FFF -w 0
.c cr r 15 8 21 28 -f #FFF -w 0

ป้อนคำอธิบายรูปภาพที่นี่

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