Tất cả cơ sở của bạn đều thuộc về chúng tôi (bị hạn chế)


57

Đầu vào không được yêu cầu và đầu ra phải đọc " All your base are belong to us".

Những hạn chế

  • Không có nguồn lực bên ngoài.

    Cộng với tối thiểu hai trong số sau:

  • Bạn không thể sử dụng "a", "b", "t", "u" hoặc "y" trong mọi trường hợp trong mã của bạn (thưởng -10 cho điểm golf của bạn nếu bạn có thể làm điều này)

  • Bạn không thể sử dụng "l", "o", "s", "e" hoặc "r" trong mọi trường hợp trong mã của bạn (thưởng -20 cho điểm golf của bạn nếu bạn có thể làm điều này)

  • Bạn không thể sử dụng "n", "g", "0", "1" hoặc "2" trong bất kỳ trường hợp nào trong mã của bạn (thưởng -30 cho điểm golf của bạn nếu bạn có thể làm điều này)

Vì vậy, ví dụ, nếu bạn quản lý để hoàn thành mã với 40 ký tự và sử dụng quy tắc 1 và 2, điểm số golf của bạn là 40 - 10 - 20 = 10 ký tự.

Điểm số golf nhỏ nhất giành chiến thắng ... Chúc may mắn!


5
Vì vậy, nhiều như tuyên bố một stringvi phạm cả ba hạn chế, và char, varWritephá vỡ hai trong số họ từng. Điều này sẽ rất khó khăn để có được câu trả lời hợp lệ, có thể là Barinfuck.
Thực phẩm điện tử

7
"Không cần nhập liệu ". Điều đó không có nghĩa là tôi có thể, ví dụ, có thể làm một cái gì đó như print(input())(python)? Người dùng sẽ được yêu cầu nhập đúng chuỗi, nhưng điều đó không bị cấm.
Justin

5
@Quincunx Tôi sẽ không chấp nhận một giải pháp như vậy, vì không được đảm bảo để đưa ra một giải pháp chính xác. Ngoài ra, stdinđược cho là một "nguồn bên ngoài".
nitro2k01

2
@PranavHosangadi Có một câu trả lời bị xóa cho câu hỏi này với số điểm là -6 về cơ bản giống như vậy. Nó đã được thực hiện trước một số lần trong các câu hỏi khác nhau và không được phép rõ ràng trong thẻ golf mã .
Gareth

1
Theo quy tắc tiêu chuẩn golf-golf, câu trả lời bằng latin1 / unicode / name bạn charmap được xếp hạng theo byte sau khi chuyển đổi thành utf-8. Chúng ta sẽ tính như thế hay bạn đã chọn một phương pháp cho điểm khác nhau? Nhà lãnh đạo hiện tại sau đó sẽ ở mức 0 thay vì -40.
Sylwester

Câu trả lời:


4

SOGL V0.12 , 15 - 60 = -45

šz█P'zUS½█│β3‘⁾

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

šz█P'zUS½█│β3‘là một chuỗi nén của all your base are belong to us, nhưng vì đó chuỗi chính xác nén chứa 0, nó chia thành 3 phần: all your base are, , belong to us(trong đó chi phí một byte nhưng đã đưa ra một tiền thưởng -30 byte). Các chuỗi đầu tiên và cuối cùng được nén với từ điển tiếng Anh SOGL và được nối với các khoảng trắng. Phần còn lại là một trường hợp câu đơn giản tích hợp.
Lưu ý rằng SOGL hoãn thử thách này, nhưng hiện đã được cho phép.


Tôi chỉ cần hỏi ... Làm thế nào ??? Có phải chúng ta đang đối phó với một số kỹ thuật nén thông minh ở đây? Tôi không biết gì về SOGL ...
WallyWest

45

GolfScript, -22 (38 ký tự, tiền thưởng -60)

"„¯¯c¼²¸µc¥¤¶¨c¤µ¨c¥¨¯²±ªc·²c¸¶"{67-}%

4
Cái này hoạt động ra sao?
Chàng trai với chiếc mũ

37
@RyanCarlson Phép thuật.
Howard

4
"..."định nghĩa một chuỗi và khối {}%thực hiện thao tác ánh xạ trên tất cả các ký tự. Bên trong khối, giá trị ascii có sẵn trên ngăn xếp và 67-trừ 67 từ mỗi giá trị ascii.
Howard

4
OK, trường hợp có lẽ là từ sai để sử dụng, nhưng bạn biết ý tôi là gì. Tôi khá chắc chắn rằng siêu ký tự 2 vẫn là số 2, vì vậy Quy tắc 3 chưa được đáp ứng.
Trent

3
@FizzBuzz Tôi biết những gì bạn đang cố gắng nói, nhưng tôi nghĩ điều quan trọng là 2 và ² là các glyph khác nhau với các mật mã riêng biệt. Bạn có thể đưa ra lập luận rằng, theo nghĩa biểu thị, chúng là cùng một biểu tượng, nhưng tôi nghĩ đó là một cách giải thích trừu tượng hơn nhiều so với giá trị câu hỏi.
Jordan Gray

36

Quét , −40

뀖롬긇땯덗긠눦굳뉒걡댦넠눦녬닶멧긇끯긇녳
  • = 20 ký tự - 60 phần thưởng
  • Chỉ hoạt động nếu đầu vào trống, mà tôi coi là trường hợp; nếu không, hãy thêm vào phía trước, thay đổi điểm số thành −39.
  • Nếu tôi có thể giả sử đầu vào là những gì tôi muốn (vì câu trả lời này rõ ràng là như vậy), thì chương trình trống là một giải pháp và điểm của tôi là −60.

Vâng, "input is not required"như tôi đã nói, vì vậy tôi sẽ ném phía trước và thay đổi điểm số thành -39, nhưng rất nỗ lực! Đặc biệt là xem xét bạn phát minh ra ngôn ngữ, anh bạn!
WallyWest

1
Là một người Hàn Quốc nhìn thấy các âm tiết tiếng Hàn trong mã là tuyệt vời.
Matthew Roh

29

JavaScript - 140 byte - 60 điểm thưởng = 80 điểm

(x="Ǎľľ y̌ǒǔř b̌ǎšě ǎřě b̌ěľǒňǧ ťǒ ǔš")[x[3*9]+x[34]+"p"+x[4]+x[5*5]+"c"+x[34]]("̌","",x[6*7])

Chạy trong Firefox.

Tôi biết bạn đang nghĩ gì. Không, đó không phải là các ký tự được liệt kê trong câu hỏi. Đó là những nhân vật có caron, hoặc háček (được chọn ngẫu nhiên từ danh sách các dấu phụ). Mặc dù họ đang kết hợp các nhãn hiệu, họ không phải là hai nhân vật riêng biệt.


Node.js REPL:String.fromCharCode(65,108,108,32,121,111,117,114,32,98,97,115,101,32,97,114,101,32,98,101,108,111,110,103,32,116,111,32,117,115);
nick indiessance

28

APL (43 - 30 - 20 = -7)

⎕AV['⊥┤┤ ø┼&┐ `∣┘û ∣┐û `û┤┼─ù ´┼ &┘'⍳⍨⌽⎕AV]

Điều này thỏa mãn quy tắc 2 và 3.


Điều này sẽ rất khó để đánh bại!
Paul Prestidge

1
Điều này trả về kết quả hoặc in nó?
Aaron Davies

@AaronDavies: cả hai, kết quả được tự động in
marinus

@marinus Tôi đã thử điều này trong TryAPL.com và gặp INVALID TOKENlỗi .... có lẽ từ ký tự ban đầu và đuôi trước AV ... Có nơi nào khác tôi có thể kiểm tra điều này không ...?
WallyWest

@WallyWest: sử dụng APL Dyalog ( dyalog.com ). Nhận phiên bản chưa đăng ký, nó miễn phí. TryAPL rất hạn chế, nó gần như vô dụng.
bến tàu

28

Brainfuck, 267 - 60 = 207

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

Điều đó có thể được giảm thêm nữa, tôi tự hỏi? :)
WallyWest

2
fbonetti đã làm tốt hơn trong câu trả lời Brainfuck của mình.
Thực phẩm điện tử

2
FIQ thậm chí còn làm tốt hơn 4 ngày sau đó
schnaader

22

HTML / CSS 70

<p style="transform:rotate(.5turn)">sn oʇ ƃuoləq əɹɐ əsɐq ɹnoʎ llɐ</p>

http://jsbin.com/EjekuvuF/1/

Tôi nghĩ rằng tôi đã thông minh với kiểu lộn ngược nhưng sau đó nhận ra rằng tôi không thể đáp ứng bất kỳ quy tắc phụ trợ nào với HTML / CSS thực tế. Ồ tốt

CẬP NHẬT:

User Flame đề xuất một giải pháp phù hợp với nhiều trình duyệt hơn:

<p style="transform:rotate(180deg)">sn oʇ ƃuoləq əɹɐ əsɐq ɹnoʎ llɐ</p>  

http://jsbin.com/EjekuvuF/6


Tôi đoán bạn có thể sử dụng các tham chiếu ký tự XML để cứu vãn tình huống.
MvG

3
Tôi thích ý tưởng đằng sau giải pháp mặc dù.
Sumurai8

Tôi cũng sẽ cung cấp đạo cụ cho nó ... vì một số lý do, tôi đã transform:rotate(.5turn)giải quyết được lỗi Cú pháp ... Tôi thích trí tưởng tượng được đưa vào đây ...
WallyWest

@WallyWest Tôi đã không kiểm tra trong tất cả các trình duyệt. Tôi cá rằng đó có thể là dành riêng cho trình duyệt hơn là cú pháp W3C chính thức. (Mặc dù hoạt động trong Chrome)
DA.

3
Bạn nên sử dụng thay vì ɐ :)
Timwi

12

MATLAB, Tất cả tiền thưởng: Điểm -20 (40-60)

['' '¤ÏÏèÜÒØÕèÅÄÖÈèÄÕÈèÅÈÏÒÑÊè×ÒèØÖ'-99]

BIÊN TẬP:

Lưu ý rằng tôi không chắc chắn các yêu cầu hệ thống là gì để chạy cái này, đã thử nghiệm trên windows. Đối với những người đấu tranh để sao chép, một mã tương tự có thể được tạo ra như vậy:

char('All your base are belong to us' + 99)

Nếu nó được phép hỏi bất cứ điều gì như đầu vào, một giải pháp có ít ký tự hơn (nhưng cũng thiếu phần thưởng) tất nhiên là có thể.

input('')

Vui lòng giải thích cách bạn dự định đầu ra bất cứ thứ gì chỉ sử dụng input. Câu trả lời thứ hai là (afaik) không đúng.
DJSpud

2
@Jhawins: MATLAB đưa ra kết quả của mỗi biểu thức không kết thúc bằng dấu chấm phẩy. Cuộc input('')gọi không kết thúc bằng dấu chấm phẩy, do đó nó sẽ tạo đầu ra.
Ben Voigt

6
Nếu đó là chính xác, thì câu trả lời JS của tôi là " prompt()"
DJSpud

Và shell sẽ là dd, nhưng có lẽ đó được coi là một nguồn tài nguyên bên ngoài. Vì vậy, người dùng đầu vào, tất nhiên.
gerrit

Tôi đã thử chạy cái này và nhận được những thứ sau: _A ,, E9 /5 2E "! 3% E! 2% E" %, /. 'E 4/ E5`3 Tôi có thể hiểu câu trả lời đầu tiên, nhưng câu trả lời thứ hai yêu cầu đầu vào, mà tôi nói là không" bắt buộc "
WallyWest

10

k (-7 = 53 - 60)

(#`)"c"$(465%3)-6h$"Z//{\",&){9:(6{:)6{96/,-4{',{&(";

không bao gồm dòng mới, có thể được thêm vào với chi phí của một char bổ sung:

(-#`)"c"$(465%3)-6h$"Z//{\",&){9:(6{:)6{96/,-4{',{&(";

thật khó chịu, sự bù đắp duy nhất có hiệu quả cho thủ thuật này là 154 và 155

biên tập:

nếu nó đủ để hiển thị chuỗi (thay vì in nó), vì tôi nghi ngờ giải pháp APL có (nó không hoạt động trong http://tryapl.com/ , vì vậy tôi không thể kiểm tra đúng cách), đó là

  "c"$(465%3)-6h$"Z//{\",&){9:(6{:)6{96/,-4{',{&("
"All your base are belong to us"

đó là -12 = 48 - 60. tôi có thể đưa ra phán quyết về việc liệu điều này có đủ không?


Tôi chưa bao giờ yêu cầu một dòng mới ... :)
WallyWest

10

đc, 97 - 60 = 37 91 - 60 = 31 88 - 60 = 28 81 - 60 = 21

3C87596P4d^8/P7958389P7479394P6386533P7C89P749698CP644848CP459 8^699 7^3849736388974773333 86-++P

Phiên bản cải tiến (ý tưởng chính ở đây là thay đổi cơ sở đầu vào, để tăng cơ hội tìm thấy một số lớn hữu ích không có chữ số có vấn đề):

IDi67793554D647F84C836645D6569F69Pi6385C77P9i35PDdi6^I9^+6D59CD83D664D34+P8CPFi98CCF5PCi97P

Trong cơ sở 7, toàn bộ điều có thể trở thành một con số duy nhất! Các cơ sở thấp hơn tự nhiên là nhỏ gọn hơn, nhưng việc thiếu các hoạt động sửa chữa ở đây bù đắp cho nó.

7i4398873968644388737548444897643735447698675366869556798538985674336396359936458859886P

Giải pháp đầu tiên của tôi đã sử dụng cơ sở 10. Lần thứ hai của tôi sử dụng kết hợp của cơ sở 9, 10, 12, 13 và 15. Đây là giải pháp cơ sở 7. Tôi thực sự cảm thấy như tất cả các cơ sở đều thuộc về tôi.

Cuối cùng, nghiêm túc: Cơ sở 13 thực hiện công việc tuyệt vời trên phân khúc đầu tiên, sau đó cơ sở 7 cho phần còn lại.

Di67793554D647F84C836645D6569F69P7i798789699638355733695878558396339387963789536P

Vậy nói cách khác, tất cả cơ sở 7 của bạn thuộc về bạn, @Wumpus?
WallyWest

10

Python REPL, 122 116 98 ký tự - 30 điểm thưởng = 92 86 68 điểm

>>> '\x41\x6c\x6c \x79\x6f\x75\x72 \x62\x61\x73\x65 \x61\x72\x65 \x62\x65\x6c\x6fng \x74\x6f \x75\x73'

'All your base are belong to us'

Tôi có thể loại bỏ các số 0 trong Python 3.3 bằng cách thay thế ' \40' bằng \N{SP}, nhưng than ôi, điều đó Nkhông được phép.

Chỉnh sửa : Lấy cảm hứng từ câu trả lời này , tôi đã rút ngắn nó thêm bằng cách thay thế \x40bằng . Hơn nữa, kể từ khi tôi đã sử dụng 1, thay thế \156bằng n\x67bằng cách grút ngắn nó bằng cách khác 6 ký tự trong khi phải gánh chịu không phải trả thêm hình phạt.


1
Tôi tự hỏi nếu đây là một mục hợp lệ, bởi vì nó chỉ hoạt động vỏ tương tác. Nếu bạn đặt nó trong một .pytập tin và thực hiện nó, không có đầu ra.
Daniel Hepper

1
Nó phụ thuộc ... Tôi tin rằng không có quy tắc chung. Một số câu hỏi cho phép chế độ tương tác, những câu hỏi khác thì không.
Bakuriu


1
Điều này cũng hoạt động trong R
Zach

1
@AaronHall Và sau khi chỉnh sửa, tôi đã giảm xuống còn 68!
gerrit

8

Brainfuck, 205 203 - 60 = 145 143 byte

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

Phiên bản dễ đọc:

++++[->++++<]>[->++++>++>+++++++>++++++>++++++++<<<<<]
64 32 112 96 128

>+.>>----..<.                     All                 65 108 108  32
>>>-------.<<+++.>>----.---.<<<.  your           121 111 117 114  32
>>++.-.>+.<++++.<<.               base            98  97 115 101  32
>>----.>-.<++++.<<.               are                 97 114 101  32
>>---.+++.<---.>>---.-.<<-----.<. belong  98 101 108 111 110 103  32
>>>++++++.-----.<<<.              to                     116 111  32
>>>++++++.--.                     us                     117 115


Cuối cùng tôi cũng mong đợi một giải pháp Brainfuck ... Làm tốt lắm!
WallyWest

7

Befunge 98: 122 - 60 = 62

5f8+*:53-+:' \6-:5+' 91+:*3+::7+\8+:3-:7-:3-:' \3+::3-4+',' -+\4-:' \:4+\6+c+:f3+-:4+3-' '&3*:3+:6-:f+5-:' \d-:' '!+ff+k,@

Tính toán các giá trị ascii, sau đó in chúng. Tôi vẫn cần thử các phương pháp khác để tạo thành các con số để xem có cách nào ngắn hơn không.


Tôi đã tự hỏi khi nào bạn sẽ đặt 2 byte của mình vào ... Công việc tuyệt vời!
WallyWest

7

Con trăn, 195-40 = 155

x,w,y,z,v=4*8,55,56,57,58;exec(("%c"*38)%(y+y,z+z,49+y,w+w,v+v,39-7,34,65,54+54,54+54,x,v+63,48+63,48+69,z+z,x,98,97,59+y,45+y,x,97,z+z,45+y,x,98,45+y,54+54,w+y,w+w,45+v,x,v+v,w+y,x,v+59,z+v,34))

6

Hồng ngọc, 121 - 50 = 71

Một chút vũ phu, nhưng hầu hết các phương pháp dễ thương đều bị loại trừ:

$><<[65,c=36*3,c,d=8*4,363/3,f=c+3,c+9,c+6,d,x=98,97,j=c+7,k=3+x,d,97,c+6,k,d,x,k,c,f,j-5,5+x,d,c+8,f,d,c+9,j].pack('C*')

Phá vỡ quy tắc số 1 vì A trong pack, hai cái còn lại sẽ ổn.


Tôi có thể lưu 6 ký tự nếu chúng tôi chỉ trả về kết quả thay vì in nó, tôi không rõ về điều đó sau khi xem các câu trả lời khác.
Paul Prestidge

1
Vô cùng dài, nhưng không còn nữa, một người khác: pastebin.com/wnsvcAMh
manatwork

@manatwork Tôi thích nó! Bằng cách nào đó tôi không bao giờ nghĩ về điều đó, mặc dù tôi đang sử dụng <<trong câu trả lời của mình.
Paul Prestidge

Vì vậy, bạn có thể sử dụng giải pháp 154 ​​ký tự @manatwork đã sử dụng và yêu cầu giảm giá 60 điểm mang lại cho bạn 94 hoặc gắn bó với phiên bản không phải là Quy tắc 1 và đi với 71 ... Tôi biết tôi sẽ sử dụng cái gì :)
WallyWest

6

{ba, z} sh, 67 - 40 72 - 60 61 - 40 = 21

$'\x74r' K-~\#-\; _@-~\^-j<<<'Mxx ){%~ 3m#q m~q 3qx{z8 ${ %#'

Chết tiệt, hóa ra tôi đã có một rcái mà tôi không nhận thấy, vì vậy 20 phần thưởng không áp dụng!


1
Trong các phiên bản zsh và bash tôi có tiện dụng, $'\x74\x72'có thể được sử dụng trực tiếp làm tên lệnh, giúp bạn tiết kiệm 8 ký tự cho $(m4<<<). Nó không hoạt động theo cách đó cho bạn?

Và sau khi xem lại lần nữa ... sử dụng \x72như một sự thay thế để mang lại cho rbạn phần thưởng 20 điểm với chi phí mất phần thưởng 30 điểm (đối với 2)

@ WumpusQ.Wumbley oh, bạn đúng trên cả hai tài khoản. Tôi đã không nghĩ đến việc 2sử dụng ở đó, hãy để tôi xem liệu tôi có thể tìm ra cách để loại bỏ nó và tránh mất bất kỳ khoản tiền thưởng nào không.
FireFly

Holy sh # t, thật tài tình! Điều này trông giống như một cypher Reverse ROT12 ASCII ... (tôi có đúng không?) Được thực hiện độc đáo!
WallyWest

Câu trả lời tốt đẹp. Nhưng có trđược tính là một nguồn lực bên ngoài?
Chấn thương kỹ thuật số

5

C, 75 byte - 60 = 15

Cảm ơn @gastropner vì đã giảm điểm từ 50 xuống 33 và từ 19 xuống 15!

*q,i;f(p){(*(q=p)="\v&&j3%?8j(+9/j+8/j(/&%$-j>%j?9J"[i++]^74)?i=!f(++p):i;}

Lấy địa chỉ của một mảng char làm đầu vào và ghi chuỗi vào mảng.

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

Gọi với:

int main()
{
    char s[128];
    f(s);
    puts(s);
}

Đầu ra:

Phiên bản cũ (90 byte - 40 = 50):

*q,i,j;f(p){for(i=3-3;j="Epp$}s v$fewi$evi$fipsrk$xs$ w"[i++];*q=j!=35-3?j-4:353/3)q=p++;}

1
Riffing về điều này, bằng cách sử dụng sức mạnh của XOR và đệ quy, bạn có thể đạt 93 - 60 = 33 byte:*q,i,j;x(p){if(j="\v&&j3%?8j(+9/j+8/j(/&%$-j>%j?9"[i++])*(q=p)=j^74,x(++p);}f(p){i=3-3;x(p);}
dạ dày

@gastropner Cảm ơn!
Steadybox

Có thể đi với i=i<30thêm 2 byte.
dạ dày

@gastropner Không thể sử dụng 0.
Steadybox

À, vâng, tất nhiên rồi!
dạ dày

4

JavaScript

(306 ký tự - 60 phần thưởng = 246) (206 ký tự - 50 phần thưởng = 156)

(123 ký tự = 173 ký tự - 50 tiền thưởng)

Loại nooby, có lẽ có thể nhận được nhiều hơn ... Hãy cho tôi biết nếu tôi đã nhồi nhét thứ gì đó, thông báo này "Tất cả cơ sở của bạn thuộc về chúng tôi". Đây cũng chỉ là ASCII.

(c=(''+!'')[4-3],x=([][3]+c)[6])[a='c\x6F'+x+'\x73t'+c+'uct\x6F'+c][a]('a\x6C\x65'+c+'t("A\x6C\x6C y\x6Fu'+c+' ba\x73\x65 a'+c+'\x65 b\x65\x6C\x6F'+x+'\x67 t\x6F u\x73")')()

Nếu bạn tính chính bàn điều khiển là đầu ra, thì điều này cũng sẽ được tính (57 có thưởng):

'A\x6C\x6C y\x6Fu'+(c=(''+!'')[4-3])+' ba\x73\x65 a'+c+'\x65 b\x65\x6C\x6F'+([][3]+c)[6]+'\x67 t\x6F u\x73'

Cách tiếp cận tuyệt vời, mặc dù một vài phần phụ thư cũng có thể cho phép bạn nhận phần thưởng Quy tắc-1 ... Làm tốt lắm.
WallyWest

@WallyWest: Cảm ơn! Vấn đề trong JavaScript là khá khó để có được "A" mà không vi phạm các quy tắc khác hoặc sử dụng quá nhiều ký tự - sẽ chỉ mất hơn 10 ký tự.
Qantas 94 Nặng

Đúng vậy, bạn phải vượt qua các chữ cái bổ sung so với tiền thưởng ... Mặc dù vậy, công việc tuyệt vời!
WallyWest

x=(c.t+c)[6]ngắn hơn một chút
Không phải Charles

Ngoài ra, evalcó thể dễ dàng hack hơn
Không phải Charles

4

Brainfuck, (227 - 60 = 167)

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

Tôi không nghĩ rằng không gian khi bắt đầu, +++++ +++++là cần thiết? Nó có thể là 226 byte.
FinW

3

PHP (35 - 60 = -25 byte)

HOW LOW CAN YOU GET ?[1] [2]

$ xxd yourbase.php 
0000000: 3c3f 3d7e be93 93df 8690 8a8d df9d 9e8c  <?=~............
0000010: 9adf 9e8d 9adf 9d9a 9390 9198 df8b 90df  ................
0000020: 8a8c 3b                                  ..;

[1] Chương trình này có thể được giải mã bằng cách sử dụng xxd -r.
[2] Yeah, tái sử dụng giải pháp nặng ở đây. Tôi nghĩ đó là ... vấn đề thứ ba tôi đã giải quyết theo cách này. Có lẽ tôi nên chuyển sang thứ khác, nhưng không phải vì thế mà nó không tốt cho những vấn đề cấm bạn sử dụng hầu hết các nhân vật.


Tôi không hiểu, bạn đang cố gắng làm gì ở đây?
WallyWest

@WallyWest Anh ấy đảo ngược chuỗi; dẫn đến 31 ký tự ASCII mở rộng, mà PHP cố gắng diễn giải thành một tên hằng và bởi vì nó không tìm thấy phiên dịch liên tục như một chuỗi. Chuỗi này được phủ định trở lại với ~.
Tít

3

Bash, 52 - 10 - 30 = 12

Sau đây sẽ được thực hiện trong môi trường ISO-8859-1 (vẫn còn khá phổ biến):

$'\x74r' À-þ  @-~<<<'Áìì ùïõò âáóå áòå âåìïîç ôï õó'

Cuộc gọi này tr, dịch các ký tự một cách phù hợp. Tôi đã phải sử dụng rvà vi phạm quy tắc 2 hoặc sử dụng một chữ số trong lối thoát và vi phạm quy tắc 3. Vì 3 cho thêm tiền thưởng, tôi đã chọn cái trước.


1
Có anh ấy đã làm :) Bạn không thể sử dụng "a", "b", "t", "u" hoặc "y" trong mọi trường hợp Ngoài ra, bạn cần tối thiểu hai trong số các điều kiện
cowls

@cowls: Có vẻ như tôi hoàn toàn bỏ lỡ điểm đó, cảm ơn vì đã làm cho nó rõ ràng. Viết lại câu trả lời của tôi để tuân thủ điều đó.
MvG

@MvG làm việc lại tuyệt vời ... Tốt lắm!
WallyWest

trtạo thành một nguồn lực bên ngoài?
Chấn thương kỹ thuật số

@DigitalTrauma: Giống như một thư viện tiêu chuẩn, tôi nói, mặc dù điều này chắc chắn có thể giải thích. Nhưng nó được chỉ định trong tiêu chuẩn POSIX , vì vậy tôi đoán rằng bất kỳ hệ thống POSIX nào cũng phải có nó, vì vậy nó là một phần của hệ thống.
MvG

3

Pure Bash (không có tài nguyên bên ngoài), 141 ký tự - 50 phần thưởng = 91

Z = ({k..v})
f = $ '\ x65'
h = $ '\ x6c'
i = $ '\ x6f'
j = $ {Z [7]}
k = $ '\ x73'
m = $ '\ x75'
$ f $ '\ x63'h $ i A $ h $ hy $ i $ m $ j ba $ k $ fa $ j $ fb $ f $ h $ i $ {Z [3]} $' \ x67 't $ iu $ k

Cố tình bỏ phần thưởng 10 điểm để có điểm tổng thể tốt hơn.

Điều này hoạt động trên mọi bashphiên bản 3.00.15 trở lên mà tôi đã thử.

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

Không có khoa học tên lửa ở đây - chỉ là bashsự mở rộng của hình thức này hay hình thức khác:

  • Mở rộng hex đơn giản để có được ký tự cần thiết. Điều này hoạt động cho các nhân vật có đại diện hex không chứa [012]. ví dụ $'\x65'cho chúng tôie
  • Đối với các ký tự khác, chúng tôi tạo ra một mảng bash các ký tự liên tiếp bằng cách sử dụng mở rộng dấu ngoặc thành một khởi tạo mảng ( Z=({k..v})). Bắt đầu mở rộng cú đúp được chọn cẩn thận để chỉ mục của các ký tự chúng tôi yêu cầu không chứa [012]. ví dụ ${Z[7]}cho chúng ta r.
  • bashđủ linh hoạt để cho phép các lệnh của nó được xây dựng từ nội dung của nhiều chuỗi. Vì vậy, $f$'\x63'h$imở rộng đến echo.
  • Đối với các ký tự chỉ được yêu cầu một lần, việc mở rộng được chèn nội tuyến vào chuỗi lệnh echo.
  • Đối với các ký tự được yêu cầu hai lần trở lên, hiệu quả hơn là mở rộng chúng thành các biến, sau đó tham chiếu các biến.

Câu trả lời trước với tiền thưởng đầy đủ, nhưng điểm tổng thể tồi tệ hơn:

Pure Bash (không có tài nguyên bên ngoài), 193 ký tự - 60 tiền thưởng = 133

Tôi biết điều này sẽ không thắng, nhưng tôi muốn chứng minh với bản thân điều này là có thể bash, trong khi đáp ứng tất cả các yêu cầu:

Z = ({3..8} {C..z})
c = $ {Z [36]}
d = $ {Z [37]}
f = $ '\ x65'
h = $ '\ x6c'
i = $ '\ x6f'
j = $ {Z [53]}
k = $ '\ x73'
m = $ '\ x75'
$ f $ '\ x63'h $ i $ {c ^} $ h $ h $' \ x79 '$ i $ m $ j $ d $ c $ k $ f $ c $ j $ f $ d $ f $ h $ i $ {Z [49]} $ '\ x67' $ '\ x74' $ i $ m $ k

Điều này không yêu cầu một phiên bản gần đây của bashviệc ${c^}mở rộng tham số. 4.2.25 là tốt, nhưng 3.2.48 là không có.


Tôi ngả mũ trước bạn ... Tôi vừa mới thực hiện điều này ... công việc tốt ... Công việc rất tuyệt.
WallyWest

@WallyWest - Tôi vừa chỉnh sửa trong một phiên bản ngắn hơn.
Chấn thương kỹ thuật số

3

Phần tái bút, 364 - 40 = 324

Tôi không thể làm điều đó mà không có loser, tất nhiên. :)

/${cvx exec}def
/+{<3C7E4F6F597E3E>$ $}def
/*{<~P&(~>$}def
/-{( )<3C7E4F754E7E3E>$ $ 3 4<~P#;~>$ 4 3<~P)#3FP'-~>$}def
/_{36(      )<~OoP~><3C7E4F754E7E3E>$ $ 4 3<~P,S~>$ 48<~P'?~>$
${96 3<~P#;~>$ + -}<~P">~>$}def
/.{_ 96 3<~P#;~>$ -}def
65 - 777 .
895 353 + _ 774 333 + .
74933 333 + 7 * 3 + 333 + .
9593 4353 + .
689653949 335 + .
735 333 + .
775 333 + _ 5 5 + -

Điều này bắt đầu với việc mã hóa văn bản dưới dạng chuỗi cơ sở 36:

%-=Encoding strings as base-36 numbers=-
%All your base are belong to us
% handle uppercase A separately
%36#ll = %777
%36#your = %1618515
%36#yo = 36#ur = 36#base = 36#are = 36#belong = 36#to = 36#us =
%1248 1107 527198 13946 689654284 1068 1108

Và sau đó loại bỏ 1 và 0 và 2 một cách hợp lý. Các chuỗi sau đó có thể được tạo lại bằng 36 <string-buf> cvrs, nhưng điều này mang lại các chữ cái viết hoa, do đó chúng ta cần lặp lại và thêm 0x20 để viết chúng thành chữ thường.

Các toán tử cvx execcho phép chúng ta thực thi các chuỗi chuỗi mã thông báo mã hóa nhị phân trong các mã hóa khác nhau. Đơn giản nhất là mã hóa một toán tử trong hex <92??>nhưng có 2 trong đó! Vì vậy, mã hóa "cấp độ đầu tiên" là ascii85. Sau đó, bất kỳ chuỗi nào vẫn chứa các ký tự bị cấm đều đi qua các cấp độ hex -> ascii85 -> hex -> ascii85.


2

Brainfuck, 306 - 60 = 246

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

Chắc chắn điều này có thể được giảm bớt bằng cách nào đó?
WallyWest

@WallyWest Tôi không có thời gian để giảm 5% một chương trình như thế này mà không có lý do: P cảm thấy thoải mái khi đăng các cải tiến, mặc dù vậy!
Timtech 16/07/2015

Không có nghĩa vụ cần thiết ở đây :)
WallyWest 16/07/2015

@WallyWest Bạn nói đúng về việc rút ngắn nó. Nó có thể sử dụng một số cải tiến lớn.
Timtech

2

PHP, 186 - 10 - 30 = 146

Tôi phải có một chút sáng tạo;)

 <?=chr(65).'ll '.chr(88+33).'o'.chr(39*3).'r '.chr(98).chr(97).'s'.chr(68+33).' '.chr(97).chr(38*3).chr(68+33).' '.chr(98).'elo'.chr(77+33).chr(69+34).' '.chr(83+33).'o '.chr(39*3).'s'?>

bạn vẫn có thể chơi golf một chút và hiểu ý tưởng câu trả lời: echo không yêu cầu dấu ngoặc đơn (1), bạn có thể sử dụng <?=thay cho echo (4), bạn có thể lưu các chữ cái lặp lại trong các biến ('l', ''). sử dụng 54*2thay vì54+54
Einacio

1
Đã sửa. Tôi chỉ có thể nhân lên một số cái nhất định. Tôi không thể làm 54*2vì nó có 2trong đó, vì vậy tôi chỉ có thể làm điều đó với những người có 3 hoặc cao hơn có một yếu tố. Nếu tôi sử dụng số thập phân, thì sẽ không có ít ký tự.
ub3rst4r

một vài mẹo chơi golf mất 50 byte. Hầu hết trong số đó (23 + 9 byte): Bạn có thể thay thế phần còn lại chr(68+33)chr(38*3)bằng chữ er.
Tít

1

Con trăn, 181 - 40 = 141

[Tôi đang sử dụng phiên bản 2.7.2 YMMV - nội dung, fileđã biến mất trong python 3.X]

f=file.__doc__;c=5-3;l=f[c];s=' ';e=f[3];h=f[6+7];i=f[c*87];j=3**3;f[j*c*5]+l+l+s+f[-57]+h+f[j-7]+f[j-3]+s+f[j-8]+f[6]+i+e+s+f[6]+f[j-3]+e+s+f[j-8]+e+l+h+f[5]+f[j]+s+f[45]+h+s+f[j-7]+i

1

Con trăn (104 - 30 = 74)

>>> '\x41\x6c\x6c \x79\x6f\x75\x72 \x62\x61\x73\x65 \x61\x72\x65 \x62\x65\x6c\x6f\156\x67 \x74\x6f \x75\x73'
'All your base are belong to us'

Và điểm số:

>>> len(r"'\x41\x6c\x6c \x79\x6f\x75\x72 \x62\x61\x73\x65 \x61\x72\x65 \x62\x65\x6c\x6f\156\x67 \x74\x6f \x75\x73'")-30
74

Hoàn thành tốt, nhưng bạn thực sự không cần phải làm như vậy để xác định điểm số ...;)
WallyWest

1

Quai bị, 150 - 60 = 90. 40 = 110

S J=" ",Z=36*3,C=37*3,D=38*3,Q=39*3,I=35*3-4 W *65,*Z,*Z,J,*484/4,*C,*Q,*D,J,*98,*97,*C+4,*I,J,*97,*D,*I,J,*98,*I,*Z,*C,*D-4,*Z-5,J,*C+5,*C,J,*Q,*C+4

Tôi không chắc liệu nó có thể được thực hiện ngắn hơn (về tổng thể) hay không bằng cách không nhận được một trong số các phần thưởng mã - mục tiêu của tôi là ít hơn một chút về độ ngắn và thêm một chút vào -60 ... Tôi thích thử thách không sử dụng bất kỳ ký tự bị hạn chế.

Và ... tôi đã ủng hộ nó - bỏ lỡ lệnh 'S' bắt đầu. : - /

Dù sao, đây là phiên bản "không có quy tắc" - mở rộng các biến.

W *65,*36*3,*36*3," ",*484/4,*37*3,*39*3,*38*3," ",*98,*97,*37*3+4,*35*3-4," ",*97,*38*3,*35*3-4," ",*98,*35*3-4,*36*3,*37*3,*38*3-4,*36*3-5," ",*37*3+5,*37*3," ",*39*3,*37*3+4

Và điều đó mang lại cho nó số điểm 177-60 = 117. Vì vậy, việc phá vỡ quy tắc trung tâm vẫn cho tôi điểm tổng thể thấp hơn.


Câu trả lời thú vị ... Có trình giả lập trực tuyến nào tôi có thể truy cập để thực thi mã này không?
WallyWest

1
Theo hiểu biết của tôi, nhưng có những phiên bản cho Quai bị chạy trên mọi nền tảng - thậm chí có những phiên bản sẽ chạy trên Raspberry Pi nếu bạn muốn có một máy Quai bị rất nhỏ ... :-)
zmerch

1

Perl 5, 99 - 50 = 49

Một chương trình con trả về chuỗi yêu cầu:

{A.($c=h|d)."$c y".($f=f|k).u.($k=p|b)." ba".($j=c|p).($d=d|a)." a$k$d b$d$c$f".(jf|fc)." t$f u$j"}

Xem nó được in như vậy:

perl -e'print sub{...}->().$/'

1

BF-RLE , 146 - 30 = 116

+5[>+5<-]>+.<+4[>+3<-]>+..>>+3[<+2>-]<++.<+A.-7.+3.-0.>.<<+1[>-1<-]>.-.<+0[>+3<-]>.-B.>.<-1.<+1[>+1<-]>+.-A.>.<-0.+0.+4.+0.-.-4.>.<+A.-2.>.<+3.--.

Điều này có thể được rút ngắn đáng kể
Timtech
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.