외계인
이 게임은 외계인이 우월한 매우 혼잡 한 행성에서 진행됩니다. 당신의 임무는 자신의 외계인을 만들고 다른 모든 것을 이길 것입니다.
보드
2 차원 보드입니다.
보드 한쪽의 길이는 Math.ceil(sqrt(species * 100 * 2.5))
사용 된 보드의 ~ 40 %입니다. 보드는 행성이므로 서쪽의지도에서 벗어나면 동쪽으로 돌아옵니다. 북쪽으로 걸어 가면 남쪽에 있습니다.
능력
지구상의 각 종에는 능력이 있습니다. 여기 있습니다:
이름 혜택 수명 HP = lifeLVL * 5 (타격 할 때마다 감소, 0 = 사망), 기본 HP = 10 강도 당신의 타격은 [1에서 strengthLVL]의 범위에서 무작위 int를합니다 방어 [0 ~ (50 / DefenseLVL + 1)] 범위에서 int를 임의로 선택 합니다. int == 0 인 경우 다음 공격을 피하십시오 비전은 당신이주는 visionLVL 당신의 비전 주위에 /이 필드를 영리함 다른 외계인에게 보낼 때 [0에서 영리함 LVL / 2] 범위에서 무작위로 모든 능력을 흐리게합니다 (증가시킵니다)
게임
- 각 제출마다 100 개의 인스턴스가 있습니다.
- 인스턴스화 후, 각 외계인은 총 10 개의 능력치를 설정할 수 있습니다. 모든 인스턴스에 대해 다른 지점을 설정할 수 있습니다.
- 10 점 이상을 설정하면 인스턴스가 종료됩니다.
- 게임은 1000 라운드로 구성됩니다. 각 라운드 :
- 모든 외계인은를 통해 이동을 반환해야합니다
move(char[] fields)
. 여기에는 Move.STAY가 포함됩니다. - 필드에 여러 외계인이있는 경우 무작위로 2가 선택됩니다.
- 둘 다 평화에 동의한다면 (에서 거짓을 반환
wantToFight
) 그들은 그들이있는 곳에 머무르고 그렇지 않으면 싸울 것입니다. - 외계인 한 명이 현장에 머 무르거나 모두 평화에 동의 할 때까지 반복됩니다.
- 둘 다 평화에 동의한다면 (에서 거짓을 반환
- 모든 외계인은를 통해 이동을 반환해야합니다
외계인이 무언가를 죽이면 각 적 능력의 1/5을 얻습니다 . 당첨 된 HP는 2 * enemyLifeLVL 로 재충전됩니다 .
승자는 가장 많은 능력 을 가진 사람입니다 (살아있는 외계인의 능력의 합).
싸움
두 외계인이 "동시에"서로 맞을 것입니다. 즉, 다른 외계인을 죽이면 한 번도 칠 수 있습니다.
회피 : 공격을하기 전에 게임은을 사용하여 공격을 회피 할 수 있는지 계산합니다 rand.nextInt(50 / defenseLvl + 1) == 0
. 회피 기술을 계산할 때 DefenseLvl은 50보다 크지 않습니다 (따라서 최대 회피 확률은 50 %입니다).
타격 : 공격을 피하지 않으면 공격을 받고 HP가 감소합니다 rand.nextInt(enemy.getStrengthLvl()) + 1
.
싸움은 관련된 외계인 중 하나 또는 둘 다 죽었을 때 끝납니다. 승자가있는 경우 보상을받습니다.
게임 룰
- 모든 능력의 기본 레벨 (능력 점수를 제공하지 않음)은 1입니다 (기본 HP는 10입니다).
- 싸우라는 요청을받을 때 보내지는 가치는 생명 (HP가 아님!), 힘, 방어 및 비전 수준입니다.
- 싸우라는 요청을받을 때 영리함이 전달되지 않습니다.
- 모든 부동 숫자는 사용 / 전송시 가장 가까운 정수로 ROUNDED되지만 float로 저장 및 증가합니다.
- 최대 회피 확률은 50 %입니다. 그렇지 않으면 싸움이 끝나지 않을 수 있습니다.
먹이
이미 현장에 5 종이 있습니다. 그들은 먹이이기 때문에, 요청 될 때 싸우지 않기로 선택합니다.
고래 : 레벨 10 생명 유지 암소 : 레벨 10 강도 랜덤 이동 거북이 : 레벨 10 방어 남쪽 서쪽 독수리 : 레벨 10 비전 필드를 조사하고, 위험을 피하려고합니다 인간 : Lvl 10 영리 북동
그것들은 W
지도에서 첫 글자 (예 : 고래) 로 표시 될 것입니다 ( A
공백이있는 에일리언이 있는 빈 칸 ' '
).
추가 규칙
- 반사가 허용되지 않습니다.
- 다른 외계인과의 대화 (인스턴스 등)는 허용되지 않습니다.
- 파일이나 데이터베이스와 같은 외부 리소스를 쓰거나 읽을 수 없습니다.
- Java (버전 1.8) 제출 만 허용됩니다 (Java는 다소 쉬우므로이 게임의 전문가 일 필요는 없습니다).
- 모든 제출물은 외계인 클래스를 확장해야하며 외계인 패키지에 배치됩니다.
- 나는 7 월 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;
}
}
제어 프로그램
제어 프로그램의 소스 코드는 여기 에서 찾을 수 있습니다 . 최신 런에 포함 된 모든 외계인으로 업데이트되었습니다.
최종 점수 (2014.07.20, 평균 10 게임)
외계인 .PredicatClaw 1635.4 외계인 .LazyBee 1618.8 외계인지도 제작자 LongVisionAlien 1584.6 외계인. 전투를 선택하세요 외계인 벤더 1524.5 외계인 .HerjanAlien 1507.5 외계인. 펑키 밥 1473.1 외계인. 비밀 무기 2 1467.9 외계인 PredicatEyes 1457.1 외계인 기업 외국인 1435.9 외계인 젠틀 거대한 1422.4 외계인 .CropCircleAlien 1321.2 외계인 .VanPelt 1312.7 alien.NewGuy 1270.4 외계인 바나나 껍질 1162.6 외계인. 락 1159.2 외계인 .BullyAlien 1106.3 외계인 .Geoffrey 778.3 외계인. 비밀 무기 754.9 외계인. 비밀 무기 3 752.9 외계인. 펑키 잭 550.3 외계인. 돌 369.4 외계인 암살자 277.8 외계인. Predicoward 170.1 먹이 15Cow 외계인. 모 플링 105.3 외계인 엘리 99.6 외계인 전사 69.7 외계인 사냥꾼 56.3 외계인 관리자 37.6 외계인. 오키나와 라이프 14.2 먹이. 고래 10.5 외계인 게이머 4.5 alien.Randomite 0 외국인 가드 0 먹이. 독수리 0 외계인. 도적 0 alien.WeakestLink 0 alien.Fleer 0 외계인 생존자 0 외계인. 속도 0 alien.Junkie 0 alien.Coward 0 alien.CleverAlien 0 먹이. 인간 0 alien.BlindBully 0 먹이. 거북이 0 alien.AimlessWanderer 0