AlienWar
Ce jeu se déroule sur une planète très peuplée où les extraterrestres sont la race supérieure. Votre tâche est de créer votre propre extraterrestre et de battre tous les autres.
Le tableau
C'est un tableau en 2 dimensions.
La longueur d'un côté du tableau est Math.ceil(sqrt(species * 100 * 2.5))
= ~ 40% du tableau utilisé. Le tableau est une planète, donc si vous sortez de la carte à l'ouest, vous revenez à l'est. Si vous vous promenez dans le nord, vous vous retrouverez dans le sud.
Les capacités
Chaque espèce sur la planète a des capacités. Les voici:
Nom Bénéfice Durée de vie HP = LifeLVL * 5 (réduit à chaque frappe, 0 = mort), HP de base = 10 force Vos coups infligent des dégâts aléatoires de 1 à 3 defense choisit al inter ent dans la plage [0 a (50 / defenseLVL + 1)], si int == 0 alors esquive la prochaine attaque vision Vous donne une visionLVL / 2 champs autour de vous vision ingéniosité Brouille (augmente) chaque capacité de manière aléatoire dans la plage [0 à ingéniositéLVL / 2] lors de l'envoi à d'autres extraterrestres.
Le jeu
- Il y aura 100 instances de chaque soumission.
- Après instanciation, chaque étranger peut définir 10 points de capacité au total. Vous pouvez définir différents points pour chaque instance.
- Si vous définissez plus de 10 points, l'instance meurt.
- Un jeu consiste en 1000 tours. Chaque tour:
- Chaque étranger doit retourner un mouvement via
move(char[] fields)
. Cela inclut Move.STAY. - Si plusieurs étrangers se trouvent sur un champ, 2 seront choisis au hasard:
- Si les deux sont d’accord sur la paix (retourne faux
wantToFight
), ils resteront là où ils sont, sinon ils se battront. - Cela boucle jusqu’à ce qu’un seul étranger reste sur un champ ou que tous s’accordent pour la paix.
- Si les deux sont d’accord sur la paix (retourne faux
- Chaque étranger doit retourner un mouvement via
Si un extraterrestre tue quelque chose, il obtient 1/5 de chacune des capacités de son ennemi . Les gagnants HP seront remplis avec 2 * ennemisLifeLVL .
Le gagnant est celui qui a le plus de capacités (somme des capacités des extraterrestres vivants).
Combats
Les deux extraterrestres vont se frapper "en même temps", cela signifie que si vous tuez l'autre extraterrestre, il peut toujours vous frapper une fois.
Esquive: Avant de vous faire toucher, le jeu déterminera si vous pouvez esquiver l'attaque en utilisant rand.nextInt(50 / defenseLvl + 1) == 0
. defenseLvl ne sera jamais supérieur à 50 lors du calcul de vos compétences d'esquive (le risque d'esquive maximum est donc de 50%).
Frapper: Si vous n'esquivez pas l'attaque, vous serez touché et votre HP sera réduit de rand.nextInt(enemy.getStrengthLvl()) + 1
.
Un combat prend fin lorsque l'un ou l'autre ou les deux étrangers impliqués sont morts. Le gagnant, s'il en existe un, reçoit la récompense.
Regles du jeu
- Le niveau de base pour chaque capacité (sans donner de points de capacité) est égal à 1 (HP de base est de 10).
- Les valeurs envoyées lorsqu'on demande de se battre sont la vie (pas HP!), La force, la défense et la vision .
- L'intelligence n'est PAS envoyée lorsqu'on lui demande de se battre.
- Tous les nombres flottants seront arrondis au nombre entier le plus proche lors de leur utilisation / envoi, mais stockés et augmentés sous forme de nombres flottants.
- Dodge-chance maximum est de 50%. Sinon, les combats ne peuvent jamais se terminer.
La proie
Il y a 5 espèces qui sont déjà sur le terrain. Comme ils sont une proie, ils choisissent de ne pas se battre quand on le leur demande.
Baleine: 10 séjours de la vie Vache: force 10 Mouvement aléatoire Tortue: niveau 10, défense sud ouest Eagle: lvl 10 vision Examine les champs, tente d'éviter le danger Humain: niveau 10 intelligence nord est
Ils seront représentés avec leur première lettre (par exemple W
pour la baleine) sur la carte (Aliens avec A
, champs vides avec un espace ' '
).
Règles supplémentaires
- La réflexion est interdite.
- Interagir (instancer, etc.) avec d'autres extraterrestres est interdit.
- Écrire / lire des ressources externes telles que des fichiers ou des bases de données est également interdit.
- Seules les soumissions Java (version 1.8) sont autorisées (Java est assez simple et vous n'avez pas besoin d'être un expert pour ce jeu).
- Toutes les soumissions doivent s'étendre à la classe alien et seront placées dans le paquet alien.
- J'accepterai le meilleur extraterrestre le 19 juillet. Tous les étrangers soumis avant 12h00 ce jour-là seront testés.
- Maximum de 3 soumissions par utilisateur car il y a déjà beaucoup d'extraterrestres.
Exemple d'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;
}
}
Programme de contrôle
Le code source du programme de contrôle peut être trouvé ici . Maintenant mis à jour avec tous les extraterrestres inclus dans la dernière exécution.
Score final (20.07.2014, moyenne de 10 jeux)
alien.PredicatClaw 1635.4 alien.LazyBee 1618.8 alien.CartographerLongVisionAlien 1584.6 alien.ChooseYourBattles 1571.2 alien.Bender 1524.5 alien.HerjanAlien 1507.5 alien.FunkyBob 1473.1 alien.SecretWeapon2 1467.9 alien.PredicatEyes 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 étranger.Geoffrey 778.3 alien.SecretWeapon 754.9 alien.SecretWeapon3 752.9 alien.FunkyJack 550.3 alien.Stone 369.4 Alien.Assassin 277.8 alien.Predicoward 170.1 proie.Cow 155.2 alien.Morphling 105.3 alien.Eli 99,6 Alien.Warrior 69.7 alien.Hunter 56.3 alien.Manager 37.6 alien.OkinawaLife 14.2 proie.Baleine 10.5 alien.Gamer 4.5 alien.Randomite 0 alien.Guard 0 proie.Eagle 0 alien.Rogue 0 alien.WeakestLink 0 alien.Fleer 0 alien.Survivor 0 alien.Sped 0 alien.Junkie 0 alien.Coward 0 alien.CleverAlien 0 proie.humain 0 alien.BlindBully 0 proie.Turtle 0 alien.AimlessWanderer 0