Dalam tantangan ini, Anda akan membuat Fellowship dengan tujuan mengalahkan semua fellowship lain dalam pertempuran.
Persekutuan (tim) terdiri dari 3 karakter . Setiap karakter bergerak secara independen dari anggota tim mereka yang lain, tetapi mereka harus bekerja bersama saat melawan musuh Anda. Tim akan saling berhadapan satu sama lain secara bergiliran. Menang bernilai 3 poin, ikatan bernilai 1 poin, dan kerugian bernilai 0 poin.
Karakter memiliki Kemampuan. Pilihan kemampuan apa yang dimiliki karakter Anda adalah salah satu bagian paling penting (dan menyenangkan) di KotH ini . Mereka semua kuat, dan memiliki potensi untuk melenyapkan musuh Anda.
Karakter memiliki Poin Kesehatan (HP), dan ketika HP mereka menyentuh (atau pergi di bawah) 0, mereka mati . Jika semua karakter di tim lawan mati, maka Anda menang!
Karakter memiliki Mana. Sebagian besar tindakan memerlukan Mana untuk melakukan , dan jika Anda tidak memiliki cukup, tindakan itu tidak tersedia untuk Anda.
Karakter mengalami Delay Turn . Ini menentukan jumlah kutu di antara setiap belokan (mulai dari 100). Lebih rendah lebih baik.
Karakter memiliki atribut . Setiap karakter memiliki basis 5 di setiap atribut, dan Anda diberi 20 poin atribut tambahan untuk dibagi. Setelah menetapkan poin atribut, atribut utama Anda ditetapkan sebagai atribut tertinggi Anda.
Atribut yang tersedia adalah:
- Kekuatan: Memberikan 10 Max HP dan 0,5 HP per putaran
- Intelijen: Memberikan 7 Max Mana dan .1 Mana per giliran
- Agility: Mengurangi Delay Turn oleh 1
Gerakan, Visi, Rentang
Rentang adalah sebagai berikut (berpusat di sekitar 0). Beberapa rentang bersifat kardinal , yang berarti mereka hanya bisa naik langsung, kiri, kanan, atau turun.
444
43334
4322234
432111234
432101234
432111234
4322234
43334
444
Karakter memiliki visi awal 2. Visi antara pemain dari persekutuan yang sama dibagi.
Cara bermain
Pemain Konstruksi akan membangun persekutuan mereka. Anda perlu melakukan langkah-langkah berikut :
Berikan masing-masing poin atribut karakter . Setiap karakter dimulai dengan 5 di setiap stat, dengan tambahan 20 untuk mendistribusikan antara 3.
Berikan masing-masing kemampuan karakter . Setiap karakter dimulai dengan 4 slot kemampuan, dan kemampuan mengambil 1 slot secara default. Beberapa kemampuan dapat diulang , dan dapat diberikan ke karakter beberapa kali. Menggunakan kumpulan kemampuan pengajuan lain tanpa izin pemilik tidak diizinkan.
Tulis beberapa kode untuk bot Anda. Kode harus dalam Java, dan akan digunakan untuk memerangi (langkah selanjutnya)
Tindakan
Semua karakter dimulai dengan 3 tindakan standar:
- Langkah : Pindahkan karakter Anda dalam kisaran kardinal 1
- Slice : Serang musuh untuk PrimaryAttribute dalam kisaran kardinal 1
- Senyum : Jangan lakukan apa pun
Pada giliran karakter, maka harus memilih tindakan untuk dilakukan. Tindakan mungkin memiliki biaya Mana, dan mungkin memiliki Cooldown, yang menentukan jumlah belokan yang harus Anda tunggu sebelum melakukan tindakan itu lagi.
Kemampuan
Setiap karakter memiliki 4 slot kemampuan. Jika kemampuan ditulis miring, itu adalah tindakan.
Kemampuan
Nama Keterangan Mana Cooldown Mobility Blink Pindah ke persegi, berbagai 4 2 2 Swap lokasi Swap dengan Target 5 5 Teleport Pindah mana saja 20 5 Dasbor Tingkatkan rentang langkah dengan 1. Diulang Mobile Step dapat bergerak ke salah satu dari 8 arah Menyerang Slice Cepat dua kali 3 0 Weave Slice semua musuh yang terlihat sekali 15 10 Serap Setiap Iris mencuri 1 atribut utama target Anda. Berlangsung 20 putaran Cleave Each Slice memberikan 1/2 damage ke musuh yang berdekatan Critital Menambahkan peluang 30% untuk Slice untuk memberikan kerusakan 200%. Diulang Feast Each Slice meningkatkan HP Anda sebesar 3. Diulang Flexible Can Slice di salah satu dari 8 arah Mana mencuri Slice mencuri 2 mana. Diulang Irisan Refleksif saat diiris 0 3 Mulai menambahkan 1 ke kisaran Slice Geser Setiap Iris berturut-turut pada target yang sama memberikan 3 kerusakan lebih banyak daripada yang terakhir Status Dispel Menghapus semua status dari Target. Range 2. 20 10 Duel Membekukanmu dan targetmu sampai salah satu dari kalian mati. Rentang 1 25 0 Knockout Anda dan target terpana untuk 1000 ticks berikutnya 10 10 Meteor Semua musuh tertegun untuk 100 ticks berikutnya 25 10 Leash Target dibekukan untuk 2 giliran berikutnya 4 6 Poison Poison musuh untuk 1 HP untuk 5 putaran 5 0 Diam Target dibungkam untuk 5 putaran 5 7 Target Lambat diperlambat oleh 40 tick untuk 3 putaran berikutnya 10 5 Stun Target tertegun untuk 300 tick berikutnya 10 10 Dingin Semua karakter lain dalam 2 rentang diperlambat oleh 10 ticks Immune No status dapat diterapkan pada Anda Defensif Force Field Block berikutnya 5 sumber kerusakan. Tidak menumpuk 15 5 Ghost Untuk belokan, semua damage heal 10 10 Heal Heal Target for 20 HP 10 3 Restore Semua unit dikembalikan ke kondisi kesehatan penuh 20 40 Shield Anda tidak dapat diiris hingga giliran berikutnya 3 0 Hindari peluang 25% agar Slice tidak mengenai Anda. Diulang Pillar Only dapat diiris sekali putaran Bangkit Saat Dibunuh, hidupkan kembali dengan HP penuh (dan tanpa status) 0 40 Paku Ketika menangani kerusakan, berikan setengah dari kerusakan kembali Penglihatan Cloak Team menjadi tidak terlihat selama 5 putaran 20 20 Sembunyikan Anda tidak terlihat untuk 5 putaran 4 7 Fase Menjadi tidak terlihat untuk 1 putaran 0 3 Track Target tidak bisa menjadi tidak terlihat, dan mengambil 10% lebih banyak kerusakan. Berlangsung 10 putaran. 5 5 Darkness Enemy sight range berkurang 1. Tumpukan, tetapi tidak bisa di bawah 1. Penglihatan jauh Kisaran penglihatan meningkat 2. Diulang Tak Terlihat Anda tidak terlihat jika Anda memulai giliran dari visi musuh True sight Mengungkap semua unit tersembunyi dalam rentang 2 saat start Kerusakan Tiriskan Penawaran 5 kerusakan pada Target dan menyembuhkan diri untuk 5 HP sementara mereka tetap dalam 1 kisaran 10 5 Kesepakatan Petir 15 kerusakan untuk semua musuh 20 10 K / O Membunuh target jika target di bawah 20% HP 20 0 Trap Tempatkan jebakan yang tak terlihat. Perangkap memberikan 15 kerusakan saat diinjak. Tumpukan. 10 2 Zap Deal 30 damage ke target 30 5 Penawaran Statis 5 merusak setiap giliran untuk semua musuh dalam 1 rentang. Diulang Statistik Werewolf Tambahkan 10 ke semua statistik selama 5 putaran 30 25 Buff Gandakan HP pool Anda. Diulang Tindakan Pintar memiliki cooldown 20% lebih pendek. Diulang Berfokus Meningkatkan tingkat regulasi Mana Anda pada Int / 10. Diulang Regenerasi Meningkatkan laju Regnerasi Anda dengan Strength / 2. Diulang Tindakan Cerdas biaya 2 mana kurang. Diulang Kuat Anda mendapatkan 10 poin atribut. Diulang Lemah Anda kehilangan 15 poin atribut. Anda mendapatkan 2 slot kemampuan (ini mengambil salah satunya) Lain Beruang Dapat memanggil beruang yang memiliki 5 di setiap stat 8 10 Klon Klon sendiri. Membutuhkan dua slot kemampuan. 100 100 Steal Replace this action with musuh tindakan terakhir Target digunakan. Bertahan 10 putaran 5 0 Dinding Buat dinding tidak bisa dilewati pada kotak kosong yang ditargetkan, kisaran 6 10 10
Status:
- Setrum memungkinkan karakter Anda untuk hanya melakukan tindakan Senyum, dan berlangsung X kutu .
- Bekukan mencegah karakter Anda bergerak, dan berlangsung X berubah.
- Silence mencegah karakter Anda melakukan apa pun selain Smile, Step, atau Slice, dan berlangsung selama X turn.
- Racun merusak karakter Anda untuk kerusakan X untuk giliran Y. Jika Anda menggunakan racun lain, kerusakannya bertambah, dan durasinya diperbarui.
- Lambat menambahkan X ke jumlah kutu di antara belokan Anda. Itu tidak mempengaruhi giliran Anda yang akan datang , hanya berubah setelah.
- Tak terlihat membuatnya jadi kamu tidak bisa dilihat atau dirusak oleh lawanmu. Jika Anda melakukan tindakan selain Langkah atau Senyum, tindakan itu akan dihapus. Jika lawan Anda memiliki kemampuan yang memberi mereka visi tentang Anda, tembus pandang dihapus.
Semua status (kecuali untuk Racun) bertindak secara independen satu sama lain.
Catatan Samping:
- Jika ada ikatan untuk atribut primer, itu diselesaikan sebagai STR> AGI> INT.
- Anda bermain di kisi 10x10. Tim akan ditempatkan di sisi yang berlawanan.
- Persentase tumpukan multiplikasi, kecuali untuk Pintar.
Aturan pengiriman
Anda perlu menerapkan 2 fungsi:
// 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);
Anda juga akan memiliki akses ke tiga variabel (variabel anggota):
Set<ReadonlyCharacter> team;
Set<EnemyCharacter> enemies;
Map<Point2D, EnemyCharacter> visibleEnemies;
Itu dia. Di bawah ini Anda dapat menemukan API lengkap, dalam urutan abjad:
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
Di atas adalah semua fungsi yang mungkin Anda butuhkan untuk kiriman Anda. Refleksi tidak diperbolehkan. Jika kiriman tidak valid karena alasan apa pun, harap hapus atau tambahkan "Tidak Valid" ke header. Kiriman Anda tidak boleh memiliki deklarasi paket. Kiriman Anda harus dimuat dalam blok kode multi-baris pertama, dan baris pertama harus memiliki nama file.
Cara menjalankan proyek:
Ada beberapa cara:
- Unduh file JAR , dan jalankan
java -jar Fellowship.jar
. Jika Anda ingin mengunduh kiriman lainnya, sampaikan-q 99744
.java
harus menunjuk ke JDK, bukan JRE. - Kloning repo git , dan jalankan
gradle run
. Anda perlu menginstal gradle, dan jika Anda ingin memberikan argumen, gunakan-PappArgs="['arg1', 'args2']"
- Kloning repo git , dan kompilasi sendiri. Anda akan membutuhkan library berikut:
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
Jika Anda mengkloning, Anda harus menggunakan --recursive
flag, dan ketika Anda menarik pembaruan, sertakan--recurse-submodules
Untuk semua hal di atas, kelas Anda harus masuk ke submissions/java
folder. Jika Anda menggunakan gradle, atau mengompilasinya sendiri, Anda bisa meletakkan kelas di proyek itu sendiri. Anda harus menghapus tanda komentar pada beberapa baris di fungsi utama, dan memperbaruinya untuk menunjuk ke kelas Anda.
Papan angka:
+------+-------------------+-------+
| 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 |
+------+-------------------+-------+
Jika Anda memiliki pertanyaan, atau butuh bantuan, komentar di bawah, atau bergabunglah dengan ruang obrolan ! Semoga berhasil dan selamat bersenang - senang
Deal 15 damage to all enemies
, tetapi musuh yang tidak terlihat tidak terpengaruh oleh petir. Apakah ini bug? Kalau tidak, tembus pandang tampaknya cukup kuat bagi saya ...