AlienWar
Ця гра відбувається в дуже переповненій планеті, де прибульці є вищою расою. Ваше завдання - створити власного прибульця і перемогти всіх інших.
Дошка
Це двовимірна дошка.
Довжина однієї сторони дошки Math.ceil(sqrt(species * 100 * 2.5))
= ~ 40% використовуваної дошки. Дошка - це планета, тож якщо ви виходите з карти на заході, ви повернетесь на схід. Якщо ви вийдете на північ, ви опинитесь на півдні.
Здібності
Кожен вид планети має здібності. Ось вони:
Найменування Користь життя HP = lifeLVL * 5 (зменшується з кожним ударом, який ви отримуєте, 0 = мертвий), базовий HP = 10 сила Ваші удари завдають випадкового int в межах [1 до jakoсті LVL] Захист Випадково виберіть int у діапазоні [0 до (50 / захистLVL + 1)], якщо int == 0, тоді ухиліться від наступної атаки бачення Дає вам зірLVL / 2 поля навколо вас зору кмітливість Розмиває (збільшує) кожну здатність випадковим чином у межах [0 до кмітливостіLVL / 2] при надсиланні іншим прибульцям
Гра
- Буде 100 примірників кожного подання.
- Після інстанції кожен іноземець може встановити 10 балів здібностей. Ви можете встановити різні точки для кожного примірника.
- Якщо встановити більше 10 балів, екземпляр гине.
- Гра складається з 1000 раундів. Кожен раунд:
- Кожен іноземець повинен повернути рух через
move(char[] fields)
. Сюди входить Move.STAY. - Якщо на полі є кілька прибульців, 2 будуть вибрані випадковим чином:
- Якщо обидва домовляться про мир (повертаються помилково
wantToFight
), вони залишаться там, де вони є, інакше вони битимуться. - Це петлі, поки на полі не залишається лише один іноземець або всі не домовляться про мир.
- Якщо обидва домовляться про мир (повертаються помилково
- Кожен іноземець повинен повернути рух через
Якщо іноземець щось вбиває, він отримує 1/5 здібностей кожного з ворогів . Переможці HP будуть поповнені 2 * воротомLifeLVL .
Переможець - це той, хто має найбільші здібності (сума здібностей живих прибульців).
Бої
Обидва прибульці вдарять один про одного "одночасно", це означає, що якщо ви вб'єте іншого прибульця, він все одно може вдарити вас один раз.
Ухилення: Перш ніж ви потрапите, гра підрахує, чи зможете ви уникнути атаки, використовуючи rand.nextInt(50 / defenseLvl + 1) == 0
. DefenseLvl ніколи не буде перевищувати 50 при розрахунку ваших навичок ухилення (отже, максимальний шанс ухилення - 50%).
Удар: Якщо ви не ухилитесь від атаки, ви отримаєте удар, і ваш HP зменшиться на rand.nextInt(enemy.getStrengthLvl()) + 1
.
Бійка закінчується, коли один або обидва іноземці, які беруть участь, мертві. Переможець, якщо такий існує, отримує нагороду.
Гамерули
- Базовий рівень для кожної здібностей (не даючи балів здібностей) дорівнює 1 (базовий HP - 10).
- Цінності, що їх посилають на боротьбу, - це життєвий рівень (а не HP!), Сила, захист і зір .
- Розумність НЕ надсилається, коли її просять боротися.
- Усі плаваючі числа будуть ОКРЕМЕННІ до найближчого цілого числа при використанні / відправці, але зберігаються та збільшуються як плаваючі.
- Максимальний шанс ухилення - 50%. Інакше бійки можуть ніколи не припинятися.
Здобич
Є 5 видів, які вже є на полі. Оскільки вони є здобиччю, вони вирішують не битися, коли їх просять.
Кит: lvl 10 життя Корова: lvl 10 сила Випадковий хід Черепаха: lvl 10 оборона південний захід Орел: lvl 10 зір Оглядає поля, намагається уникнути небезпеки Людина: lvl 10 кмітливість на північний схід
Вони будуть представлені першою літерою (тобто W
для кита) на карті (Прибульці з A
, порожні поля з пробілом ' '
).
Додаткові правила
- Рефлексія заборонена.
- Взаємодія (інстанція тощо) з іншими прибульцями заборонена.
- Запис / читання зовнішніх ресурсів, таких як файли або бази даних, також заборонено.
- Дозволено лише подання Java (версія 1.8) (Java досить проста, і вам не потрібно бути експертом для цієї гри).
- Усі матеріали повинні поширювати чужий клас і будуть розміщені в чужорідному пакеті.
- Я прийму найкращого прибульця 19 липня. Усі прибульці, подані до 12:00 UTC цього дня, будуть протестовані.
- Максимум 3 подання на користувача, оскільки іноземців вже дуже багато.
Приклад прибульця
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;
}
}
Програма управління
Вихідний код програми управління можна знайти тут . Зараз оновлено з усіма прибульцями, включеними до останнього запуску.
Підсумкові бали (20.07.2014, в середньому 10 ігор)
чужий.PredicatClaw 1635.4 інопланетянин.ЛазиБее 1618.8 інопланетянин.Картограф Лонг ВізіонАлієн 1584.6 чужий.Вибір Ваших Битв 1571.2 чужий.Бендер 1524.5 інопланетянин.ГерджанАлієн 1507,5 інопланетянин.FunkyBob 1473.1 інопланетянин.SecretWeapon2 1467.9 іноземець.PredicatEyes 1457.1 інопланетянин.Корпоративнеалієн 1435.9 інопланетянин.Гендерний велетень 1422.4 чужий.CropCircleAlien 1321.2 чужорідний.VanPelt 1312.7 інопланетянин.НовийGuy 1270.4 інопланетянин.BananaPeel 1162.6 чужорідний.Рок 1159.2 чужий.БулліАлієн 1106.3 інопланетянин.Джеффрі 778.3 інопланетянин.SecretWeapon 754.9 інопланетянин.SecretWeapon3 752.9 інопланетянин.FunkyJack 550.3 чужорідний.Стон 369.4 чужинець.Асссасін 277.8 чужорідний.Predicoward 170.1 здобич.Корова 155.2 інопланетянин Морфлінг 105.3 чужорідний.Елі 99.6 інопланетянин. Воїн 69.7 інопланетянин. Мисливець 56.3 інопланетянин. Менеджер 37.6 інопланетянин.OkinawaLife 14.2 здобич.Кіт 10.5 чужий.Гамер 4.5 alien.Randomite 0 чужий.Гуард 0 здобич.Орел 0 чужорідний.Рога 0 alien.WeakestLink 0 інопланетянин. Флер 0 чужий.Сервівор 0 чужий.Спед 0 чужий.Junkie 0 інопланетянин alien.CleverAlien 0 здобич.Людина 0 alien.BlindBully 0 здобич.Турець 0 alien.AimlessWanderer 0