Xin chào thế giới với một twist


17

Mục tiêu của bạn : viết một đoạn mã sẽ dẫn đến kết quả kinh điển của "Xin chào, thế giới!" được in thành STDOUT hoặc tương đương.

Quy tắc : Mã phải hoàn toàn trong việc in ASCII. Tất cả các mã phải có chức năng - loại bỏ bất kỳ ký tự đếm đơn lẻ nào phải thay đổi kết quả hoặc khiến mã không hoạt động. Tất cả các biến phải được sử dụng sau khi gán. Chữ ký tự và chuỗi ký tự phải cần thiết cho đầu ra - nghĩa là thay thế bất kỳ ký tự nào hoặc bất kỳ ký tự nào trong một chuỗi ký tự bằng một ký tự khác phải có khả năng thay đổi kết quả (và không thông qua hiệu ứng của chuỗi thoát - thay thế ký tự bằng dấu gạch chéo ngược hoặc tương đương)

(LƯU Ý: Quy tắc cuối cùng đã được chỉnh sửa trong)

Ghi điểm : Đây là nơi nó trở nên thú vị. Điểm số cao nhất chiến thắng được xác định theo số lượng ký tự, theo quy tắc bowling-bowling điển hình. Nhưng việc sử dụng lặp lại các ký tự sẽ dẫn đến các điểm trừ. Đặc biệt...

  1. Việc sử dụng lặp lại bất kỳ ký tự chữ và số nào (az, AZ, 0-9) sẽ dẫn đến việc bị trừ 3 điểm mỗi lần lặp lại (lần sử dụng đầu tiên không dẫn đến việc khấu trừ).
  2. Việc sử dụng lặp lại các dấu câu cơ bản ([!? .-, ": ';]) - bao gồm cả dấu ngoặc - sẽ dẫn đến việc trừ 2 điểm mỗi lần lặp lại.
  3. Việc sử dụng lặp lại các ký tự ASCII khác {`~ @ # $% ^ & * _ + = | \ /> <} - bao gồm cả dấu ngoặc nhọn - sẽ dẫn đến việc trừ 4 điểm mỗi lần lặp lại.
  4. Việc sử dụng lặp lại các khoảng trắng, tab và dòng mới sẽ dẫn đến việc bị trừ 1 điểm mỗi lần lặp lại. Đó là, chỉ lần đầu tiên sử dụng một khoảng trắng, tab hoặc dòng mới sẽ được tính vào tổng số của bạn.

Lưu ý: các bình luận không được tính vào tổng số, mặc dù các ký tự đánh dấu bắt đầu / kết thúc của một bình luận làm. Chẳng hạn, trong C / C ++, nếu bạn có /* This is a comment */, thì nó sẽ đếm hai dấu gạch chéo và hai dấu sao, nhưng không có gì giữa chúng.

Một số ví dụ (lưu ý: sử dụng Julia làm ngôn ngữ mẫu) ...

print("Hello, world!");

Tổng số ký tự hiển thị: 22
Chứa không gian: +1
Chữ số lặp lại: -12 cho llor
Dấu chấm lặp lại: -2 cho "
Điểm cuối cùng: 22 + 1-12-2 = 9

print("Hel",char(108),"o, wor",0x108,"d!"); # 0x108 makes a Uint8 that prints as ASCII

Tổng số ký tự: 43 (không tính bất kỳ ký tự nào sau #, là ký tự nhận xét)
Chứa
khoảng trắng : +1 Chữ số lặp lại: -18 cho rr1008
Dấu chấm lặp lại: -24 cho () "" "" ",,,,,
Cuối cùng điểm: 43 + 1-24-18 = 2

xy=STDOUT
m="Hello, world!"
print(xy,m);

Tổng số ký tự hiển thị: 37
Chứa dòng mới: +1
Chứa không gian: +1
Chữ số lặp lại: -18 cho xyllor
Dấu chấm lặp lại: -4 cho ",
Lặp lại ASCII khác: -4 cho =
Điểm cuối cùng: 37 + 1 + 1-18-4 -4 = 13

Một vài đoạn mã không hợp lệ ...

x=2;print("Hello,world!")  

Vấn đề: xđược chỉ định, nhưng không được sử dụng.

print("Hello,"*" world!")  

Vấn đề: *là không cần thiết, kết quả sẽ giống nhau mà không có nó.

k=1
if k>0
  print("Hello, world!")
else
  print("abcghjmquvxyzABCDEFGIJKLMNOPQRSTUVWXYZ_+*-&|")
end  

Vấn đề: Lệnh thứ hai printsẽ không chạy. Ngoài ra, loại bỏ các ký tự trong trích dẫn trong printlệnh thứ hai sẽ không thay đổi đầu ra.

x="Hello, world!";
print(x)  

Vấn đề: loại bỏ dòng mới sẽ không thay đổi kết quả hoặc gây ra lỗi (trong Julia, dấu chấm phẩy chỉ cần thiết nếu nhiều lệnh nằm trên cùng một dòng, nếu không thì chỉ cần loại bỏ giá trị trả về).

print("Hellos\b, world!")  

Vấn đề: snhân vật không ảnh hưởng đến kết quả, vì nó bị xóa bởi \b. Điều này được chấp nhận nếu được thực hiện thông qua mã ( "Hello",char(100),"\b, world!"), nhưng không thể được thực hiện thông qua chuỗi ký tự hoặc ký tự.

Máy tính điểm thuận tiện - http://jsfiddle.net/4t7qG/2/ - cảm ơn Doorknob



1
Điều này có vẻ phù hợp với cuộc thảo luận của bạn meta.codegolf.stackexchange.com/questions/777/iêu
Martin Ender

3
Tôi đã tạo một JSFiddle nơi bạn có thể đặt mã của mình và nó sẽ tự động tìm ra điểm số của bạn. Bạn có ổn không khi tôi chỉnh sửa một liên kết đến nó trong bài viết?
Doorknob

1
@Dennis - nếu chương trình của bạn tạo ra một dòng mới vì lệnh, không có vấn đề gì (ví dụ, println in Julia và sau đó thêm một dòng mới vào cuối). Nhưng nó không nên là một phần của chuỗi.
Glen O

1
@ACarter - về cơ bản, vâng. Nhưng những hạn chế và các khoản khấu trừ làm cho nó không tầm thường.
Glen O

Câu trả lời:


17

Perl - 96

(Khá tốt, với số điểm tối đa lý thuyết là 97)

s{}[Hel0o, w3$=d!];y<"#%&'*.124578:?@BCDEFGIJKLMNOQ/-9>(
    6PRSTUVWXYZ^_`abfghjmqvxz|~\cAk-u)+print

(Lưu ý rằng dòng thứ hai bắt đầu bằng một \tký tự tab thực tế )

Mã này dài 98 ký tự và chứa mỗi ký tự ascii chính xác một lần, cộng thêm -.
98 - 2 = 96

Không có chuỗi ký tự ở đây, nhưng loại bỏ bất kỳ ký tự đơn nào phá vỡ chương trình.

Khử mùi

Có 3 câu lệnh trong chương trình này (tốt, thực ra là 2 nhưng tôi đã lạm dụng +như một loại dấu tách câu lệnh)

  1. s{}[Hel0o, w3$=d!]
    Đây là một trường hợp rất căng của toán tử sed. Nó thường được viết là s/a/b/, hoặc s:a:b:, nhưng perl cho phép tưởng tượng nhiều hơn ở đây: s(a)(b) s(a)^b^ s(a)[b]và thậm chí s qaqbq.
    Nó thay thế một chuỗi rỗng (bên trong {}) bằng Hel0o w360d!(bên trong []) ( $=nội suy 60theo mặc định). Bởi vì thiếu một ~=nhà điều hành, nó hoạt động trên $_.

  2. y<"#%&'*.124578:?@BCDEFGIJKLMNOQ/-9>(\n\t6PRSTUVWXYZ^_`abfghjmqvxz|~\cAk-u)
    Đây cũng là một trường hợp rất kéo dài, nhưng của một trtoán tử, còn được gọi là y( y< >( )).
    Hãy nhìn vào bảng thay thế:
    " # %&'*.124578:?@BCDEFGIJKLMNOQ /-9
    \n\t6PRSTUVWXYZ^_`abfghjmqvxz|~\cA k-u
    Tôi đã di chuyển một số ký tự xung quanh để chuỗi hiện tại không bị hỏng. Phần thực sự duy nhất ở đây là /-9-> k-u. Nó thay thế 0bằng l, 3với o6với r.
    Một lần nữa vì thiếu ~=toán tử, nó hoạt động trên $_
    Vì vậy, bây giờ chúng ta có cụm từ hoàn chỉnh trong $_biến.

  3. print
    Thiếu đối số làm cho nó chỉ in $_biến.


Tôi không biết Perl đủ để nhận xét về điều này - tập hợp các ký tự giữa <và + đang làm gì?
Glen O

@GlenO Chỉ /-9k-uthực sự được sử dụng để chuyển đổi chuỗi. Phần còn lại là một thùng rác có kích thước tương đương . Nếu bạn xóa chỉ một char, các bộ sẽ điều chỉnh sai và chương trình sẽ không xuất ra "Xin chào, thế giới!" nữa không.
mniip

Trong trường hợp đó, "rác" được thực thi theo cách nào? Đó là, theo cách nào là chức năng? Nếu nó chỉ là phụ được mã nhảy qua, thì nó tương đương với mã không chạy trong một điều kiện.
Glen O

3
@GlenO Không phải vậy. Theo thông số kỹ thuật: <...> removal of any single counting character must change the result or cause the code to not function.Loại bỏ 1 ký tự bất cứ nơi nào phá vỡ nó. Bạn có thể làm cho nó hoạt động bằng cách xóa 2 ký tự, nhưng điều đó không nằm trong quy tắc.
mniip

2
All code must be functional. Bạn rõ ràng đang bẻ cong các quy tắc, ít nhất là. Tôi không nói "nó phá vỡ các quy tắc" hoàn toàn, nhưng nó chắc chắn có vấn đề.
Glen O

7

Câu trả lời này đã được tạo trước khi thêm quy tắc về chuỗi ký tự và không tham gia cuộc thi.

#include <iostream>
int main(){std::cout<<56+"  !$%^&*?12347890-_QWERTYUIOPASDFGJKLZXVBNM,.qypfghjk:zvbHel\x6Co, world!";}

Nó hoàn toàn hợp pháp. : P Nếu bạn xóa bất kỳ ký tự nào khỏi chuỗi đó, nó sẽ in ello, world!.


Vui lòng bao gồm số điểm của mã của bạn trong câu trả lời của bạn.
Chương trìnhFOX

Ngoài ra, nó sẽ không thay đổi điểm số của bạn, nhưng các khoảng trống xung quanh <<cần phải được loại bỏ.
Martin Ender

1
Hmmm ... trong khi tôi hoan nghênh câu trả lời của bạn, nó chủ yếu tiết lộ một lỗ hổng nhỏ trong những hạn chế của tôi. Tôi sẽ cung cấp cho bạn một upvote và tôi rất vui khi những người khác làm điều tương tự nếu họ thích nó, nhưng tôi sẽ chỉnh sửa trong một hạn chế bổ sung.
Glen O

1
OK, hơn nữa với nhận xét trước đây của tôi, giờ đây tôi đã thêm một hạn chế nói rằng chuỗi ký tự và ký tự phải có liên quan - thay thế các ký tự trong chúng phải có thể thay đổi kết quả. Điều này cho phép các if 'x'>'w'kỹ thuật, nhưng chặn "k \ bH" dẫn đến "H", ví dụ. Hãy đóng góp một câu trả lời thứ hai sau hạn chế được thêm vào.
Glen O

4

CJam, 94

{'H"EJO, WoRLD!"el96A+c/~_-3=0$@}"# 
`&^<>|;:?.()[]\1aBCdfFgGhiIjkKmMnNpPqQrsStTuUvVwxXyYzZ"254b87%*

Hãy thử trực tuyến! Lưu ý rằng cần có một trình lập bảng ngay trước nguồn cấp dữ liệu. SE không thích lập bảng, vì vậy bạn sẽ phải chèn thủ công.

  • Dài 100 ký tự
  • lặp lại alnum: -0 ()
  • dấu câu lặp lại: -6 ("" ")
  • lặp lại khác: -0 ()
  • khoảng trắng lặp lại: -0 ()

Tổng số điểm: 94

Tôi đã sử dụng đoạn mã sau để kiểm tra xem không có ký tự nào trong chuỗi có thể bị xóa:

"#  
`&^<>|;:?.()[]\1aBCdfFgGhiIjkKmMnNpPqQrsStTuUvVwxXyYzZ"
:A,,{_A\<A@)>+254b87%}%`

Nó in một mảng hiển thị số lần Xin chào, thế giới! sẽ được in nếu ký tự tương ứng với chỉ mục bị xóa.


Khi tôi chạy nó trong liên kết của bạn, nó tạo ra "Xin chào, thế giới!" sáu lần liên tiếp Ngoài ra, chuỗi các nhân vật đang làm gì?
Glen O

Tôi đoán dòng mới là sai lầm - loại bỏ nó làm cho nó hoạt động.
Glen O

Vấn đề sao chép-dán. Cần có một bảng lập trình ngay trước khi có. Có vẻ như SE sẽ không cho phép tôi làm điều đó ... Chuỗi được coi là số cơ sở-254 ( 254b). Mô-đun kết quả cuối cùng 7 phải là 1, vì vậy khối mã trước đó được thực thi một lần. Tôi sẽ cần một mô-đun để làm cho mỗi nhân vật cần thiết.
Dennis

Vâng, sau khi thêm trong tab mất tích (mà không "sửa chữa" mã), loại bỏ các Z, các T, hoặc có thể là một vài nhân vật khác không thay đổi kết quả.
Glen O

Tôi đã giải thích sai một cách khủng khiếp một phần câu hỏi của bạn. Bây giờ nó đã được sửa.
Dennis

3

Ruby, 28 41

Chỉ cần bắt đầu câu trả lời với một giải pháp theo tinh thần của câu hỏi:

print"He#{?l*2}o, "+'world!'if[$`&(9<=>6)^7|~8-5/3.1%0x4]

Ghi điểm (Tôi nghĩ rằng tôi đã đúng):

  • Dài 57 ký tự
  • lặp lại alnum: -12 ( orli)
  • dấu câu lặp lại: -4 ( "')
  • lặp lại khác: -0
  • khoảng trắng lặp lại: -0

Có vẻ tốt với tôi, ghi bàn khôn ngoan. Không cần bao gồm các hình phạt không áp dụng, nhưng không có hại trong việc bao gồm chúng.
Glen O

Các .trong 3.1có thể được gỡ bỏ mà không có vấn đề. Như có thể xtrong 0x4hoặc -trong 8-5.

3

PHP, 1 (vâng, một điểm!)

Sử dụng các ký tự ma thuật để tạo tổng kiểm tra, ở dạng nhị phân khớp với "Địa ngục", "o, w", "orld" và "!".

Thông thường tôi thích tìm sơ hở, nhưng lần này tôi quyết định chơi theo tinh thần và ý định của cuộc thi. Mỗi nhân vật và vị trí của nó là cần thiết cho đầu ra. Những nơi duy nhất bạn có thể thay thế là tên biến mà không phải là các giá trị văn chương, những khoảng trắng giữa phpforeachtrong đó PHPxử lý như tương đương, và sử dụng 'vs "PHPxử lý như tương tự.

<?php foreach(array('_MC:`~+V4@SbHR/l[J','dN#UB`5!Rv^NG@D}','9gm6L&-kuD','8OM97g.q]XQ0')as$j)print(hash("crc32",$j,1))?>

FYI, đây là một số chuỗi ma thuật và băm quan tâm khác:

E.D}S:  Hell
9UDIRQ: Hell
N\7&*`%:    orld
UWX[E^O:    orld
mAHzDEb:    !   
uLJ7Ck&:    Hell
B+bG5mYJ:   Hell
:OvMzuOR:   !   
TgYR9g!6k:  o, w
NkFN`!8mI:  o, w
N#VA\j~}J[: Hell
vEl*]@0XQ5: o, w
9gm6L&-kuD: orld
*}{Xg@HN`\: !   
Pj@Y44uA6YJ:    Hell
|7OX0VF8gv}:    !   
DLRJAjgMj}\:    !   
!0bT*D}O4Lw:    orld
YGN97^v7ZY`:    Hell
++~bL/kP:|]W:   o, w
8OM97g.q]XQ0:   !   
l^m-DqZ^g[&+:   !   
Ewu]Rv~*DHQ7:   Hell
JIqjgF|S!\`8l:  Hell
b4l!MEG7vTu6/:  Hell
+B:zEq*J\k-Cm:  !   
_}E7wZD76^`Y9AU:    orld
q:Nq-~+_S7~N9Hz:    !   

Các chức năng mã vẫn còn nếu tôi tháo \t, \nhoặc không gian. Không phải là một chuyên gia PHP, nhưng ;dường như là tùy chọn.
mniip

@mniip - Chỉnh sửa được thực hiện. Tôi đã không biết dấu chấm phẩy là tùy chọn trong một số trường hợp.

3

Befunge-98 , 97 điểm!

"v!dlrow ,h
B[CDEFGIJkLMNOPH
$<QRSTUV@|5cg1fe':-%\64*ab+7_/89}{0  j2
WXYZK`.=#>]
s()impq	n 3~
Atuxz&;y^ ?

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

Các tab là giữa qn.

Sử dụng một mẹo tương tự như câu trả lời Befunge trước đó để đệm các dòng với các ký tự còn lại, nhưng tránh sử dụng các ký tự trùng lặp trong phần thực thi. Loại bỏ bất kỳ ký tự không thực thi nào dẫn đến việc các bộ phận thực thi không đúng vị trí, thường kết thúc bằng các vòng lặp vô hạn hoặc in sai đầu ra.

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

Thực sự, phần thực thi duy nhất trông giống như:

"v!dlrow ,h
         k     H
$<      @|5cg1fe':-%\64*ab+7
         >]
        ^ ?

Đầu tiên, nó sử dụng một chuỗi ký tự theo nghĩa đen để thêm , world!vào ngăn xếp. Điều này tránh hai "s.

$<      @|5cg1fe':-%\64*ab+7

Điều này thêm Hellovào ngăn xếp bằng nhiều phương thức khác nhau để tránh các ký tự trùng lặp. $bật lên không gian thừa gây ra bởi chuỗi gói theo nghĩa đen.

7+thêm 7 vào hcuối từ chuỗi ký tự để tạo o . ba*46\%:tính toán 111, giá trị ascii của lvà nhân đôi nó.

'e thêm e vào ngăn xếp.

f1g có được nhân vật ở 1,15, đó là H

Sau đó, nó sử dụng lại ,trong chuỗi để in ra toàn bộ Hello, world!. Phần còn lại chỉ là thay đổi hướng để điều hướng đến kết thúc @.


1

Ruby, 78

Lạm dụng nhiều quy tắc hơn, tôi cảm thấy như thế, không chắc chính xác bản vá là gì. Lấy một chuỗi dài và kiểm tra tổng kết quả, do đó, bất kỳ việc xóa hoặc thay đổi nào cũng sẽ khiến chương trình bị lỗi. Có lẽ có thể được tối ưu hóa một chút để loại bỏ trùng lặp một số chữ cái và có khoảng trắng trong đó.

puts('Hello, world!')if%["\#$&*+-/:;<>?@ABCDEFGIJKLMNOPQRSTUVWXYZ^_`abcghjknqvxyz{|}~123].sum==4980

3
Vấn đề là, tất cả mọi thứ sau và bao gồm ifcó thể được gỡ bỏ.
xem

@TheRare - không có gì sai với điều đó, miễn là ifthực sự hoạt động và những thứ sau khi nó vẫn tuân thủ các quy tắc.
Glen O

@GlenO Nhưng nó không được tính là "mã di động"? Chỉ cần puts('Hello, world!')làm việc. Tôi nghĩ rằng các quy tắc cần làm rõ nếu điều này là hợp pháp.
xem

@TheRare - trong nhận thức muộn, có lẽ tôi nên sử dụng một "tập hợp con của mã không nên có khả năng tạo ra cùng một đầu ra", nhưng tôi không nghĩ mình nên tiếp tục thay đổi quy tắc. Khi họ đứng, miễn là mã có chức năng và không độc đoán, và tuân theo các quy tắc khác, điều đó là hợp pháp. Ít nhất, phương pháp giải pháp này không thể đạt được trong hầu hết các ngôn ngữ (bản chỉnh sửa tôi đã thực hiện để đóng một kẽ hở hoạt động trong hầu hết các ngôn ngữ).
Glen O

@GlenO Bạn là thẩm phán. Chỉ cần yêu cầu tôi xóa những bình luận này nếu bạn cảm thấy chúng không cần thiết.
xem

1

PHP, 2257

Lỗ hổng: dấu gạch chéo ngược được bỏ qua từ thông số kỹ thuật và máy tính điểm!

Mã này đếm số lần xuất hiện của dấu gạch chéo ngược trong mỗi chuỗi và in tương đương ASCII. Thay thế bất kỳ dấu gạch chéo ngược nào bằng ký tự khác hoặc xóa dấu gạch chéo ngược, gây ra lỗi phân tích cú pháp hoặc thay đổi kết quả.

Một tính năng gọn gàng về dấu gạch chéo ngược và PHPlà chúng cần được thoát, để nhân đôi số điểm tự động! Bạn có thể nhân đôi, nhân ba, v.v., điểm số bằng cách nhân số lần gạch chéo ngược, nhưng không muốn tham lam và tôi nghĩ nó có thể vượt quá giới hạn của những gì bạn có thể nhập.

<?php foreach(array('\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\','\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\','\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\','\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\','\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\','\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\','\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\','\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\','\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\','\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\','\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\','\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\','\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')as$x)print(chr(substr_count($x,"\\")))?>

Rõ ràng không có gì hơn một lỗi đánh máy trong mô tả, không phải là một lỗ hổng. Hơn nữa, bạn đã biết điều đó rồi. Mô tả không nói rõ ràng "các ký tự ASCII khác". Vào thời điểm bạn đọc nó, nó sẽ được chỉnh sửa để bao gồm nó.
Glen O

Cụ thể, dấu gạch chéo ngược là nguồn gốc của câu hỏi, nhưng tôi đã không nhận ra rằng nó đã coi nó như một chuỗi thoát.
Glen O

Đây không phải là một sự thay đổi trong các quy tắc, nó sửa một lỗi đánh máy nhỏ. Dấu gạch chéo ngược nằm trong quy tắc, nó chỉ không hiển thị (để tự mình xem, hãy nhấp vào nút "đã chỉnh sửa", sau đó nhấp vào "đánh dấu bên cạnh"). Và những người khác không khai thác sơ hở, họ đang khai thác các tính năng của ngôn ngữ của họ.
Glen O

1

Befunge - 87

"dlrow ,olleH"bk,                                                                   v
!#$%&'()*+-./0123456789:;  <=>?ABCDEFGIJKLMNOPQRSTUVWXYZ[\]^_`acfghijmnpqstuvxyz{|}~@

Dòng đầu tiên có giá trị bốn điểm do tất cả các lần lặp lại, nhưng không có ký tự trùng lặp trên dòng thứ hai. Chuỗi ký tự duy nhất trong mã này là dlrow ,olleH, được đảo ngược và in dưới dạng đầu ra. Xóa bất kỳ một ký tự nào sẽ ngắt kết nối vở cuối dòng đầu tiên từ @cuối dòng thứ hai, khiến chương trình không bao giờ kết thúc. Nếu vchính nó bị loại bỏ, thì mã sẽ đi vào một vòng lặp vô hạn in ra đầu ra chính xác.



0

Acc !! , -138 (và có, đó là âm 138)

Mặc dù đây có thể không chính xác là điểm số tốt nhất tôi từng đạt được trong PPCG, tôi nghi ngờ nó có thể cao hơn điểm này trong Acc !!

108
Write 72
Write 101
Count i while i-2 {
	Write _
}
Write _+3
Write 44
Write 32
Write 119
Write 111
Write 114
Write _
Write 100
Write 33

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.