Chú ý: Đây vua-of-the-đồi thách thức đã hoàn thành. Điều này có nghĩa là dấu kiểm màu xanh lá cây, đã được trao cho C5H8NNaO4 cho mục nhập của họ Người quan sát sẽ không được chuyển đến bất kỳ câu trả lời mới nào.
Bạn vẫn có thể gửi các mục mới, nhưng có thể có sự chậm trễ trong các giải đấu mới đang diễn ra vì tôi không chủ động kiểm tra các mục mới nữa.
Giới thiệu
Trong thử thách này, bạn đang chơi một game arcade có tên The Ultimate Samurai Showdown Ultimate Edition Phiên bản đặc biệt 2.0 X Alpha Omega Turbo (hay gọi tắt là Ultimate Samurai Showdown ). Đối thủ của bạn? Không ai khác ngoài các thành viên khác của Lập trình Câu đố & Code Golf!
Như bạn có thể mong đợi từ một game arcade PPCG, bạn không trực tiếp chơi Ultimate Samurai Showdown mà hãy viết một chương trình sẽ chơi game cho bạn. Chương trình này sẽ chiến đấu chống lại các chương trình được gửi bởi những người dùng khác trong một cuộc đấu tay đôi. Chương trình lành nghề nhất sẽ được trao vương miện Samurai tối cao của PPCG, và được cấp dấu tích xanh của huyền thoại.
Mô tả trò chơi
Phần này mô tả các cơ chế đằng sau trò chơi.
Điều kiện chiến thắng
Một trận đấu bao gồm hai samurai đối đầu với nhau. Mỗi samurai bắt đầu mỗi trận đấu với 20 điểm nhấn và 1 danh dự . Một samurai chiến thắng nếu đối thủ của anh ta chết và anh ta vẫn còn sống. Có hai phương pháp mà một samurai có thể chết:
- Nếu điểm trúng của samurai bị hạ xuống 0, anh ta sẽ chết.
- Nếu một samurai mang danh dự của riêng họ xuống dưới 0, anh ta sẽ bị các vị thần đánh gục vì hành động không trung thực trong một cuộc đấu tay đôi.
Bị các vị thần hạ gục có mức độ ưu tiên cao hơn so với việc bị giảm điểm xuống 0, do đó, trong trường hợp một samurai ở 0 điểm và người còn lại ở -1 danh dự, samurai có 0 điểm máu sẽ giành chiến thắng. Trong tình huống cả hai samurai đều ở -1 danh dự, cả hai đều bị các vị thần đánh gục và trò chơi là một trận hòa.
Một trận đấu bao gồm tới 500 lượt . Nếu tất cả 500 lượt đi qua và trận đấu chưa được quyết định (cả samurai đều không chết), các vị thần trở nên buồn chán và hạ gục cả hai samurai, do đó dẫn đến kết quả hòa.
Hành động
Trên mỗi lượt, samurai phải thực hiện chính xác một trong các hành động sau:
W
Các samurai sẽ chờ đợi và thực hiện không có hành động. Điều này làm cho anh ta trông ngầu nhưng không giúp anh ta đánh bại đối thủ của mình. Đây cũng là hành động mặc định.
B
Các samurai sẽ cúi đầu trước đối thủ của mình một cách danh dự. Điều này làm hài lòng các vị thần và do đó, samurai sẽ nhận được 1 Danh dự. Danh dự rất quan trọng đối với thành công của samurai của bạn vì Honor thực chất là "tài nguyên" cho trò chơi này - tất cả các động thái tách rời B
và W
có thể làm giảm Danh dự. Ngoài ra, nếu một samurai đạt được 7 Danh dự trở lên, anh ta được phép sử dụng Thanh kiếm của các vị thần . Ý nghĩa của việc này được mô tả dưới đây.
Tuy nhiên, cúi đầu trước đối thủ khiến bạn bỏ ngỏ nếu đối thủ quyết định tấn công bạn bằng thanh kiếm của anh ta, vì vậy hãy cẩn thận khi bạn chọn cúi đầu.
G
Các samurai sẽ vào một vị trí phòng thủ và bảo vệ chống lại bất kỳ cuộc tấn công bằng kiếm nào. Chiêu thức này sẽ chặn thành công tất cả các đòn tấn công bằng kiếm, ngay cả những đòn được thực hiện bằng Thanh kiếm của các vị thần .
Tuy nhiên, các vị thần cau mày với một samurai phòng thủ quá mức, do đó, hành động này sẽ tiêu tốn 1 Honor nếu hành động của samurai ở lượt trước ngay lập tức cũng được bảo vệ. Nó không tiêu thụ Honor khác.
I
Các samurai sẽ cố gắng tấn công đối thủ của mình bằng một thanh kiếm rút nhanh từ bao kiếm. Nếu samurai có 7 Honor trở lên, anh ta sẽ sử dụng Thanh kiếm của các vị thần thay vì thanh kiếm thông thường của mình. Động thái này tiêu tốn 1 Honor.
Trận hòa nhanh là một cuộc tấn công nhanh sẽ đánh bại các cuộc tấn công trên không chậm hơn, tuy nhiên, nó sẽ thua trước các trận đấu. Nếu đòn tấn công kết nối thành công, nó sẽ gây 1 sát thương, hoặc 2 sát thương với Thanh kiếm của các vị thần .
P
Các samurai sẽ cố gắng ngăn chặn mọi cuộc tấn công sắp tới, sau đó tiến hành cuộc tấn công của chính mình. Nếu samurai có 7 Honor trở lên, anh ta sẽ sử dụng Thanh kiếm của các vị thần thay vì thanh kiếm thông thường của mình. Động thái này tiêu tốn 1 Honor.
Parry là một cơ động tốt chống lại các cuộc tấn công nhanh, nhưng nó sẽ bị áp đảo bởi các cuộc tấn công trên không chậm hơn. Nếu đòn tấn công kết nối thành công, nó sẽ gây 1 sát thương, hoặc 2 sát thương với Thanh kiếm của các vị thần .
O
Các samurai sẽ cố gắng tấn công đối thủ của mình bằng một cuộc tấn công trên cao chậm hơn. Nếu samurai có 7 Honor trở lên, anh ta sẽ sử dụng Thanh kiếm của các vị thần thay vì thanh kiếm thông thường của mình. Động thái này tiêu tốn 1 danh dự.
Cuộc đình công trên cao có thể áp đảo các cuộc diễu hành, nhưng nó sẽ thua trước các cuộc đình công nhanh. Nếu đòn tấn công kết nối thành công, nó sẽ gây 1 sát thương, hoặc 2 sát thương với Thanh kiếm của các vị thần .
Thanh kiếm của các vị thần
Một samurai có Danh dự từ 7 trở lên sẽ có khả năng sử dụng Thanh kiếm của các vị thần . Nếu Danh dự của anh ta bị giảm xuống dưới 7, khả năng sử dụng Thanh kiếm của các vị thần sẽ bị thu hồi từ anh ta. Các Sword of the Gods đề 2 thiệt hại thay vì 1.
Các Sword of the Gods không cho phép một cuộc tấn công để đánh bại một cuộc tấn công thanh kiếm mà nó sẽ không thường đánh bại. Chẳng hạn, một parry của Sword of the Gods vẫn sẽ thua một đòn tấn công trên không thông thường, và một trận hòa nhanh chóng của Sword of the Gods sẽ không áp đảo một trận hòa nhanh chóng thông thường. Thật vậy, cái gọi là Thanh kiếm của các vị thần thực sự không mạnh đến thế - có lẽ đó là một trò đùa vũ trụ được chơi bởi các vị thần ...
Bảng tương tác
Đoạn trích dưới đây chứa một bảng liệt kê rõ ràng tất cả các kết quả có thể có của các kết hợp hành động khác nhau mà hai samurai có thể thực hiện. Để xem nó, nhấp vào "Hiển thị đoạn mã", sau đó nhấp vào "Chạy đoạn mã".
Chương trình truyền thông
Để tạo điều kiện cho hoạt động của giải đấu, một chương trình điều khiển đã được viết để đóng vai trò của các "vị thần" - nó giữ các hồ sơ về danh dự và sức khỏe và đánh bật samurai theo đó. Phần này mô tả cách chương trình của bạn sẽ giao tiếp với chương trình điều khiển.
Mô tả đầu vào
Chương trình điều khiển sẽ gọi chương trình của bạn từ dòng lệnh như thế này:
<command> <history> <enemy_history> <your_health> <enemy_health> <your_honour> <enemy_honour>
Ở đâu:
<command>
là lệnh cần thiết để chạy chương trình của bạn. Ví dụ, nếu chương trình của bạn nằm trong một tệpsuper_sentai.pl
, lệnh có thể làperl super_sentai.pl
.<history>
là một lịch sử của các động thái mà bạn thực hiện. Chẳng hạn,WWBP
có nghĩa là bạn đã đợi hai lần, cúi đầu một lần và khóc một lần.<enemy_history>
là một lịch sử di chuyển kẻ thù của bạn thực hiện. Ví dụ,BBBI
có nghĩa là kẻ thù của bạn cúi đầu ba lần và thực hiện một trận hòa nhanh chóng.<your_health>
là sức khỏe hiện tại của bạn.<enemy_health>
là sức khỏe hiện tại của kẻ thù.<your_honour>
là vinh dự hiện tại của bạn.<enemy_honour>
là vinh dự hiện tại của kẻ thù.
Đối với lượt đầu tiên, history
và enemy_history
sẽ trống, vì vậy chương trình của bạn sẽ chỉ được gọi với bốn đối số cuối cùng như thế này:
<command> <your_health> <enemy_health> <your_honour> <enemy_honour>
Hãy chuẩn bị cho việc này!
Độc giả sắc sảo có thể nhận thấy rằng bốn lý lẽ cung cấp danh dự và sức khỏe của cả hai samurai, ở một mức độ nào đó, là thừa thãi; vì đây là một trò chơi thông tin hoàn hảo, danh dự và sức khỏe của samurai có thể được xác định chỉ bằng cách sử dụng lịch sử.
Các giá trị này được cung cấp cho mục đích thuận tiện để bạn không phải phân tích các đối số lịch sử. Điều này sẽ hữu ích khi thực hiện các chiến lược đơn giản, chẳng hạn như không tấn công khi Danh dự của bạn bằng 0.
Mô tả đầu ra
Để chọn một hành động, chương trình của bạn nên đầu ra một trong những W
, B
, G
, I
, P
, hoặc O
để đầu ra tiêu chuẩn, tùy thuộc vào những hành động bạn muốn thực hiện. Nếu chương trình của bạn không xuất ra bất cứ thứ gì trong vòng 1000ms, nó sẽ bị chấm dứt và chương trình của bạn sẽ được xử lý như thể nó xuất ra W
.
Nếu chương trình của bạn xuất ra nhiều hơn một chữ cái, chỉ chữ cái đầu tiên sẽ được xem xét - vì vậy việc xuất ra Parry
sẽ giống như xuất ra P
.
Nếu đầu ra của chữ cái đầu tiên của chương trình của bạn không phải là bất kỳ tùy chọn nào được liệt kê ở trên, nó sẽ mặc định W
.
Định dạng gửi
Gửi một chương trình như một câu trả lời cho bài viết này. Bạn có thể gửi nhiều chương trình. Nếu bạn đang gửi nhiều chương trình đơn giản, tôi khuyên bạn nên gửi chúng dưới dạng một câu trả lời duy nhất; nếu bạn đang gửi nhiều chương trình phức tạp, tôi khuyên bạn nên gửi chúng dưới dạng câu trả lời riêng biệt. Khi tôi đã thêm thành công chương trình của bạn vào giải đấu, tôi sẽ cam kết với kho git với mục nhập của bạn (được liên kết bên dưới).
Nếu tôi gặp phải sự cố khiến chương trình của bạn không được thêm vào giải đấu, tôi sẽ để lại nhận xét về mục nhập của bạn cho biết sự cố.
Vui lòng bao gồm những điều sau đây trong trình của bạn:
- Tên người có thể đọc được của chương trình của bạn, để sử dụng trong bảng điểm. Không gian được phép ở đây; dấu phẩy và ký tự Unicode thì không.
- Ngôn ngữ mà chương trình của bạn được viết. Vui lòng tránh viết bằng các ngôn ngữ lạ, khó truy cập như TinyMUSH.
- Một bản tóm tắt ngắn của chương trình của bạn. Đây có thể là một mô tả về cách chương trình hoạt động, hoặc chỉ một số văn bản hương vị về chương trình của bạn (nếu bạn muốn tất cả bí mật), hoặc có lẽ cả hai.
- Các lệnh / s cần thiết để chạy chương trình của bạn. Chẳng hạn, nếu bạn đang viết bài nộp của mình bằng Java được gọi
example.java
, bạn sẽ cung cấp các hướng dẫn biên dịchjavac example.java
sau đó chạy các hướng dẫnjava example
. - Mã nguồn của chương trình.
Để hỗ trợ việc gửi, tôi cung cấp một mẫu đệ trình có thể tìm thấy ở đây . Các mẫu làm cho đệ trình trông đẹp hơn. Tôi rất khuyến khích sử dụng nó.
Tôi cũng cung cấp hai mục ví dụ. Mặc dù các mục ví dụ sẽ tham gia vào vòng tròn, mục đích chính của chúng là làm rõ các định dạng đệ trình và đầu vào / đầu ra cho giải đấu, thay vì là ứng cử viên nặng ký cho danh hiệu Ultimate Samurai.
Cơ cấu giải đấu
Phần này mô tả cách giải đấu giữa những người tham gia sẽ được điều hành.
Chương trình điều khiển
Chương trình điều khiển được viết bằng Python 2 và có thể được tìm thấy trên kho lưu trữ Ultimate Samurai Showdown Github . Nếu bạn muốn tự chạy nó, hướng dẫn về cách chạy nó được bao gồm trong tệp README.md trong liên kết. Tuy nhiên, chỉ các giải đấu chạy trên máy tính của tôi mới là chính thức để tránh sự khác biệt về phần cứng ảnh hưởng đến kết quả giải đấu.
Chương trình điều khiển sẽ được chạy trên máy tính xách tay chạy Arch Linux. Nó có bộ xử lý Intel Core i7 và RAM 8GB. Tôi sẽ nỗ lực để có được tất cả các mục chạy trên máy tính của mình, nhưng tôi sẽ đánh giá cao nó nếu bạn tránh các ngôn ngữ không thể truy cập tự do (như không mất chi phí tiền tệ).
Hệ thống chấm điểm
Hệ thống tính điểm là một vòng tròn. Mỗi chương trình sẽ chơi tám trận đấu với mọi chương trình khác. Một chiến thắng cho chương trình 1 điểm, thua không có điểm và rút 0,5 điểm. Chương trình có số điểm cao nhất sẽ thắng trò chơi. Nếu có một trận hòa, tôi sẽ đấu hai chương trình hàng đầu với nhau để xác định người chiến thắng.
Số lần mỗi chương trình sẽ chơi với nhau chương trình có thể giảm từ 8 nếu có số lượng người đăng ký cực kỳ lớn. Tôi sẽ thêm một lưu ý ở đây nếu điều này xảy ra.
Tôi sẽ chạy vòng tròn nhiều lần vì các bài nộp mới được đăng, nhưng đó chỉ là vòng thi gần đây nhất sẽ được tính.
Truất quyền thi
Có thể chương trình của bạn bị loại khỏi giải đấu. Truất quyền có thể xảy ra nếu:
- Chương trình của bạn không biên dịch hoặc chạy;
- Chương trình của bạn là một bản sao chiến lược của một chương trình khác (nghĩa là, nó thực hiện chiến lược chính xác giống như một chương trình khác);
- Chương trình của bạn cố gắng phá hoại các chương trình khác bằng cách sửa đổi mã điều khiển, mã chương trình khác, v.v;
- Chương trình của bạn cố gắng khai thác một lỗi trong mã điều khiển. Thay vì khai thác lỗi, thay vào đó bạn nên mở một vấn đề trong kho git, hãy bình luận ở đây hoặc ping tôi trong trò chuyện.
Kết quả trong quá khứ
Kết quả chi tiết của tất cả các giải đấu được cung cấp tại trang wiki .
Giải đấu gần đây nhất đã được hoàn thành vào 2015/07/17 07:20. Dưới đây là một bản tóm tắt các kết quả:
The Observer: 209.0
Coward: 203.0
Monk: 173.0
Elephant Warrior: 157.0
Iniqy: 157.0
Agent 38: 144.0
Ninja: 138.0
Meiyo Senshi: 138.0
Kakashi: 136.0
Yoshimitsu: 131.0
Hermurai: 121.0
Warrior Princess: 120.0
Gargoyle: 119.5
The Honourable: 119.0
Hebi: 118.5
Predictor: 116.0
Whack-a-mole: 107.0
The Fool: 106.0
The Prophet: 105.0
Copy-san: 97.0
YAGMCSE: 80.0
The Waiter: 66.0
Swordsman: 43.0
Spork Holder: 32.5
Blessed Samurai: 27.5
Attacker: 27.0
The Terminator: 17.0
Master Yi: 16.0