AlienWar
Dieses Spiel findet auf einem sehr überfüllten Planeten statt, auf dem Aliens die überlegene Rasse sind. Deine Aufgabe ist es, dein eigenes Alien zu erschaffen und alle anderen zu besiegen.
Die Tafel
Es ist eine zweidimensionale Tafel.
Die Länge einer Seite der Platte beträgt Math.ceil(sqrt(species * 100 * 2.5))
= ~ 40% der verwendeten Platte. Das Brett ist ein Planet. Wenn Sie also im Westen aus der Karte herausgehen, kehren Sie im Osten zurück. Wenn Sie im Norden spazieren gehen, befinden Sie sich im Süden.
Fähigkeiten
Jede Spezies auf dem Planeten hat Fähigkeiten. Hier sind sie:
Name Nutzen Leben HP = LebenLVL * 5 (verringert sich mit jedem Treffer, 0 = tot), Basis HP = 10 Stärke Deine Treffer verursachen einen zufälligen int im Bereich [1 to strengthLVL] Schaden Verteidigung Wähle zufällig int im Bereich [0 bis (50 / defenseLVL + 1)] aus. Wenn int == 0 ist, weiche dem nächsten Angriff aus vision Gibt Ihnen visionLVL / 2-Felder um Ihre Vision Klugheit Verwischt (erhöht) jede Fähigkeit zufällig im Bereich [0 bis KlugheitLVL / 2], wenn sie an andere Aliens gesendet wird
Das Spiel
- Jede Einreichung wird 100 Mal eingereicht.
- Nach dem Instanzen kann jeder Alien insgesamt 10 Fähigkeitspunkte setzen. Sie können für jede Instanz unterschiedliche Punkte festlegen.
- Wenn Sie mehr als 10 Punkte setzen, stirbt die Instanz.
- Ein Spiel besteht aus 1000 Runden. Jede Runde:
- Jeder Alien muss einen Zug über zurückgeben
move(char[] fields)
. Dies beinhaltet Move.STAY. - Wenn sich mehrere Aliens auf einem Feld befinden, werden 2 zufällig ausgewählt:
- Wenn beide sich auf Frieden einigen (falsch eintreffen
wantToFight
), bleiben sie, wo sie sind, sonst kämpfen sie. - Dies wiederholt sich, bis nur ein Alien auf einem Feld bleibt oder sich alle auf Frieden einigen.
- Wenn beide sich auf Frieden einigen (falsch eintreffen
- Jeder Alien muss einen Zug über zurückgeben
Wenn ein Außerirdischer etwas tötet, erhält er 1/5 seiner feindlichen Fähigkeiten . Die HP der Gewinner werden mit 2 * enemyLifeLVL aufgefüllt .
Gewinner ist derjenige mit den meisten Fähigkeiten (Summe der Fähigkeiten lebender Aliens).
Kämpfe
Beide Aliens treffen sich "zur gleichen Zeit". Wenn Sie den anderen Alien töten, kann er Sie trotzdem einmal treffen.
Ausweichen: Bevor du getroffen wirst, berechnet das Spiel, ob du dem Angriff mit ausweichen kannst rand.nextInt(50 / defenseLvl + 1) == 0
. Die Verteidigungsstufe wird bei der Berechnung Ihrer Ausweichfähigkeiten niemals höher als 50 sein (daher beträgt die maximale Ausweichchance 50%).
Treffer: Wenn Sie dem Angriff nicht ausweichen, werden Sie getroffen und Ihre HP werden um reduziert rand.nextInt(enemy.getStrengthLvl()) + 1
.
Ein Kampf endet, wenn einer oder beide beteiligten Aliens tot sind. Der Gewinner, falls vorhanden, erhält die Belohnung.
Spielregeln
- Das Basislevel für jede Fähigkeit (ohne Angabe von Fähigkeitspunkten) ist 1 (Basis-HP sind 10).
- Die Werte, die gesendet werden, wenn man zum Kampf aufgefordert wird, sind Leben (nicht HP!), Stärke, Verteidigung und Sicht .
- Cleverness wird NICHT gesendet, wenn Sie zum Kampf aufgefordert werden.
- Alle Gleitkommazahlen werden beim Verwenden / Senden auf die nächste Ganzzahl gerundet, aber als Gleitkommazahlen gespeichert und erhöht.
- Die maximale Ausweichchance beträgt 50%. Andernfalls können Kämpfe niemals enden.
Die Beute
Es gibt 5 Arten, die bereits auf dem Feld sind. Da sie Beute sind, ziehen sie es vor, nicht zu kämpfen, wenn sie darum gebeten werden.
Wal: lvl 10 Leben bleibt Kuh: Stufe 10 Stärke Zufälliger Zug Schildkröte: Stufe 10 Verteidigung Südwesten Adler: Stufe 10 Vision Untersucht Felder, versucht Gefahren zu entgehen Mensch: Stufe 10 Cleverness North East
Sie werden mit ihrem Anfangsbuchstaben (dh W
für Wal) in der Karte dargestellt (Außerirdische mit A
, leere Felder mit einem Leerzeichen ' '
).
Zusätzliche Regeln
- Reflexion ist nicht erlaubt.
- Interaktion (Instanzen usw.) mit anderen Außerirdischen ist nicht gestattet.
- Das Schreiben / Lesen von externen Ressourcen wie Dateien oder Datenbanken ist ebenfalls nicht zulässig.
- Nur Java-Einsendungen (Version 1.8) sind zulässig (Java ist recht einfach und Sie müssen kein Experte für dieses Spiel sein).
- Alle Einsendungen müssen die Alien-Klasse erweitern und werden in das Alien-Paket aufgenommen.
- Ich werde den besten Außerirdischen am 19. Juli annehmen. Alle bis 12:00 UTC an diesem Tag eingereichten Aliens werden getestet.
- Maximal 3 Einsendungen pro Benutzer, da es bereits sehr viele Aliens gibt.
Beispiel eines Ausländers
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;
}
}
Steuerungsprogramm
Quellcode für das Steuerungsprogramm finden Sie hier . Jetzt aktualisiert mit allen Aliens, die im letzten Lauf enthalten sind.
Endergebnisse (20.07.2014, Durchschnitt von 10 Spielen)
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 alien.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 Beute.Kuh 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 Beute.Wal 10.5 alien.Gamer 4.5 alien.Randomite 0 alien.Guard 0 prey.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 Beute. Mensch 0 alien.BlindBully 0 Beute. Schildkröte 0 alien.AimlessWanderer 0