In ấn N NE E SE S SW W Tây Ninh


47

Điều này có vẻ gần như không đáng kể, nhưng vì sau một số nỗ lực tôi đã không thể đánh bại giải pháp theo nghĩa đen trong J, tôi nghĩ rằng nó có thể tạo ra một thách thức tốt (mặc dù, rõ ràng, đây không phải là một thách thức cụ thể của J).

Tiêu đề nói lên tất cả. Bạn chỉ cần viết một chương trình hoặc hàm (không có đối số) trả về hoặc in:

N NE E SE S SW W NW

Bạn có thể sử dụng dòng mới thay cho không gian.

Hàm không có đối số trả về một chuỗi các chuỗi như

['N', 'NE', 'E', 'SE', 'S', 'SW', 'W', 'NW']

cũng được chấp nhận

Các chữ cái có thể là chữ hoa hoặc chữ thường, nhưng có thể không được trộn lẫn.


9
Có lẽ cho phép chúng là đầu ra theo bất kỳ thứ tự nào sẽ thú vị hơn một chút
Jo King

3
@JoKing Chắc chắn, tôi sẽ xóa nó. Thành thật mà nói, tôi không mong đợi bất kỳ ai gửi câu trả lời sử dụng toàn bộ giá trị theo nghĩa đen - đó không phải là tinh thần của câu hỏi. Như tôi nói, nó xuất hiện bởi vì tôi không thể đánh bại chữ trong J, mặc dù chuỗi có tính đều đặn và cấu trúc của một loại. Toàn bộ vấn đề là khai thác sự đều đặn đó để đánh bại một câu trả lời theo nghĩa đen. Xấu với tôi vì không rõ ràng hơn. Cho phép họ bất kỳ trật tự nào cũng đánh bại điều đó, vì vậy tôi không muốn thực hiện thay đổi đó.
Giô-na

3
@UnrelatedString Ý tưởng hứa hẹn nhất mà tôi có là lưu ý rằng các hướng tương ứng với tôi đã đưa ra cho các quyền lực 0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5. Thật không may, mã J được yêu cầu để sau đó ánh xạ các kết quả đó thành các chữ cái cuối cùng đắt hơn một chữ.
Giô-na

1
À, thông minh! Tôi tự hỏi nếu ánh xạ có thể hoạt động tốt hơn cho các số nguyên Gaussian 1, 1+i, i, -1+i, -1, -1-i, -i, 1-iđể bạn có một phần thực hoặc ảo trên mỗi hướng chính thay vì hai. Có lẽ khó tạo ra những thứ đó hơn, trừ khi có cách nào đó bạn có thể làm tròn những sức mạnh đó của tôi từ 0? Tôi không biết sẽ dễ hay khó như thế nào trong J, nhưng đó là một ý tưởng.
Chuỗi không liên quan

3
Cảm giác như các mục cũng sẽ hiển thị phiên bản "echo chuỗi này" ngây thơ trong ngôn ngữ của họ để so sánh, và việc đánh giá được thực hiện trên% rút ngắn?
Dewi Morgan

Câu trả lời:


18

Canvas , 12 byte

>X½+T)AuS{⁹‟

Hãy thử nó ở đây!

Chuỗi, chỉ đơn giản là nén.


2
Bạn có thể giải thích làm thế nào điều này hoạt động chi tiết hơn một chút?
Dillanm

2
@Dillanm không có gì nhiều để nói - Canvas có một máy nén tích hợp (nên có thể truy cập bằng ctrl + o → nén chuỗi), ở đây, chỉ cần lưu trữ các ký tự cần thiết ( "NESW ") và sau đó lưu trữ trong từng cơ sở 5 nhân vật.
dzaima

56

bash (24 byte)

sử dụng mở rộng nẹp

echo N {N,,S}E S {S,,N}W

có cùng độ dài với mã hóa cứng

echo N NE E SE S SW W NW

tuy nhiên nó trở nên thú vị hơn khi xuất ra nhiều điểm hơn của la bàn

echo N NNE NE ENE E ESE SE SSE S SSW SW WSW W WNW NW NNW

mở rộng cú đúp

echo N {{N,,E}N,,{E,,S}S}E S {{S,,W}S,,{W,,N}N}W

mặt khác, nếu thứ tự có thể được thay đổi, (17 byte), mẹo là không có dấu ngoặc kép, tham số chuỗi empy sẽ biến mất

echo {N,,S}{W,,E}

1
Điều đó thật thú vị, tôi không biết rằng bạn có thể có vị trí trống là biểu hiện cú đúp!
flawr

1
@flawr Hữu ích khi chroot:mount -t proc{,,}
gronostaj

7
Hoặccp file{,.bak}
Oliphistic

43

Lưỡi liềm Mornington , 4395 3823 byte

Take Northern Line to Bank
Take District Line to Parsons Green
Take District Line to Paddington
Take Bakerloo Line to North Wembley
Take Bakerloo Line to Charing Cross
Take Bakerloo Line to Charing Cross
Take Bakerloo Line to Charing Cross
Take Bakerloo Line to Charing Cross
Take Northern Line to Bank
Take Circle Line to Hammersmith
Take Circle Line to Paddington
Take Circle Line to Hammersmith
Take Circle Line to Barbican
Take Circle Line to Bank
Take Circle Line to Aldgate
Take Circle Line to Embankment
Take Bakerloo Line to Charing Cross
Take Bakerloo Line to Charing Cross
Take Bakerloo Line to Charing Cross
Take Bakerloo Line to Charing Cross
Take Northern Line to Bank
Take Circle Line to Hammersmith
Take Circle Line to Bayswater
Take Circle Line to Hammersmith
Take Circle Line to Baker Street
Take Circle Line to Bank
Take Circle Line to Embankment
Take Northern Line to Stockwell
Take Northern Line to Charing Cross
Take Northern Line to Charing Cross
Take Northern Line to Charing Cross
Take Northern Line to Charing Cross
Take Northern Line to Bank
Take Circle Line to Hammersmith
Take Circle Line to Farringdon
Take Circle Line to Hammersmith
Take Circle Line to Blackfriars
Take Circle Line to Bank
Take Circle Line to Moorgate
Take Northern Line to Waterloo
Take Northern Line to Charing Cross
Take Northern Line to Charing Cross
Take Northern Line to Charing Cross
Take Northern Line to Charing Cross
Take Northern Line to Bank
Take Circle Line to Hammersmith
Take Circle Line to Westminster
Take Circle Line to Hammersmith
Take Circle Line to Tower Hill
Take Circle Line to Bank
Take Circle Line to Edgware Road
Take Circle Line to Liverpool Street
Take Central Line to Mile End
Take District Line to Victoria
Take Victoria Line to Seven Sisters
Take Victoria Line to Victoria
Take Circle Line to Victoria
Take District Line to Mile End
Take District Line to Bank
Take Circle Line to Bank
Take Northern Line to Charing Cross
Take Northern Line to Charing Cross
Take Northern Line to Charing Cross
Take Northern Line to Charing Cross
Take Northern Line to Bank
Take Circle Line to Hammersmith
Take Circle Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Barbican
Take Circle Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Bayswater
Take Circle Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Hammersmith
Take Circle Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Baker Street
Take Circle Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Hammersmith
Take Circle Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Farringdon
Take Circle Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Embankment
Take Circle Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Hammersmith
Take Circle Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Blackfriars
Take Circle Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Hammersmith
Take Circle Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Moorgate
Take Circle Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Westminster
Take Circle Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Hammersmith
Take Circle Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Tower Hill
Take Circle Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Hammersmith
Take Circle Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Aldgate
Take Circle Line to Paddington
Take Circle Line to Paddington
Take Circle Line to Edgware Road
Take Circle Line to Paddington
Take Circle Line to Bank
Take Circle Line to Bank
Take Northern Line to Mornington Crescent

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

Vì có một chút mong đợi bạn đọc tất cả những điều đó, hãy để tôi cung cấp một cái nhìn tổng quan nhanh về phương pháp của tôi. Ý tưởng chính là để lưu trữ 3 bản sao của các nhân vật N, E, S, Wtại các trạm khác nhau trên dòng Circle, thông qua Ngân hàng - Hammersmith. Những nhân vật này được xây dựng từ khi bắt đầu một tên trạm tại Charing Cross. Sau đó, xây dựng   từ giữa tên trạm được chọn tốt bằng Mile End và Charing Cross, và lưu trữ nó tại Ngân hàng để có thể thu thập tại Hammersmith trong phần ghép. Cuối cùng, ghép từng nhân vật một tại Paddington, sao chép lại chúng qua Bank - Hammersmith nếu chúng cần được sử dụng lại sau này.


Tôi nghĩ rằng giải pháp hiện tại khá gần với tối ưu với chiến lược này, ít nhất là về số lượng trạm đã truy cập: chỉ 2 lần tôi sử dụng một trạm chỉ để quá cảnh:

  1. để đến Seven Sisters (qua ga Victoria)
  2. và để quay lại Mornington Crescent (thông qua Ngân hàng).

Tất cả các chuyến thăm trạm khác là, nếu tôi không quên một lần, hoặc là lưu trữ / truy xuất thứ gì đó hữu ích hoặc (một phần) bằng cách sử dụng khả năng của trạm.

Đối với độ dài dòng, tôi đã cố gắng chọn các tên ngắn nhất trên Circle Line, nhưng có thể có một cải tiến nhỏ ở đó. Có thể việc lưu trữ một cái gì đó trên Quận có thể loại bỏ một vài byte.


Hai ý tưởng để chơi golf này thêm một số: 1. lấy 'NE', 'SW', 'NW', 'SE' từ một trạm duy nhất (Sử dụng ví dụ Neasden, SwCottage Cottage, Acton To wnvà Mansion Hou se) 2. Cố gắng khai thác thực tế là Paddington giúp dễ dàng ghép nối `W` hơn là W . Điều này không đòi hỏi thêm chi phí để 'làm mới' Paddington, vì vậy nó có thể không thu được gì.
Thằn lằn rời rạc

4
Điều này có sử dụng quy tắc vòng lặp Dollis Hill? Nếu vậy, tôi nghĩ rằng nó có thể được cải thiện bằng cách sử dụng một parabola trên đường Argyle và thậm chí có thể là một phiên bản sửa đổi một chút của giao thức Webb-Ellis.
Richard Ward


24

Brainfuck , 142 139 131 119 byte

++++++++++[>+++>+++++++>++++++++>+++++++++<<<<-]>>>--.<<++.>>.<-.<.>.<.>>+++++.<.<.>>.<<.>>.>---.<<<.>>>.<<<.>>-----.>.

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

Đơn giản chỉ cần lặp 10 lần để lấp đầy các ô với 30, 70, 80 và 90 sau đó bước lùi và tiến và điều chỉnh các giá trị ô để in ra các ký tự được yêu cầu. Không khác nhiều so với tiêu chuẩn "Xin chào thế giới!".


7
Tôi chưa bao giờ hiểu làm thế nào bất cứ ai có thể "đánh gôn" những ngôn ngữ tối nghĩa này. Nó đủ khó để hiểu những gì mã làm ở vị trí đầu tiên (điều này được cho là đến từ nền C ++ / Java)
mackycheese21

10
@ mackycheese21 gì? C ++ không dạy bạn yêu thao tác con trỏ?
candied_orange

12
brainfuck có thể là bí truyền, nhưng tôi chắc chắn sẽ không gọi nó là tối nghĩa
Chuỗi không liên quan

3
@candied_orange C ++ đã dạy tôi ghét thao túng con trỏ và chạy đi bất cứ khi nào ai đó nhắc đến std :: :)
mackycheese21

1
@UnrelatedString tối nghĩa, không. Vâng, vâng.
Giàu

14

Brain-Flak , 204 byte

((((((((((((((((()()()){}()){}){}())){}{}))<([([][]){}()]{})(([][]){}[])>)<([][]
()())>)[[]]()())<([]()()())>)<((([]())[][]){}[][()])>)<([][()()])>[[]()])<([][((
)()){}])>)((()()())){}{})<((()()()()()){})>)

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


4
Điểm trừ cho gói.
Giàu

12

MarioLANG , 249 221 byte

+
+
+
+
+
+
+
+
+  ((+++++++++)))<
+>==============="
)++++++++)+++((-[!)--.)++.(.---------.).(.).)++.((.).).(.).++++.(.).(.(+++++++++.))
=================#================================================================.

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



10

Công thức Excel, 59 57 byte

Sau đây nên được nhập dưới dạng công thức mảng ( Ctrl+ Shift+ Enter):

=SUBSTITUTE(ADDRESS(1,{14,369,5,499,19,517,23,387},4),1,)

Sau khi nhập công thức dưới dạng công thức mảng, hãy tô sáng nó trong thanh công thức và đánh giá nó bằng cách sử dụng F9để trả về kết quả, ví dụ:

Trước:
Trước khi đánh giá công thức

Sau:
Trước khi đánh giá công thức

Làm thế nào nó hoạt động

Các ADDRESShàm trả về một chuỗi đại diện cho một tham chiếu dựa trên hai thông số, rowcol. Tham số thứ ba kiểm soát loại tham chiếu nào được trả về, tham chiếu tuyệt đối hoặc tương đối. Ví dụ, =ADDRESS(1,2,4)trả về "B1".

Chúng tôi có thể cung cấp một mảng ADDRESSvà sử dụng nó như một công thức mảng để trả về nhiều kết quả, ví dụ =ADDRESS(1,{1,2,3},4)trả về "A1","B1","C1".

Do đó, trong câu trả lời của tôi, mảng được cung cấp ADDRESSchỉ là các số cột liên quan đến các điểm la bàn cần thiết, ví dụ Cột 14 là cột N, Cột 369 là cột NE.

Tuy nhiên, chúng tôi chưa kết thúc ở đây vì tất cả các tham chiếu được trả về có hàng bao gồm, ví dụ N1, NE1. Do đó, chúng tôi chỉ cần sử dụng SUBSTITUTEđể loại bỏ 1khỏi tất cả các tài liệu tham khảo.


1
Sẽ =IF(1,"N NE E SE S SW W NW")hợp lệ?
Phục hồi lại

3
@squid Vâng, nó thực sự sẽ! Tuy nhiên, tôi sẽ chọn một giải pháp thay thế không yêu cầu chuỗi trích dẫn nguyên văn.
i_saw_drones

Cái này hoạt động ra sao?
anatolyg

@anatolyg Tôi đã thêm một phần giải thích, hy vọng nó có thể hiểu được.
i_saw_drones


7

Than , 14 byte

”{⊟“�_Zn↖⦄RüΦ≦

Hãy thử trực tuyến! Liên kết là phiên bản dài dòng của mã ... đây chỉ là chuỗi được in, vì trình tự động deverbosifier đảm nhiệm việc nén chuỗi.

In chuỗi không nén mất 19 byte, vì Char than in ASCII có thể in theo nghĩa đen. Câu trả lời tốt nhất về thuật toán mà tôi có thể đưa ra không may mất 20 byte:

E⁸ΦSNWE›³﹪⁻﹪⁺⁵×⁶μχι⁸

Hãy thử trực tuyến! Các đầu ra sử dụng định dạng mảng (sẽ tốn hai byte để nối các phần tử trên dấu cách). Hoạt động bằng cách lưu ý rằng các chữ cái của chuỗi SNWEchỉ được sử dụng khi chỉ số bên ngoài hiện tại bằng hoặc cách 1 (modulo 8) theo hướng từ phần tử tương ứng của danh sách các chỉ mục 4,0,6,2.


7

Brainfuck , 117 byte

+++++[>++++++>+>+++>>++++>+++++<<<<<<-]>++[>++>++>+>++>++[<]>-]>>-.>.<.<.>>.<<.>>.>-.<<<.>>.>.<.>.>--.<<.>>.<<.<.>>>.

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

Mã này trước tiên sẽ tạo các ký tự "EN SW" vào bộ nhớ và sau đó di chuyển qua lại để in chúng. Không gian ở giữa, vì nó được in thường xuyên nhất. N và S và W và E không bao giờ xuất hiện cùng nhau vì vậy chúng ở hai phía đối diện của bộ nhớ. Để tối ưu hóa một số sự sụt giảm cuối cùng xảy ra trong giai đoạn đầu ra.


1
OK, đó là một câu trả lời tuyệt vời. Đoán bạn đánh tôi về điều này. +1 cho -1 :-)
ElPedro

1
BTW, quên nói, chào mừng đến với trang web Code Golf. Mong được cạnh tranh với bạn trong tương lai
ElPedro

1
Chào mừng bạn Xem xét thêm một lời giải thích hoặc một liên kết đến một thông dịch viên trực tuyến cho chương trình. Xem câu trả lời khác cho ví dụ. Các câu trả lời chỉ có mã ngắn có xu hướng tự động được gắn cờ là chất lượng thấp.
mbomb007

1
Cảm ơn, tôi có thể thêm một lời giải thích về mã của tôi. Tôi cũng sẽ cố gắng hiểu làm thế nào các liên kết trực tuyến hoạt động.
Helena

1
@Helena Đối với liên kết, bạn có thể kiểm tra liên kết "Dùng thử trực tuyến" trên câu trả lời của tôi. Nếu bạn dán mã của mình vào và chạy nó, bạn có thể nhấp vào biểu tượng liên kết và nhận được câu trả lời golf có định dạng hoàn hảo mà bạn có thể chỉ cần sao chép và dán vào đây. Hoạt động như ma thuật và hỗ trợ nhiều ngôn ngữ. Rất đáng để thử.
ElPedro


5

Thạch ,  16  15 byte

“¤œỵpq⁵’ṃ“NESW 

Một chương trình đầy đủ in văn bản

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


16 ...

“¥Þ¡¦¢¬£æ‘ṃ“¡ɱ⁻»

Một liên kết niladic mang lại một danh sách các danh sách các ký tự (chữ thường).

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


Thay thế 15 dưới dạng Liên kết niladic mang lại danh sách các ký tự (chữ thường) (có dấu cách) : “¡XÇŀqỵÑ’ṃ“¡⁴ṁ».


5

Hàng hóa BASIC (TheC64Mini, C64, C128, VIC-20, v.v.) 28 byte BASIC được mã hóa được sử dụng

 0 PRINT"N NE E SE S SW W NW

Trong Commodore BASIC, bạn không yêu cầu dấu ngoặc kép đóng PRINThoặc các LETcâu lệnh vì trình thông dịch sẽ tự động đóng nó, điều này sẽ lưu một mã thông báo BASIC.

Ngoài ra, người ta có thể chỉ cần sử dụng chế độ trực tiếp như sau:

Hàng hóa BASIC 23 ký tự PETSCII (+ RETURNđể thực thi)

?"N NE E SE S SW W NW

Tôi không chắc làm thế nào để đếm số byte được sử dụng trong trường hợp này theo trình thông dịch ?PRINTsử dụng cùng số byte và không có chương trình nào được lưu trong bộ nhớ.


1
PRINTcũng có thể được thay thế bằng ?, tiết kiệm bốn byte.
James

1
Không, điều đó không đúng; PRINT?sử dụng cùng số lượng mã thông báo BASIC. Tôi không tính các ký tự PETSCII vì nó không đại diện cho bao nhiêu bộ nhớ khả dụng đang được sử dụng bởi trình thông dịch.
Shaun Bebbers

1
Sau ngần ấy năm tôi vẫn học được những thứ mới về Hàng hóa. Cảm ơn Shaun! c64-wiki.com/wiki/BASIC_token
James

Đây là cái tôi đã tạo trước đó (cho C64) -> pastebin.com/NMYzTC7k
Shaun Bebbers

4

Japt , 16 byte

Trả về một chuỗi các chuỗi chữ thường. Chuỗi nén là 18 byte nhưng sử dụng alàm dấu phân cách thay vào đó và sau đó phân tách trên đó sẽ rút ngắn hơn.

`nÂà!Z°°nw`qa 

Hãy thử nó - định dạng chân trang đầu ra.


4

Deadfish ~ , 138 byte

{{i}i}c{{d}}cs{i}c{d}ic{{d}}iisicsic{{d}}iisicisddddddc{d}ddddc{{d}}iisicisddddddc{{iiii}}sicisddddddciiiic{{d}d}icisddc{{d}d}ics{i}c{i}dc

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

Vì vậy, xuất ra chữ thường với dòng mới tốt hơn mặc định (chữ hoa có dấu cách).

Mã này được tạo bởi trình tối ưu hóa của tôi, được viết bằng C ++ (nhờ mực cho ý tưởng tối ưu hóa khác!):

#include <iostream>
#include <string>
#include <queue>
#include <vector>


int eval(const std::string& actions, int result)
{
    int mult = 1;

    for (int i = 0; i < (int)actions.length(); ++i)
    {
        switch (actions[i])
        {
        case 's':
            result *= result;
            if (result == 256)
                result = 0;
            break;

        case '{':
            mult *= 10;
            break;

        case '}':
            mult /= 10;
            break;

        case 'd':
            if (result > 256 && result - mult <= 256)
                result = (result - mult) % 256;
            else
                result -= mult;
            break;

        case 'i':
            if (result < 256 && result + mult >= 256)
                result = (result + mult) % 256;
            else
                result += mult;
            break;
        }
    }

    return result;
}

struct worse
{
    bool operator()(const std::string& a1, const std::string& a2)
    {
        return a1.length() > a2.length();
    }
};

std::string BestStr(int accumulator, int target)
{
    std::priority_queue<std::string, std::vector<std::string>, worse> actions;
    actions.push(std::string(""));
    while (true)
    {
        std::string a = actions.top();
        int new_acc = eval(a, accumulator);
        if (new_acc == target)
            return a + "c";

        actions.pop();

        int last_braces = 0;
        int i = a.length() - 1;
        while (i >= 0 && a[i] == '}' && last_braces < 2)
        {
            ++last_braces;
            --i;
        }
        bool is_last_i = (i >= 0 && a[i] == 'i');
        bool is_last_d = (i >= 0 && a[i] == 'd');
        bool may_add_braces = (i < 0 || a[i] == 's');
        bool may_add_c = (new_acc > 1 && new_acc < 30);

        if (may_add_c)
        {
            actions.push(a + "s");
        }
        if (may_add_braces)
        {
            actions.push(a + "{{}}");
            actions.push(a + "{}");
        }
        for (int braces_back = 0; braces_back <= last_braces; ++braces_back)
        {
            for (int c = 'd'; c <= 'i'; c += 'i' - 'd')
            {
                if ((!is_last_i || c == 'i') &&
                    (!is_last_d || c == 'd') ||
                    braces_back == 0)
                {
                    std::string new_actions = a;
                    new_actions.insert(new_actions.length() - braces_back, 1, (char)c);
                    actions.push(new_actions);
                }
            }
        }
    }
}

std::string DeadfishConvert(std::string s)
{
    std::string result;
    int accumulator = 0;

    for (int c: s)
    {
        result += BestStr(accumulator, c);
        accumulator = c;
    }
    return result;
}

int main()
{
    std::string s1 = DeadfishConvert("N NE E SE S SW W NW");
    std::cout << s1 << '\n';
    std::cout << s1.length() << '\n' << '\n';
    std::string s2 = DeadfishConvert("n ne e se s sw w nw");
    std::cout << s2 << '\n';
    std::cout << s2.length() << '\n' << '\n';
    std::string s3 = DeadfishConvert("N\nNE\nE\nSE\nS\nSW\nW\nNW");
    std::cout << s3 << '\n';
    std::cout << s3.length() << '\n' << '\n';
    std::string s4 = DeadfishConvert("n\nne\ne\nse\ns\nsw\nw\nnw");
    std::cout << s4 << '\n';
    std::cout << s4.length() << '\n' << '\n';
}


4

Batch File, 19 byte

Câu hỏi không bao giờ nói rằng bạn phải xuất ra N NE E SE S SW W NWvà không có gì khác, cũng như không thể thoát do lỗi sau khi làm như vậy mã này chỉ đưa ra một lỗi chứ không thoát do nó.

N NE E SE S SW W NW

Đầu ra

>N NE E SE S SW W NW
'N' is not recognized as an internal or external command,
operable program or batch file.

Batch File, 25 byte

Chỉ N NE E SE S SW W NWđầu ra không có lỗi hoặc sự cố.

@echo N NE E SE S SW W NW

Bạn có thể lưu một byte thay thế cd chỉ bằng dấu ngoặc kép, như 'N NE E SE S SW W NW'- bạn sẽ nhận được một cái gì đó như: N NE E SE S SW W NW - command not found
Dewi Morgan

4

Python2, 59 byte

''.join(' SEWN'[0xe0619042210504>>i*3&7]for i in range(19))

Số ma thuật là các chỉ mục ba bit được nối vào chuỗi ký tự, theo thứ tự ngược lại để chúng ta có thể bắt đầu lặp lại tại LSB.


Tôi đã dành một lúc cố gắng thu nhỏ số ma thuật, nhưng lặp lại chuỗi ký tự thông qua bội số để cho phép các chỉ mục bổ sung không hoạt động do cần mã hóa cho không gian - tốt nhất tôi nhận được cho các chỉ mục chồng chéo trong tra cứu đã thêm nhiều ký tự vào chuỗi hơn các chữ số được xóa khỏi số ma thuật (bao gồm một vài điều không may không quan tâm ở giữa):

''.join('WN S ES W xxE '[0x423659711>>i*2&15]for i in range(19))

Tại sao làm cho ir đơn giản khi bạn có thể làm cho nó phức tạp? :-)
GB

4

K (ngn / k) , 23 22 byte

-1 byte nhờ ngn!

"WNES"@5\7108085518230

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

J , 34 30 byte

echo(#:3510)<;.1'NNEESESSWWNW'

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


Galen, vì J lặp lại nghĩa đen sẽ ngắn hơn. Tôi rất thích thấy nhịp đó ... Tôi đã không thể làm được
Jonah

1
Có, tiếng vang sẽ là 4 + 19 byte. Tôi không có ý tưởng nào tốt hơn.
Galen Ivanov

1
đối với k: nếu chúng ta trao đổi " "<-> "W"( 0<-> 4trong cơ sở 5), khoảng trống sẽ ở cuối và chúng ta có thể xóa nó bởi vì việc lập chỉ mục chuỗi ngoài giới hạn sẽ tạo khoảng trống:"WNES"@5\7108085518230
ngn

@ngn Cảm ơn bạn!
Galen Ivanov

1
@GalenIvanov cũng tốt cho cơ sở dữ liệu hiệu suất hàng đầu :) arthur đã thiết kế k làm ngôn ngữ cơ bản cho kdb +
ngn


3

Brachylog , 19 byte

"NNEESESSWWNW"ḍ₄ḍᵐc

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

Đầu ra như một danh sách. ḍ₄ḍᵐclưu hai byte bằng cách viết ra bảy khoảng trắng và biến toàn bộ vị ngữ thành một chuỗi bằng chữ, vì vậy ít nhất nó liên kết với PHP ...

"NNEESESSWWNW"         The string "NNEESESSWWNW"
              ḍ₄       split into quarters
                 ᵐ     with each quarter
                ḍ      split in half
                  c    and concatenated
                       is the output.

Tôi đã cố gắng tỏ ra thông minh 3⟦{;"NESW"↺₍h₂a₀ᶠ}ᵐc, nhưng nó không thể hiểu được SE hay NW, và dù sao cũng dài hơn một byte.


3

Khoảng trắng , 151 byte

[S S S T    T   N
_Push_3_W][S S T    T   T   S N
_Push_-6_N][S S T   T   T   S T S S N
_Push_-52_space][S S S T    T   N
_Push_3_W][S T  S S T   N
_Copy_0-based_1st_(space)][S S S T  T   N
_Push_3_W][S S T    T   N
_Push_-1_S][S T S S T   S N
_Copy_0-based_2nd_(space)][S S T    T   N
_Push_-1_S][S T S S T   N
_Copy_0-based_1st_(space)][S S T    T   T   T   T   N
_Push_-15_E][S S T  T   N
_Push_-1_S][S T S S T   S N
_Copy_0-based_2nd_(space)][S T  S S T   S N
_Copy_0-based_2nd_(E)][S T  S S T   N
_Copy_0-based_1st_(space)][S T  S S T   N
_Copy_0-based_1st_(E)][S S T    T   T   S N
_Push_-6_N][S T S S T   S N
_Copy_0-based_2nd_(space)][S S T    T   T   S N
_Push_-6_N][N
S S N
_Create_Label_LOOP][S S S T S T S T S S N
_Push_84][T S S S _Add][T   N
S S _Print_as_character][N
S N
N
_Jump_to_Label_LOOP]

Chữ cái S(dấu cách), T(tab) và N(dòng mới) được thêm vào dưới dạng chỉ tô sáng.
[..._some_action]chỉ thêm vào giải thích.

Dùng thử trực tuyến (chỉ có khoảng trắng, tab và dòng mới).

Giải trình:

  1. Đẩy các giá trị unicode trừ đi hằng số 84 cho các ký tự "WN W WS S ES E EN N" vào ngăn xếp (lưu ý rằng chuỗi được đẩy ngược lại). Ngoài ra, tôi sử dụng một vài bản sao của các giá trị được đẩy trước đó để lưu byte nếu có thể.
  2. Sau đó bắt đầu một vòng lặp vô hạn, thực hiện như sau:
    1. Thêm hằng số 84 vào giá trị unicode hiện tại
    2. In nó dưới dạng ký tự thành STDOUT

Hằng số 84được tạo bởi chương trình Java này mà tôi đã viết cho một thử thách khác mà tôi đã trả lời trong Whitespace .


3

MathGolf , 20 17 byte

ÿnesw▒∙╫m+mÉîÄ╪^─

-3 byte nhờ @maxb .

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

Giải trình:

ÿnesw      # Push 4-char string "nesw"
           #  STACK: "nesw"
          # Split to a list of characters
           #  STACK: ["n","e","s","w"]
          # Triplicate it
           #  STACK: ["n","e","s","w"],["n","e","s","w"],["n","e","s","w"]
          # Rotate the top one once towards the left
           #  STACK: ["n","e","s","w"],["n","e","s","w"],["e","s","w","n"]
 m+        # Append the top two together
           #  STACK: ["n","e","s","w"],["en","se","ws","nw"]
   m       # Map the strings in the top list to:
    ÉîÄ╪   #  Rotate the string the 1-based index amount of times towards the right
           #   STACK: ["n","e","s","w"],["ne","se","sw","nw"]
^          # Zip; creating pairs with the top two lists
           #  STACK: [["n","ne"],["e","se"],["s","sw"],["w","nw"]]
          # Flatten this list
           #  STACK: ["n","ne","e","se","s","sw","w","nw"]
           # (after which the entire stack is output implicitly as result)

1
17 byte . Đây là một thử thách thú vị. Tôi đã thử nó trước đây, nhưng cuối cùng bạn đã làm được. Tôi nghĩ rằng hầu hết những gì bạn có thể làm từ đây là thêm 1 byte, nhưng tôi không thể tìm thấy một cách ngắn hơn.
maxb

@maxb Ah cách tiếp cận tốt đẹp. Tôi phải thừa nhận rằng các mã có kích thước khối X ( ÉÄtrong trường hợp này) đôi khi vẫn làm tôi bối rối đôi khi .. Đôi khi tôi không chắc chắn khi nào tôi làm hay không phải sử dụng các khối mã đó. Bạn m+không sử dụng một ví dụ. Nhưng bạn Älà một khối mã có kích thước 1. Tôi đã thử mÅî╪xem điều gì đã xảy ra, đó là lý do tại sao bây giờ tôi hiểu tại sao có một khối mã có kích thước 1 Äđể bắt đầu. :)) Tuy nhiên, cảm ơn vì -3 byte. Vẫn còn rất nhiều điều để học tôi thấy.
Kevin Cruijssen

1
Giải thích tốt đẹp! Tôi đã thử thực hiện một giải pháp mà không chuyển đổi nó thành một danh sách các ký tự, nhưng lệnh zip hơi khó hiểu. Đối với các khối mã, hãy nghĩ về chúng như là sự thay thế, được sử dụng thay vì {}. mÅî╪tạo ánh xạ, nhưng nó không có vòng lặp for bên trong ánh xạ. Nếu bạn viết m{î{╪}}, có lẽ dễ dàng hơn để thấy rằng mã là "ánh xạ tới: loop <index> lần và xoay chuỗi mỗi vòng lặp". Lý do tại sao m+không có một là một số lệnh nhất định có ẩn các khối 1 byte (ánh xạ, bộ lọc, rút ​​gọn, v.v.), nhưng îkhông phải là một lệnh có nghĩa là được sử dụng kết hợp với một khối.
maxb

1
@maxb Tôi thực sự biết các khối mã là một biến thể ngắn hơn {...}, nhưng tôi quên mất integer{là một vòng lặp for. :) Bây giờ îÄ╪có ý nghĩa hơn rất nhiều. Cảm ơn đã giải thích!
Kevin Cruijssen


2

Hạt giống , 6014 byte

27 32429737401852232227804295321578416370544555457622262891879921280324727410131817586348135470079420921373938348260737299348550007805068404867624897650263347568409592608258945989033792510474363164709158118555665232935403908551415888090695760298337219819413274977014408722140235669339108001709528995376914900494019798521214727367535169036319615676199584661126257462974800782884967804763256678000063025237472650538076831876942979826335539886276642624472204985016283691316313249488093825552581263195700506490263014623798470563718844847334940964632636436478404543496272112184140337568637349767918641524452384959486975049813859244670160569884744538279036643294867674161431756929550170395739925307134312406291063668809195567313928307910934660574895433141956111513050736041440669472422865481546405020220238818265794921314653725749392385549924210837964649297239381603259476675148489582680939048820717739905271461370132524025785160026801625672272913416389786086946626728842588663673416395169524016926695769334183833366462685756958054189820999370092892855665559717806826530952610964256124463840218293029538229042911551526509745973128558291005365222643503139067010483637086697955919587162384655443959408291567894061028044826636171014388153130769792397282335858985323269310727311039012381122390183102126191168963870116881629339035600546009305431793687183913979054151312200573069395058914262857368132993952655571167118263728070696377852599343989848263167312887211748226689125561718255196655446099711296568221690530717651328503948183228932786503716890383195810396161663632504174142420921735055441162618914957825032056019218584287089599270312541933094119409995775035365862244691419255488688879630142415739738796957474249592086989231999568273454247198389863139439897248192949030226324637037937607004428557202644332945222019553599908855943840883606735602486216245714280716148378430738983808375466562604692991701163078094015860708365913183037140180020776525026891135163345427911749533164462233906885068864798951466382247930357444595606617682531499045805835102155190109668901179666311163071611393282924908189215675892953256826649762594463293867383921972181952997833560371571545190945543033351108064265894854803319008655145213765667074789305055723258530694850418765677462165413557272747961130459219342146615095862014137406489375157766959799291089215740196734079295172946350338663239451562589633216908805028629767462044463310475859283605554743731396818983359527612902567406307270838160926586311672252276690909354125055468912844343806046309796590149977323343332039095076680537362333773750051043281967620781236684580688649899599894791764969639275247700776637892615729757899608628514791667795106390376246890330575517824338764219021396958188958235055290896924249770944905659304681507478975095888248103169710912376599445302527257479613158446721050489233911736089191439017996962182413511012900366501119556105789078275149705515012300827868862038071066912823449506913958912235923323638505757204526506327010926007595704417253684932596231606733027284263178479840785607928320603259662026791082244015829365605451084366715394628351636563955621161378688550003390556445245074739462307110100863024184316465734324401688465928827408449165190271528329602702373730346394803239394173490819727873116531045433457650881080122796159241596543253982402471104065237941729677594379317274541529006952959000152687275974001138315010176843925599438278290218390644740919129323109582279220437886915496736885058271413958305953151184342725824729076581370881383360210631877985352671536000503948280559301633936877162466145026758809907939645467704805892486147550057845773849575278620555906080753862688722846292689494961297512113753414009189522365247542490200336579292488067953461299023326925661887077747288500270026888774635820948696015812357241781814592351848858954139716506111479475207696790949277211077720834891880913260866501916732427370806066035548982017315826213049658915419681842381914237502216614528174237875875738156132703973666564945026254499265910704148825037630761619650949635972980035630316257135212349181639940504547722767898302879234673272154028964478458469466250102554612059368293497511404163963705442187242769706586819405113285219700159125119338601931670779192478917206878107091618448093140705173062420040261126935373689918208815797991761563304607704283868972915636425613833785564679990574095368828308776724486415005128506687942819070129022911666887363253202695416103545769073021185132010920185208632024811337544715055406031297413168802089421761798020616230024290524096396092608042069087607272534874457093977610919233750725135220581682913316085638068663247820037223692942067994551786014033707387642820855601334002540339334606906772532939337779748305357112540312103757754695577077583846897693527091162962000082213332051059005644562753372638247584982354478224403477604356150912451128591138652721098074872513196253790561736352841309810909110001754673250730698454675988798465247376421075019414107337634079281061629221783859449063069175434073835673063716565555614782886016441814199915418848976070834414782427725187820926042778984081922550398210353288229598805397201850487997254871012213762289412828417039945896819359898337616122446201299182152276549340911589671291124887672310931868023491872685227548726494469798568145715500153324646857181224645073236602344526749192704938665584870007079941922775292601106345725659322322536675461008337648982039319953181733660980694781559207671567197161027796266390879206526082137700937056380629087949633487181507979286568656291044492869916694352395542638882544967807857391058161838343109606346401310155771709714142586733985703451391374159045025205718989407293651441039802247981386993858491342422355232055341447145969376687615001834650283116652856369804298047720786536278306210551862061566639283704928517998916884505819581251906693306116531467413995747910736025576089721150597919824878333808115757216261812226145636769545796913912159437533454858286778214791559458862216426856243544801486923659355580455048265633089421966932180992

Tạo chương trình befunge sau:

"WN W WS S ES E EN N">:#,_@

2

Hodor , 177 byte

hodor.hod("HoOodoOorhodor  HoOodoOorhodor HooodorrHodor  HooodorrHodor  HODOR?!? HooodorrHodor  HODOR?!?  HODOR?!? Hooodorrhodor  Hooodorrhodor  HoOodoOorhodor Hooodorrhodor ");

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


2

Hội (x86, Linux), 68 byte

$ od -x a
0000000 457f 464c 0001 0000 0000 0000 0000 0500
0000020 0002 0003 001b 0500 001b 0500 0004 0000
0000040 13b2 31b9 0000 cd05 2580 0020 0001 cd40
0000060 4e80 4e20 2045 2045 4553 5320 5320 2057
0000100 2057 574e
0000104
$ ./a
N NE E SE S SW W NW$

Nguồn:

BITS 32
org 0x05000000
db 127,"ELF"
dd 1,0
dd $$
dw 2,3
dd 0x0500001B,0x0500001B
dd 4
mov dl,19
mov ecx,m
int 128
db 37
dw 32,1
inc eax
int 0x80
m db 'N NE E SE S SW W NW'

Mã chủ yếu được lấy từ ELF ngắn nhất cho "Hello world \ 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.