Điểm số
Phần này sẽ được điền vào khi đệ trình được nhập.
Bình thường
1. bopjesvla Perl 54
2. edc65 Javascript (ES6) 91
3. name language score
4. name language score
5. name language score
Vòng thưởng
1. name language score
2. name language score
3. name language score
4. name language score
5. name language score
Karel J. AlphaBot
Lý lịch
Một khóa học giới thiệu phổ biến về Java là Karel J. Robot (Tôi đang sử dụng nó cho mình). Robot tương tác với một mạng lưới đường phố (tọa độ y dương) và đại lộ (tọa độ x nguyên dương) cũng như tiếng bíp, có thể được đặt và lưu trữ trên lưới (lưu ý rằng Karel và bất kỳ tiếng bíp nào chỉ có thể tồn tại trên mạng điểm). Karel (robot) chỉ thực hiện năm hành động: di chuyển về phía trước 1, rẽ trái tại chỗ, đặt một tiếng bíp, nhấc một tiếng bíp và tự tắt.
Trong lớp Khoa học Máy tính của tôi, một trong những nhiệm vụ đầu tiên của chúng tôi là lập trình Karel để học cách rẽ phải, quay đầu và thực hiện hành động kết hợp di chuyển về phía trước 1 và đặt một tiếng bíp. Một nhiệm vụ vài ngày sau đó là sử dụng các phương thức này và viết các phương thức mới để tạo ra các chữ cái của bảng chữ cái.
Đương nhiên, khi tôi hoàn thành bài tập này, tôi đã viết thêm các phương pháp để tạo ra mọi chữ cái trong bảng chữ cái, cũng như mười chữ số, và tôi dự định tìm ra cách tạo ra một trình xử lý văn bản từ robot, trong đó một chuỗi sẽ được nhập vào STDIN và robot sẽ đặt các tiếng bíp lên lưới theo cách giống với các chữ cái.
Mỗi lần tôi viết private void draw#cho mỗi ký tự #, tôi đã thêm một nhận xét sau nó sẽ cho tôi biết các chữ viết tắt cho chuỗi lệnh tôi cần.
Tôi có các lệnh sau (được viết bằng mã giả) theo ý của tôi (làm rõ - đây là những lệnh duy nhất lệnh hữu ích ).
Turn Left
Rotate the robot 90˚ counterclockwise
Abbreviated as "l"
Turn Right
Rotate the robot 90˚ clockwise
Abbreviated as "r"
Move
Move one space forwards
Abbreviated as "m"
Put Beeper
Put a beeper on the spot that Karel is on
Abbreviated as "p"
Drop Beeper
Move, then Put Beeper
Abbreviated as "d"
Turn Around
Turn Left, then Turn Left
Abbreviated as "a"
Điều kiện
Robot phải tiến hành theo thứ tự sau.
- Robot bắt đầu ở góc dưới bên trái của hình chữ nhật 5xN có diện tích tối thiểu mà chữ cái sẽ được vẽ.
- Robot vẽ bức thư.
- Robot di chuyển đến góc dưới bên phải của hình chữ nhật.
- Robot di chuyển hai không gian sang phải và phải quay mặt về hướng bắc / lên
Hãy làm việc qua một ví dụ. Giả sử chúng ta muốn vẽ A. Vị trí của robot là chữ cái chỉ hướng của nó (bắc, nam, đông, tây). Bức thư được viết hoa nếu robot ở vị trí có tiếng bíp và chữ thường nếu robot ở vị trí không có tiếng bíp. ođại diện cho các điểm với tiếng bíp và. đại diện cho các điểm không có tiếng bíp.
Như chúng ta sẽ thấy sau này, Alà đây.
.ooo.
o...o
ooooo
o...o
o...o
Đây là một giải pháp có thể.
Grids ..... ..... ..... ..... ..... ..... ..... ..... .....
..... ..... ..... ..... ..... ..... ..... ..... .....
..... ..... ..... N.... E.... oE... ooE.. oooE. oooW.
..... ..... N.... o.... o.... o.... o.... o.... o....
n.... N.... o.... o.... o.... o.... o.... o.... o....
Letters p d d r d d d a
..... ..... ..... ..... ..... n.... e.... .E... .oE..
..... ..... ..... ..... N.... o.... o.... o.... o....
ooWo. oWoo. Wooo. Nooo. oooo. oooo. oooo. oooo. oooo.
o.... o.... o.... o.... o.... o.... o.... o.... o....
o.... o.... o.... o.... o.... o.... o.... o.... o....
m m m r d m r d d
.ooE. .oooe .ooos .ooo. .ooo. .ooo. .ooo. .ooo.
o.... o.... o.... o...S o...o o...o o...o o...o
oooo. oooo. oooo. oooo. ooooS ooooo ooooo ooooo
o.... o.... o.... o.... o.... o...S o...o o...o
o.... o.... o.... o.... o.... o.... o...S o...E
d m r d d d d l
Trận chung kết mml để hoàn thành viên đạn thứ tư là ẩn vì nó xuất hiện trong mỗi chữ cái và vì tôi không muốn quay lại và thêm hai cột khác vào mọi thứ trong giải pháp đề xuất ở trên.
Vì vậy, một giải pháp để thực hiện Alà pddrdddammmrdmrdddmrddddlmml.
Lưu ý rằng đây không phải là giải pháp của bạn. Thuật toán của bạn có thể đi qua mọi cột, đặt tiếng bíp vào vị trí thích hợp và không phụ thuộc vào nơi mà tiếng bíp khác đã được đặt hoặc sẽ được đặt. Bất kể thuật toán của bạn là gì, robot chỉ có thể đặt một tiếng bíp trên mỗi khoảng trống trên lưới.
Chương trình
Chương trình của bạn sẽ lấy đầu vào là lưới 5xN về lưới của chữ cái là gì. Lưu ý rằng không có robot trên đầu vào; Robot được cho là ở góc dưới bên trái (phía tây nam), hướng về phía bắc.
Đầu ra sẽ là chuỗi các chữ cái là tốc ký cho chuỗi.
Đầu vào mẫu
.ooo.
o...o
ooooo
o...o
o...o
o...o.ooooo
o...o...o..
ooooo...o..
o...o...o..
o...o.ooooo
Đầu ra mẫu
pddrdddammmrdmrdddmrddddlmml
prmmmlmlmmdrdrdddlmlmmdrdrmmmdrddddlmmlprdddlmldmmrmrmdmlmldmmrdrddddrmmmdlmml
Đây là mã golf, fellas. Quy tắc CG tiêu chuẩn được áp dụng. Mã ngắn nhất trong byte thắng.
Vòng thưởng
Quy tắc
Nếu bạn muốn tham gia vào vòng thưởng, hãy chắc chắn làm cho mã của bạn di chuyển hiệu quả! Dưới đây là một thư viện của tất cả các chữ cái 5x5 mà chương trình của tôi tạo ra khi nó chạy. Mục tiêu của vòng thưởng là viết một chương trình in một chuỗi cho ABCDEFGHIJKLMNOPQRSTUVWXYZcàng ít lần di chuyển càng tốt. Không có đầu vào cho STDIN. Mã sẽ được phân loại không phải theo độ dài của mã mà là "điểm di chuyển" của nó. Điểm di chuyển được thiết kế để ngăn cản các thuật toán quét truy cập mọi điểm trong hình chữ nhật.
d: 1
l: 1
m: 4
p: 1
r: 1
Bức thư
.ooo. oooo. ooooo oooo. ooooo ooooo .oooo o...o
o...o o...o o.... o...o o.... o.... o.... o...o
ooooo oooo. o.... o...o oooo oooo. o.ooo ooooo
o...o o...o o.... o...o o.... o.... o...o o...o
o...o oooo. ooooo oooo. ooooo o.... oooo. o...o
ooooo ....o o...o o.... ooooo o...o ooooo oooo.
..o.. ....o o..o. o.... o.o.o oo..o o...o o...o
..o.. ....o oo... o.... o.o.o o.o.o o...o oooo.
..o.. o...o o..o. o.... o...o o..oo o...o o....
ooooo .ooo. o...o ooooo o...o o...o ooooo o....
oooo. oooo. ooooo ooooo o...o o...o o...o o...o
o..o. o...o o.... ..o.. o...o o...o o...o .o.o.
o..o. oooo. ooooo ..o.. o...o .o.o. o.o.o ..o..
oooo. o..o. ....o ..o.. o...o .o.o. o.o.o .o.o.
....o o...o ooooo ..o.. ooooo ..o.. ooooo o...o
o...o ooooo
.o.o. ...o.
..o.. ..o..
.o... .o...
o.... ooooo
Phải tuân theo quy trình tương tự như thử thách ban đầu: các chữ cái phải được rút ra cùng một lúc với khoảng cách giữa mỗi chữ cái.
Quy tắc CG tiêu chuẩn được áp dụng. Nhập cảnh với số điểm di chuyển thấp nhất sẽ thắng.
Tóm lại, cả hai mã về cơ bản sẽ làm những việc giống nhau. Mã đầu tiên phải có số byte tối thiểu trong mã và mã thứ hai nên sử dụng số lần di chuyển nhỏ nhất.