Mã và đầu ra có thể sửa đổi được của Boggle: Phiên bản CnR (Cops)


8

Đây là chủ đề của Cảnh sát. Chủ đề của bọn cướp ở đây .

Lý lịch

Boggle là một trò chơi bảng trong đó người chơi phải tìm các từ tiếng Anh trên bảng chữ cái ngẫu nhiên 4 x 4. Các từ có thể được xây dựng bằng cách chọn các ô liền kề liên tiếp trên bảng. ("Liền kề" có nghĩa là liền kề theo chiều ngang, chiều dọc hoặc đường chéo.) Ngoài ra, cùng một ô không thể được sử dụng nhiều lần trong một từ.

Sau đây là một bảng ví dụ:

I L A W
B N G E
I U A O
A S R L

Trên tàu này, BINGO, ORANGEWEARSlà những từ hợp lệ, nhưng SURGERUSSIAkhông:

  • SURGE: Không có cặp liền kề trên bảng có RG.
  • RUSSIA: Skhông thể được sử dụng hai lần.

Đã sửa đổi Boggle là phiên bản sửa đổi của Boggle, với các quy tắc sau:

  • Kích thước bảng là m-by- n, trong đó mncó thể là bất kỳ số nguyên dương nào.
  • Mỗi ô có thể chứa bất kỳ một byte nào trong khoảng từ 0 đến 255.
  • Một ô có thể được sử dụng nhiều lần, nhưng không hai lần liên tiếp.

Sử dụng bảng ví dụ ở trên, ngoài BINGO, ORANGEWEARS, LANGUAGEtrở thành một chuỗi hợp lệ (vì Gđược sử dụng hai lần, nhưng không phải hai lần liên tiếp) nhưng RUSSIAvẫn không (do SScặp).

Đây là một ví dụ khác sử dụng một đoạn mã. Chuỗi from itertools import*\ncó thể được tìm thấy trên bảng sau, nhưng không from itertoosl import*hoặc from itertools import *:

f   i   ' ' s
r   t   m   l
e   o   o   p
\n  *   t   r

Lưu ý rằng bạn cần hai ogiây để khớp với oochuỗi.


Thử thách của Cop

Viết một chương trình đầy đủ bằng ngôn ngữ bạn chọn đáp ứng các quy tắc sau:

  • Chương trình sẽ in một cái gì đó phù hợp qua nhiều lần chạy.
  • Chương trình sẽ kết thúc sau khoảng 5 giây.
  • Chương trình có thể không có bất kỳ đầu vào.
  • Cả chương trình và đầu ra phải có ít nhất 2 byte.
  • Bất cứ điều gì liên quan đến hàm băm, PRNG hoặc mật mã đều không được phép.

Sau đó, bố trí chương trình của bạn xuất thành hai bảng boggle sửa đổi riêng biệt . Mỗi bảng có thể là một hình vuông. Lưu ý rằng các bảng 1-by-N và 2-by-N có thể đặt ra những thách thức đặc biệt cho cả cảnh sát và tên cướp. Nếu bạn muốn một số ô trên bảng không sử dụng được (để thêm hạn chế), bạn có thể chọn một số byte vô dụng và lấp đầy các lỗ với chúng.

Ví dụ: nếu bạn muốn lưới 2x2 chỉ có chuyển động ngang / dọc, bạn có thể thực hiện việc này thay thế:

a b
c d
-----------
X a X
c X b
X d X

Trong bài gửi của bạn, chỉ định ngôn ngữ bạn đã sử dụng, độ dài của mã nguồn và đầu ra và hai bảng boggle. Lưu ý rằng mã ngắn hơn và / hoặc đầu ra dài hơn được phép cho kẻ cướp , vì vậy bạn có thể chọn cung cấp một số chỗ cho số byte (nghĩa là chỉ định mã dài hơn và / hoặc đầu ra ngắn hơn giải pháp thực tế của bạn).

Nếu bảng của bạn chứa một số ký tự không thể in được, bạn có thể chỉ định bảng dưới dạng giá trị byte thay thế.

Sau một tuần cảnh sát được đăng, nó có thể được đánh dấu an toàn bởi người đăng nếu nó không bị bẻ khóa cho đến lúc đó. Cảnh sát vẫn mở cho bọn cướp cho đến khi nó thực sự được đánh dấu an toàn. Một cảnh sát an toàn không thể bị bẻ khóa, và người đăng sẽ tiết lộ giải pháp dự định.

Bạn sẽ muốn làm xáo trộn các bảng càng nhiều càng tốt, vì thách thức của tên cướp là phá vỡ trình của bạn bằng cách tìm mã và đầu ra của nó trên bảng. Nếu bạn muốn nhồi nhét một mã dài vào một bảng nhỏ, câu trả lời cho thử thách Modgle gốc được sửa đổi có thể đưa ra một số hiểu biết.

Chấm điểm cho cảnh sát

Vì thật khó để nói rằng một bảng lớn hơn hay nhỏ hơn khó bị bẻ khóa hơn, mỗi lần gửi cảnh sát an toàn được tính là một điểm 1. Người dùng có số điểm cao nhất sẽ thắng. Đó là khuyến khích tham gia với các ngôn ngữ và cách tiếp cận sáng tạo khác nhau.

Sao chép ví dụ & định dạng

# Japt, code 9 bytes, output 20 bytes

Code board: 2 rows, 2 columns

    `l
    íÏ

As byte values:

    96  108
    237 207

Output board: 3 rows, 3 columns

    175
    120
    643

Kịch bản xác minh Boggle đã sửa đổi

Tất cả các tập lệnh dưới đây có một ví dụ đầu vào với nó.

Tập lệnh cho chuỗi ký tự (mã / đầu ra) & boggle. Điều này không hỗ trợ chuỗi nhiều dòng. Định dạng đầu vào là

  • một dòng chuỗi (mã hoặc đầu ra), theo sau là
  • bảng boggle thô.

Script cho chuỗi ký tự với giá trị byte. Sử dụng điều này nếu chuỗi mục tiêu có thể in được nhưng có một hoặc nhiều dòng mới trong đó. Định dạng đầu vào là

  • số lượng dòng cho chuỗi,
  • chuỗi thô (có thể là nhiều dòng), sau đó
  • bảng boggle như các giá trị byte.

Tập lệnh cho chuỗi giá trị byte & boggle. Sử dụng điều này nếu chuỗi mục tiêu chứa một hoặc nhiều ký tự không thể in được. Định dạng đầu vào là

  • một dòng chuỗi (mã hoặc đầu ra) dưới dạng giá trị byte, theo sau là
  • bảng boggle như các giá trị byte.

Chỉ để đảm bảo, cả hai byte đầu ra và đầu vào đều có thể được sử dụng lại, nhưng không thể được sử dụng hai lần liên tiếp, phải không?
maxb

@maxb Bạn đúng, ngoại trừ mã đó , không phải đầu vào (mã hoàn toàn không thể lấy đầu vào).
Bong bóng

Sai lầm của tôi, tôi có nghĩa là mã. Có giới hạn nào về chiều dài đầu ra không?
maxb

@maxb Không có giới hạn, nhưng lưu ý rằng chương trình của bạn sẽ chấm dứt sau 5 giây.
Bong bóng

Tôi đã cố gắng đưa ra một đầu ra không tầm thường cho việc cân não chỉ bằng cách sử dụng []+., nhưng tôi nghĩ nó có thể là không thể. Có ai quan tâm để thử không?
Jo King

Câu trả lời:


3

JavaScript, mã 1443 byte, đầu ra 3 byte, bị bẻ khóa trong giây lát bởi @ShieruAsakoto

Bảng mã, 3 hàng 4 cột

!![+
+[]]
+]()

Bảng đầu ra, 1 hàng bằng 2 cột

aN

Rõ ràng những gì đầu ra là. Nó sẽ là mã mà vui để bẻ khóa. Quên đề cập rằng nó được dự định là một chương trình đầy đủ (và có nghĩa là nó không phải, xem đoạn dưới đây). Đối với thử thách thực sự, xem câu trả lời khác của tôi .

Tôi không nghĩ đây là Node.js, nhưng kiến ​​thức của tôi trong lĩnh vực này là con số không. Điều tôi có thể nói là nó chạy trong bảng điều khiển của tôi trong cả Edge và Chrome.


1
Cái gì mà JSF ** k! lmao, và tôi đặt cược đầu ra làNaN
Shieru Asakoto

@ShieruAsakoto Bạn đã có một vết nứt hợp lệ. Tôi sẽ hoàn nguyên điều này về trạng thái ban đầu và bạn có thể phục hồi câu trả lời của mình. Tôi sẽ gửi lại với sự làm rõ.
Khuldraeseth na'Barya


3

JavaScript (Node.js), mã 53 byte, đầu ra 41 byte, bị bẻ khóa bởi Arnauld

Bảng mã: 3 hàng bằng 6 cột:

cog(n)
lsn1()
e.+<<;

Bảng đầu ra: 4 hàng bằng 6 cột:

481534
270906
602148
53829n

Gợi ý: mã chỉ hoạt động trên các công cụ V8 JS, phiên bản 6.7 trở lên

Của tôi là console.log(1n+1n+1n<<(1n+1n+1n+1n<<1n+1n+1n+1n+1n));với dấu chấm phẩy (đừng hỏi tại sao) và đầu ra là có, 3 * 2**128với một dấu nđánh dấu số là một chữ BigInt.


2
Nếu điều này không bắt đầu console.log, tôi sẽ rất ấn tượng
Quintec

2
Số một mình không thể được in là 41 chữ số. Cần có một cách để truyền vào một chuỗi, nhưng ... consolekhông có sẵn ngoại trừ khi bắt đầu, không có phép gán, không có chuỗi bằng chữ, không có dấu ngoặc (do đó không có mảng theo nghĩa đen cũng như lập chỉ mục). Tôi thậm chí đã kiểm tra toàn cầu Node và consolethuộc tính của Node , nhưng không có gì phù hợp ở đó.
Bong bóng


2

JavaScript (Node.js), mã 88 byte, đầu ra 2 byte, được Arnauld bẻ khóa bằng 27 byte

Bảng mã: 7 hàng bằng 9 cột:

e.i--)=%5
lc;,2s*17
fosn8407%
gnr785138
s(;527067
=);s%1419
4n,i=1832

Bảng đầu ra: 1 hàng bằng 2 cột:

0n

Đầu ra là rõ ràng, nhưng mã thì không. ;)

Câu trả lời ban đầu của tôi là bài kiểm tra LL của M 127 , đó là

for(s=4n,i=125;i;s%=170141183460469231731687303715884105727n,i--)s=s*s-2n;console.log(s)

Câu trả lời của Arnauld đã sử dụng dấu chấm phẩy để khắc phục vết nứt ngắn hơn và tôi không mong đợi (hoặc nhận ra) s%=sphần nào cả:

s=4n;s%=s;7n;console.log(s)

Nhân tiện, 3 bài viết của tôi hoàn toàn không liên quan gì đến các hàm băm, PRNG hoặc mật mã. Tôi thề ba điều này chỉ là về thao tác số.

có các byte không được sử dụng trong bảng mã



1

MathGolf, mã 42 byte, đầu ra 22 byte

Bảng mã: 3 hàng 7 cột

 r5 qÄ 
~←▲↔▼→~
 Äq 5r 

Bảng đầu ra: 3 hàng bằng 6 cột:

421
402
135

Cái này dài hơn một chút, nhưng tôi sẽ đưa ra một gợi ý nhỏ: Bảng mã được cho là giống với một cái cà vạt và bạn có thể cần phải "buộc" nó nhiều lần.


1

JavaScript, mã 1443 byte, đầu ra 3 byte, bị bẻ khóa bởi @Bubbler

Một chương trình đầy đủ.

Bảng mã, 3 hàng 4 cột

!![+
+[]]
+]()

Bảng đầu ra, 1 hàng bằng 2 cột

aN

Rõ ràng những gì đầu ra là. Nó sẽ là mã mà vui để bẻ khóa.

Tôi không nghĩ đây là Node.js, nhưng kiến ​​thức của tôi trong lĩnh vực này là con số không. Điều tôi có thể nói là nó chạy trong cả Edge và Chrome. Theo "chương trình đầy đủ" Tôi có nghĩa là nó chạy khi được đặt giữa <script></script>trong một tệp HTML.



Đây không phải là giống hệt với bài viết JS khác của bạn?
Xù xì

@Shaggy Người đầu tiên đã thiếu đề cập đến toàn bộ chương trình và đã bị bẻ khóa dưới dạng REPL.
Arnauld

1

Python 3, mã 56 byte, đầu ra 69 byte, SAFE

Bảng mã: 4 hàng bằng 10 cột:

  print(1,
b; f,)*l(1
 =lamb+a,)
ese d:(-1)

Bảng đầu ra: 7 hàng bằng 7 cột:

1466900
3427430
1304212
9653895
0511633
5680228
4437679

Khó khăn hơn nhiều so với thử thách đầu tiên của tôi;)

Mã và đầu ra dự kiến:

Mã số:

l=lambda a,b:(a+b)*l(a-1,a*b)if a else b;print(l(11,11))

Đầu ra:

421827435070654423113161304555505960246647934329322186026783332352000

Tôi thích cách bạn không thể tạo thành lambda xD
Quintec

Bạn có thể, tái sử dụng một lá thư được cho phép, chỉ không hai lần liên tiếp trực tiếp. (Tôi nghĩ rằng tôi có dạng này, nhưng nó rất dễ điều chỉnh và đầu ra đó có thể là bất cứ thứ gì tôi đã tìm thấy một chương trình 56 byte với đầu ra 69 byte, nhưng nó không có trên bảng Boggle.)
Lynn

OK, tôi chỉ nhận ra đầu ra được phép dài hơn mà thay đổi mọi thứ. Nhưng tôi vẫn không thấy cách nào để "lừa" nó (tuy nhiên tôi cá là có một số cách để xuất ra 10^lots.)
Lynn

1
Tôi cá là nó sẽ giống như l=lambda a,b:+l(a-1,a*b)if a else b;print(l(11,1))... Nhưng tôi không thể tìm thấy.
tsh

0

MathGolf, mã 7 byte, xuất 12 byte

Chỉ là một thử thách dễ dàng đầu tiên, nếu bạn muốn vào MathGolf!

Bảng mã: 2 hàng 4 cột

╒Æ■r
îm4~

Bảng đầu ra: 2 hàng 3 cột

140
412

0

Jelly, mã 17 byte, đầu ra 19 byte

Phương pháp chung không quá khó để chọn ra.

Bảng mã

»V
”;
“;

Bảng đầu ra

Krgwn
Ubots
RAbbt

0

J (REPL), mã 9 byte, xuất 10000 byte

Bảng mã: 3 hàng, 3 cột

epi
j.r
oI5

Bảng đầu ra: 3 hàng, 2 cột, dưới dạng giá trị byte

10  10
48  49
32  255

Về bản chất, \n\n/ 01/ <space><don't use>.

Giải pháp dự định cho đầu ra 20008 byte.

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.