Trong thử thách này, bạn sẽ tạo ra một học bổng với mục tiêu đánh bại tất cả các học bổng khác trong trận chiến.
Một nhóm (nhóm) bao gồm 3 nhân vật . Mỗi nhân vật di chuyển độc lập với phần còn lại của đội của họ, nhưng họ sẽ cần phải làm việc cùng nhau khi chiến đấu với kẻ thù của bạn. Các đội sẽ đối đầu với nhau theo cách xoay vòng. Thắng có giá trị 3 điểm, ràng buộc có giá trị 1 điểm và thua lỗ có giá trị 0 điểm.
Nhân vật có khả năng. Sự lựa chọn những khả năng mà nhân vật của bạn có là một trong những phần quan trọng nhất (và thú vị) trong KotH này . Chúng đều mạnh, và có khả năng quét sạch kẻ thù của bạn.
Nhân vật có Điểm Sức khỏe (HP) và khi HP của họ chạm (hoặc xuống dưới) 0, họ sẽ chết . Nếu tất cả các nhân vật trong đội của đối thủ của bạn chết, thì bạn sẽ thắng!
Nhân vật có Mana. Hầu hết các hành động đều yêu cầu Mana thực hiện và nếu bạn không có đủ, hành động đó không có sẵn cho bạn.
Nhân vật có độ trễ . Điều này xác định số lượng đánh dấu giữa mỗi lượt (bắt đầu từ 100). Thấp hơn là tốt hơn.
Nhân vật có thuộc tính . Mỗi nhân vật có cơ sở 5 trong mỗi thuộc tính và bạn được thêm 20 điểm thuộc tính để phân chia. Sau khi gán điểm thuộc tính, thuộc tính chính của bạn được đặt làm thuộc tính cao nhất của bạn.
Các thuộc tính có sẵn là:
- Sức mạnh: Cung cấp 10 HP tối đa và 0,5 HP mỗi lượt
- Thông minh: Cung cấp 7 Max Mana và .1 Mana mỗi lượt
- Nhanh nhẹn: Giảm độ trễ lần lượt 1
Chuyển động, Tầm nhìn, Phạm vi Phạm
vi như sau (tập trung quanh 0). Một số phạm vi là hồng y , có nghĩa là chúng chỉ có thể đi trực tiếp lên, trái, phải hoặc xuống.
444
43334
4322234
432111234
432101234
432111234
4322234
43334
444
Các nhân vật có tầm nhìn bắt đầu là 2. Tầm nhìn giữa những người chơi có cùng mối quan hệ được chia sẻ.
Cách chơi
Xây dựng
Người chơi sẽ xây dựng học bổng của họ. Bạn cần làm các bước sau :
Cho mỗi điểm thuộc tính nhân vật . Mỗi nhân vật bắt đầu với 5 trong mỗi chỉ số, có thêm 20 để phân phối giữa 3.
Cung cấp cho mỗi nhân vật khả năng . Mỗi nhân vật bắt đầu với 4 vị trí khả năng và các khả năng mặc định có 1 vị trí. Một số khả năng có thể lặp lại , và có thể được trao cho một nhân vật nhiều lần. Không được phép sử dụng bộ khả năng gửi khác mà không có sự cho phép của chủ sở hữu.
Viết một số mã cho bot của bạn. Mã phải ở trong Java và sẽ được sử dụng để chiến đấu (bước tiếp theo)
Hành động
Tất cả các nhân vật bắt đầu với 3 hành động tiêu chuẩn:
- Bước : Di chuyển nhân vật của bạn trong phạm vi chính yếu là 1
- Slice : Tấn công kẻ thù cho Sơ cấp trong phạm vi chính là 1
- Cười : Không làm gì cả
Đến lượt của một nhân vật, sau đó phải chọn một hành động để thực hiện. Các hành động có thể có chi phí Mana và có thể có Thời gian hồi chiêu, xác định số lượt bạn phải chờ trước khi thực hiện lại hành động đó.
Khả năng
Mỗi nhân vật có 4 khe khả năng. Nếu một khả năng in nghiêng, đó là một hành động.
Khả năng
Tên Mô tả Mana Cooldown Mobility Nháy mắt Di chuyển đến một hình vuông, phạm vi 4 2 2 Hoán đổi vị trí Hoán đổi với Target 5 5 Dịch chuyển tức thời Di chuyển bất cứ nơi nào 20 5 Dash Tăng phạm vi của bước lên 1. Lặp lại Bước di động có thể di chuyển theo bất kỳ hướng nào trong 8 hướng Tấn công Slice nhanh hai lần 3 0 Dệt Slice tất cả kẻ thù có thể nhìn thấy một lần 15 10 Hấp thụ Mỗi lát cắt đánh cắp 1 thuộc tính chính của mục tiêu của bạn. Kéo dài 20 lượt Cleave Mỗi lát cắt gây sát thương 1/2 cho kẻ địch liền kề Critital Thêm 30% cơ hội cho Slice gây sát thương 200%. Có thể lặp lại Feast Mỗi lát cắt tăng HP của bạn lên 3. Lặp lại Linh hoạt có thể cắt theo bất kỳ trong 8 hướng Mana ăn cắp Slice ăn cắp 2 mana. Có thể lặp lại Phản xạ cắt lát khi cắt 0 3 Phạm vi Thêm 1 vào phạm vi của Slice Vuốt Mỗi lát cắt liên tiếp trên cùng một mục tiêu sẽ gây sát thương nhiều hơn 3 lần so với lần trước Trạng thái Xua tan tất cả các trạng thái khỏi một mục tiêu. Phạm vi 2. 20 10 Duel Đóng băng bạn và mục tiêu của bạn cho đến khi một trong hai bạn chết. Phạm vi 1 25 0 Knockout Bạn và mục tiêu bị choáng trong 1000 tới ticks 10 10 Meteor Tất cả kẻ thù làm choáng váng cho tới 100 ticks 25 10 Leash Target được đông lạnh trong 2 lượt tiếp theo của họ 4 6 Poison Độc kẻ thù trong vòng 1 HP cho 5 vòng xoắn 5 0 Im lặng Mục tiêu được im lặng trong 5 lượt 5 7 chậm mục tiêu bị chậm 40 ve trong 3 lượt tiếp theo của họ 10 5 Stun mục tiêu bị choáng cho tới 300 ticks 10 10 Lạnh Tất cả các nhân vật khác trong phạm vi 2 bị làm chậm 10 tích tắc Miễn dịch Không có trạng thái có thể được áp dụng cho bạn Phòng ngự Lực lượng Trường chặn 5 nguồn sát thương tiếp theo. Không stack 15 5 Ghost Trong một lượt, tất cả sát thương sẽ hồi phục 10 10 Heal Heal Target cho 20 HP 10 3 Khôi phục Tất cả các đơn vị được khôi phục lại toàn bộ sức khỏe 20 40 Shield Bạn không thể bị cắt cho đến lượt tiếp theo 3 0 Trốn 25% cơ hội để một Slice không đánh bạn. Có thể lặp lại Trụ cột chỉ có thể được cắt một lần lượt Hồi sinh Khi bị giết, hãy sống lại với đầy đủ HP (và không có trạng thái) 0 40 Gai khi gây sát thương, giảm một nửa sát thương Tầm nhìn Đội Cloak trở nên vô hình trong 5 lượt 20 20 Ẩn Bạn vô hình trong 5 lượt 4 7 Pha Trở nên vô hình trong 1 lượt 0 3 Mục tiêu theo dõi không thể tàng hình và nhận thêm 10% sát thương. Kéo dài 10 lượt. 5 5 Bóng tối Tầm nhìn của kẻ thù giảm đi 1. Ngăn xếp, nhưng không thể xuống dưới 1. Tầm nhìn xa Tầm nhìn tăng thêm 2. Có thể lặp lại Vô hình Bạn vô hình nếu bạn bắt đầu rời khỏi tầm nhìn của kẻ thù Tầm nhìn chân thực Tiết lộ tất cả các đơn vị ẩn trong phạm vi 2 khi bắt đầu Hư hại Drain Gây 5 sát thương cho Target và tự hồi máu cho 5 HP trong khi chúng ở trong 1 phạm vi 10 5 Lightning gây 15 sát thương cho tất cả kẻ địch 20 10 K / O Giết mục tiêu nếu mục tiêu dưới 20% HP 20 0 Bẫy Đặt bẫy vô hình. Bẫy gây 15 sát thương khi bước lên. Ngăn xếp. 10 2 Zap Gây 30 sát thương cho mục tiêu 30 5 Gây tĩnh 5 sát thương mỗi lượt cho tất cả kẻ địch trong phạm vi 1. Có thể lặp lại Số liệu thống kê Người sói Thêm 10 vào tất cả các chỉ số trong 5 lượt 30 25 Buff nhân đôi số lượng HP của bạn. Có thể lặp lại Hành động thông minh có thời gian hồi chiêu ngắn hơn 20%. Có thể lặp lại Tập trung Tăng tỷ lệ hồi quy Mana của bạn thêm Int / 10. Có thể lặp lại Tái tạo Tăng tỷ lệ hồi sinh của bạn bằng Sức mạnh / 2. Có thể lặp lại Hành động thông minh tốn 2 mana. Có thể lặp lại Mạnh Bạn đạt được 10 điểm thuộc tính. Có thể lặp lại Yếu Bạn mất 15 điểm thuộc tính. Bạn có được 2 vị trí khả năng (cái này cần một trong số chúng) Khác Bear Có thể triệu tập một con gấu có 5 con trong mỗi stat 8 10 Clone Clone mình. Có hai khe khả năng. 100 100 Trộm Thay thế hành động này bằng mục tiêu kẻ thù hành động cuối cùng được sử dụng. Kéo dài 10 lượt 5 0 Tường Tạo một bức tường không thể xuyên thủng trên ô vuông trống được nhắm mục tiêu, phạm vi 6 10 10
Trạng thái:
- Stun cho phép nhân vật của bạn để chỉ thực hiện hành động Nụ cười, và kéo dài X ve .
- Đóng băng ngăn nhân vật của bạn di chuyển, và kéo dài X lượt.
- Im lặng ngăn nhân vật của bạn thực hiện bất cứ điều gì ngoài Nụ cười, Bước hoặc Lát và kéo dài lượt X.
- Poison gây sát thương cho nhân vật của bạn để gây sát thương X cho lượt Y. Nếu bạn áp dụng một chất độc khác, thiệt hại cộng lại và thời gian được làm mới.
- Slow thêm X vào số lượng tick giữa các lượt của bạn. Nó không ảnh hưởng đến lượt sắp tới của bạn , chỉ lần lượt sau.
- Vô hình làm cho nó để bạn không thể nhìn thấy hoặc bị thiệt hại bởi đối thủ của bạn. Nếu bạn thực hiện bất kỳ hành động nào ngoài Bước hoặc Nụ cười, nó sẽ bị xóa. Nếu đối thủ của bạn có một khả năng giúp họ có tầm nhìn về bạn, khả năng tàng hình sẽ bị loại bỏ.
Tất cả các trạng thái (trừ Poison) hoạt động độc lập với nhau.
Ghi chú bên:
- Nếu có một ràng buộc cho thuộc tính chính, nó được giải quyết dưới dạng STR> AGI> INT.
- Bạn chơi trên lưới 10x10. Các đội sẽ được đặt ở phía đối diện.
- Tỷ lệ phần trăm xếp chồng lên nhau, ngoại trừ Thông minh.
Quy tắc nộp
Bạn cần thực hiện 2 chức năng:
// Create *exactly* 3 Character templates. You must return the same templates every time
public List<CharacterTemplate> createCharacters();
// Choose an action for a character. If the action requires a target or location, it must be set.
public ReadonlyAction choose(Set<ReadonlyAction> actions, ReadonlyCharacter character);
Bạn cũng sẽ có quyền truy cập vào ba biến (biến thành viên):
Set<ReadonlyCharacter> team;
Set<EnemyCharacter> enemies;
Map<Point2D, EnemyCharacter> visibleEnemies;
Đó là nó. Dưới đây bạn có thể tìm thấy một API hoàn chỉnh, theo thứ tự bảng chữ cái:
class Ability and ReadonlyAbility
int getNumSlots() returns the number of slots it takes up
boolean repeatable() returns true if the ability can be repeated
String name()
class Action and ReadonlyAction
Set<Point2D> availableLocations()
Set<ReadonlyCharacter> availableTargets()
boolean basicAction() returns true if the action is Smile, Step, or Slice
boolean breaksInvisibiliby()
int getCooldown() returns the cooldown cost (not the cooldown remaining)
int getManaCost()
String getName()
int getRemainingCooldown()
boolean isAvailable() returns true if the action can be performed
boolean movementAction() returns true if the action is prevented when Frozen
boolean needsLocation()
boolean needsTarget()
void setTarget(ReadonlyCharacter target)
void setLocation(Point2D location)
class CharacterTemplate
void addAbility(Ability)
boolean canAddAbility(Ability)
List<Ability> currentAbilities()
Map<Stat, Integer> currentAttributes()
int getRemainingPoints() returns the total number of ability points you have left to assign
int getRemainingSlots() returns the total number of slots you have to assign
int getStat(Stat stat)
boolean isValid() returns true if your character template is complete and valid
class Point2D
getX()
getY()
class Range
boolean isCardinal() returns true if the range only extends in the 4 cardinal directions
int getRange() returns the distance of the range
class ReadonlyCharacter and EnemyCharacter
Class characterClass()
int cleverness()
List<ReadonlyAbility> getAbilities()
Point2D getLocation() Not on EnemyCharacter
double getHealth()
double getMana()
int getMaxHealth()
int getMaxMana()
Range getSightRange()
Range getSliceRange()
int getStat(Stat stat)
Range getStepRange()
ReadonlyAction getLastAction()
boolean isFrozen()
boolean isStunned()
boolean isPoisoned()
int getPoisonAmount()
boolean isSilenced()
boolean isInvisible()
boolean isDead()
Stat primaryStat()
int smartness()
enum Stat
INT, STR, AGI
Trên đây là tất cả các chức năng bạn có thể cần để gửi. Phản xạ không được phép. Nếu việc gửi không hợp lệ vì bất kỳ lý do gì, vui lòng xóa nó hoặc thêm "Không hợp lệ" vào tiêu đề. Trình của bạn không nên có một tuyên bố gói. Nội dung gửi của bạn phải được chứa trong khối mã nhiều dòng đầu tiên và dòng đầu tiên phải có tên tệp.
Cách chạy dự án:
Có một số cách:
- Tải xuống tệp JAR và chạy
java -jar Fellowship.jar
. Nếu bạn muốn tải về các bài nộp khác, vượt qua-q 99744
.java
phải trỏ đến JDK, không phải JRE. - Nhân bản repo git , và chạy
gradle run
. Bạn cần cài đặt lớp và nếu bạn muốn truyền đối số, hãy sử dụng-PappArgs="['arg1', 'args2']"
- Nhân bản repo git , và tự biên dịch nó. Bạn sẽ cần các thư viện sau:
org.eclipse.collections:eclipse-collections-api:8.0.0
,org.eclipse.collections:eclipse-collections:8.0.0
,com.beust:jcommander:1.48
,com.google.code.gson:gson:2.7
,org.jsoup:jsoup:1.9.2
Nếu bạn sao chép, bạn phải sử dụng --recursive
cờ và khi bạn kéo các bản cập nhật, bao gồm--recurse-submodules
Đối với bất kỳ điều nào ở trên, lớp của bạn cần phải đi vào submissions/java
thư mục. Nếu bạn đang sử dụng gradle, hoặc tự biên dịch nó, bạn có thể đặt lớp trong chính dự án. Bạn sẽ cần bỏ ghi chú một số dòng trong hàm main và cập nhật chúng để trỏ đến lớp của bạn.
Bảng điểm:
+------+-------------------+-------+
| Rank | Name | Score |
+------+-------------------+-------+
| 1 | TheWalkingDead | 738.0 |
| 2 | RogueSquad | 686.0 |
| 3 | Spiky | 641.0 |
| 4 | Invulnerables | 609.0 |
| 5 | Noob | 581.0 |
| 6 | Railbender | 561.0 |
| 7 | Vampire | 524.0 |
| 8 | LongSword | 508.0 |
| 9 | SniperSquad | 456.0 |
| 10 | BearCavalry | 430.0 |
| 11 | StaticCloud | 429.0 |
| 12 | PlayerWerewolf | 388.0 |
| 13 | LongSwordv2 | 347.0 |
| 14 | Derailer | 304.0 |
| 15 | Sorcerer | 266.0 |
| 16 | CowardlySniperMk2 | 262.0 |
| 17 | TemplatePlayer | 59.0 |
+------+-------------------+-------+
Nếu bạn có bất kỳ câu hỏi nào, hoặc cần giúp đỡ, hãy bình luận bên dưới hoặc tham gia phòng chat ! Chúc may mắn và vui vẻ
Deal 15 damage to all enemies
, nhưng kẻ thù vô hình không bị ảnh hưởng bởi sét. Đây có phải là một lỗi?