AlienWar
Game ini berlangsung di sebuah planet yang sangat ramai di mana alien adalah ras yang unggul. Tugas Anda adalah menciptakan alien Anda sendiri dan mengalahkan yang lainnya.
Papan
Ini adalah papan 2 dimensi.
Panjang satu sisi papan adalah Math.ceil(sqrt(species * 100 * 2.5))
= ~ 40% dari papan yang digunakan. Papan adalah sebuah planet, jadi jika Anda berjalan keluar dari peta di barat, Anda kembali ke timur. Jika Anda berjalan di utara, Anda akan menemukan diri Anda di selatan.
Kemampuan
Setiap spesies di planet ini memiliki kemampuan. Di sini mereka:
Nama Benefit life HP = lifeLVL * 5 (berkurang dengan setiap hit yang Anda ambil, 0 = mati), base HP = 10 kekuatan Serangan Anda melakukan kerusakan int acak dalam kisaran [1 hingga strengthLVL] defense Pilih int dalam range [0 hingga (50 / defenseLVL + 1)] secara acak , jika int == 0 lalu hindari serangan berikutnya visi Memberi Anda visiLVL / 2 bidang di sekitar visi Anda cleverness Mengaburkan (meningkatkan) setiap kemampuan secara acak dalam kisaran [0 hingga clevernessLVL / 2] saat mengirim ke alien lain
Permainan
- Akan ada 100 contoh dari setiap pengiriman.
- Setelah instancing, setiap alien dapat menetapkan 10 poin kemampuan secara total. Anda dapat mengatur titik yang berbeda untuk setiap instance.
- Jika Anda menetapkan lebih dari 10 poin, instance mati.
- Sebuah game terdiri dari 1000 putaran. Setiap putaran:
- Setiap alien harus mengembalikan gerakan
move(char[] fields)
. Ini termasuk Move.STAY. - Jika beberapa alien berada di lapangan, 2 akan dipilih secara acak:
- Jika keduanya sepakat tentang perdamaian (mengembalikan salah
wantToFight
) mereka akan tinggal di tempat mereka, kalau tidak mereka akan bertarung. - Loop ini sampai hanya satu alien tetap di lapangan atau semua setuju pada perdamaian.
- Jika keduanya sepakat tentang perdamaian (mengembalikan salah
- Setiap alien harus mengembalikan gerakan
Jika alien membunuh sesuatu, dia mendapatkan 1/5 dari masing-masing kemampuan musuhnya . Pemenang HP akan diisi ulang dengan 2 * musuhLifeLVL .
Pemenang adalah orang dengan kemampuan terbanyak (jumlah kemampuan alien yang hidup).
Perkelahian
Kedua alien akan saling memukul "pada saat yang sama", ini berarti jika Anda membunuh alien lain, ia masih bisa memukul Anda satu kali.
Menghindar: Sebelum Anda terkena, permainan akan menghitung jika Anda dapat menghindari serangan dengan menggunakan rand.nextInt(50 / defenseLvl + 1) == 0
. DefenseLvl tidak akan pernah lebih besar dari 50 saat menghitung skill menghindar Anda (karenanya kemungkinan menghindar maksimum adalah 50%).
Memukul: Jika Anda tidak menghindari serangan, Anda akan terkena dan HP Anda akan berkurang sebesar rand.nextInt(enemy.getStrengthLvl()) + 1
.
Perkelahian berakhir ketika salah satu atau kedua alien yang terlibat mati. Pemenangnya, jika ada, mendapat hadiah.
Gamerules
- Level dasar untuk setiap kemampuan (tanpa memberikan poin kemampuan) adalah 1 (basis HP adalah 10).
- Nilai-nilai yang dikirim ketika diminta untuk bertarung adalah kehidupan (bukan HP!), Kekuatan, pertahanan, dan tingkat visi .
- Kepintaran TIDAK dikirim saat diminta bertarung.
- Semua angka mengambang akan DIUNDANG ke bilangan bulat terdekat saat menggunakan / mengirimnya, tetapi disimpan dan ditingkatkan sebagai float.
- Peluang menghindar maksimum adalah 50%. Kalau tidak, perkelahian mungkin tidak akan pernah berakhir.
Mangsa
Ada 5 spesies yang sudah ada di lapangan. Karena mereka adalah mangsa, mereka memilih untuk tidak bertarung ketika diminta.
Paus: lvl 10 masa inap tetap Sapi: kekuatan 10 lvl Gerakan acak Turtle: lvl 10 pertahanan South west Elang: lvl 10 visi Memeriksa bidang, mencoba menghindari bahaya Manusia: kecerdasan 10 lvl timur laut
Mereka akan diwakili dengan huruf pertama mereka (yaitu W
untuk paus) di peta (Alien dengan A
, bidang kosong dengan spasi putih ' '
).
Aturan tambahan
- Refleksi tidak diizinkan.
- Berinteraksi (instancing dll.) Dengan alien lain dilarang.
- Menulis / Membaca sumber daya eksternal seperti file atau database juga dilarang.
- Hanya pengajuan Java (versi 1.8) yang diizinkan (Java agak mudah, dan Anda tidak harus menjadi ahli untuk game ini).
- Semua kiriman harus memperluas kelas alien dan akan ditempatkan dalam paket alien.
- Saya akan menerima alien terbaik pada 19 Juli. Semua alien yang dikirim pada pukul 12:00 UTC hari itu akan diuji.
- Maksimal 3 kiriman per pengguna karena sudah ada sangat banyak alien.
Contoh alien
package alien;
import planet.Move;
public class YourUniqueNameHere extends Alien {
public void setAbilityPoints(float[] abilities) {
abilities[0] = 2; //life
abilities[1] = 2; //strength
abilities[2] = 2; //defense
abilities[3] = 2; //vision
abilities[4] = 2; //cleverness
}
public Move move(char[][] fields) {
//you are in the middle of the fields, say fields[getVisionFieldsCount()][getVisionFieldsCount()]
return Move.STAY;
}
public boolean wantToFight(int[] enemyAbilities) {
//same order of array as in setAbilityPoints, but without cleverness
return true;
}
}
Program kontrol
Kode sumber untuk program kontrol dapat ditemukan di sini . Sekarang diperbarui dengan semua alien yang termasuk dalam menjalankan terbaru.
Skor akhir (20.07.2014, rata-rata 10 pertandingan)
alien.PredicatClaw 1635.4 alien.LazyBee 1618.8 alien.CartographerLongVisionAlien 1584.6 alien.PilihBuyung Anda 1571.2 alien.Bender 1524.5 alien.HerjanAlien 1507.5 alien.FunkyBob 1473.1 alien.SecretWeapon2 1467.9 alien.PredicatMata 1457.1 alien.CorporateAlien 1435.9 alien.GentleGiant 1422.4 alien.CropCircleAlien 1321.2 alien.VanPelt 1312.7 alien.NewGuy 1270,4 alien.BananaPeel 1162.6 alien.Rock 1159.2 alien.BullyAlien 1106.3 alien.Geoffrey 778.3 alien.SecretWeapon 754.9 alien.SecretWeapon3 752.9 alien.FunkyJack 550.3 alien. Batu 369.4 alien.Assassin 277.8 alien.Predicoward 170.1 mangsa.Cow 155.2 alien.Morphling 105.3 alien.Eli 99.6 alien. Prajurit 69.7 alien.Hunter 56.3 alien.Manager 37.6 alien.OkinawaLife 14.2 mangsa. Paus 10.5 alien.Gamer 4.5 alien.Randomite 0 alien.Guard 0 mangsa. Elang 0 alien.Rogue 0 alien.WeakestLink 0 alien.Fleer 0 alien. Korban 0 alien. Menyimpan 0 alien.Junkie 0 alien.Coward 0 alien.CleverAlien 0 mangsa. Manusia 0 alien.BlindBully 0 mangsa. Penawaran 0 alien.AimlessWanderer 0