Updated Results
Introduction
To celebrate Monster Hunter 4 Ultimate launch on new 3DS (February 13th), here's a King of the Hill themed on this game.
You are a novice hunter, who'll take part in a tournament consisting of 5 consecutives hunts. At the end of these hunts, hunters will be ranked depending on the damage they dealt to monsters and of course wether they slayed it or have been vanquished by it. Also, as a novice, you'll have to stick to the weapon you choose until you are more experienced.
Lexicon
ATK
: Attack
DEF
: Defense
HP
: Health Points
NRG
: Energy
GRD
: Guard
SPD
: Speed
SHP
: Sharpness
AGR
: Aggressivity
POT
: Potion
RAT
: Ration
WHE
: Whetstone
Principle
Hunters can choose among a variety of 4 weapons :
| Id | ATK | GRD | SPD |
------------------------------------------------
Great Sword | GS | 7 | 2 | 2 |
Dual Blade | DB | 3 | 0 | 7 |
Lance | LA | 5 | 4 | 3 |
Hammer | HA | 9 | 0 | 1 |
The 5 monsters to hunt are :
| HP | ATK | DEF |
----------------------------------------
Yian Kut-ku | 1500 | 5 | 4 |
Rathian | 1800 | 7 | 4 |
Rathalos | 1800 | 4 | 7 |
Tigrex | 2000 | 8 | 6 |
Fatalis | 2500 | 11 | 7 |
When the game begins, you have to choose a weapon. Then, for each of the 5 hunts, you'll be split among teams of 4 players and you'll start hunting.
Each hunter basic stats are :
| HP | NRG | DEF | SHP | AGR |
-------------------------------------------------------
Hunter | 100 | 100 | 5 | 4 | 0 |
Stats can't go beyond their initial values (i.e. taking a potion with 50HP only restores your health up to 100HP).
Each hunter starts with :
| POT | RAT | WHE |
---------------------------------------
Hunter Items | 5 | 5 | 5 |
The controller provides you with input via command arguments, your program has to output via stdout.
Syntax
Output (preparation)
Before the game starts, the controller invokes you submission without arguments. This means you have to choose one of the 4 weapon by outputing its Id. You'll keep this weapon till the end of the game.
You need to output :
WeaponID
For example : GS
.
Input
Each time your program is called, it will receive arguments in this format (newlines not part of the input an only used for formatting):
Round;YourPlayerId;Monster_ATK;Monster_DEF;Monster_HP;Monster_TargetId;Monster_NextMoveId;
PlayerId_WeaponId_ATK_DEF_HP_NRG_GRD_SPD_SHP_AGR_POT_RAT_WHE_CurrentCombo;
PlayerId_WeaponId_ATK_DEF_HP_NRG_GRD_SPD_SHP_AGR_POT_RAT_WHE_CurrentCombo;
PlayerId_WeaponId_ATK_DEF_HP_NRG_GRD_SPD_SHP_AGR_POT_RAT_WHE_CurrentCombo;
PlayerId_WeaponId_ATK_DEF_HP_NRG_GRD_SPD_SHP_AGR_POT_RAT_WHE_CurrentCombo
Example input
3;3;5;5;1164;2;S;
0_LA_5_5_75_45_4_3_2_55_5_5_5_AA;
1_HA_9_5_75_100_0_1_3_321_5_5_5_N;
2_GS_7_5_75_35_2_2_2_59_5_5_5_BB;
3_DB_3_5_75_78_0_7_2_0_5_5_5_AB
Here, you see it is the 3rd minute (starts at 1) and you are player 3. You are carrying Dual Blades, you have 3 ATK, 5 DEF, 75 HP, 78 NRG, 0 GRD, 7 SPD, 2 SHP, 5 POT, 5 RAT, 5 WHE and your current combo is A->B.
Output
See gameplay.
Gameplay
Teams of 4 hunters are made randomly at the start of each hunt. If there are not enough hunters to make teams, the game will automatically add 1 or more of the 4 "helper" (Felyne, Melynx, Palico or Koneko) choosen randomly to reach desired numbers.
Each hunt lasts 50 minutes, and you can take 1 action per minute (i.e. 50 actions per hunt). For each of these 50 minutes, you'll need to output a letter corresponding to the action you'll take (see actions).
Hunters go first (in a random order choosen at the beginning), then the monster executes its action (which was provided as Monster_NextMoveId
). So each minute goes like this : Hunter 1 > Hunter 2 > Hunter 3 > Hunter 4 > Monster > Next minute...
On the first minute, the monster will always use O
(see actions). Each turn after its action, the monster will choose its next target by selecting the hunter with the highest AGR
value. AGR
decreases by 30 per minute.
If the monster or all hunters are killed, the hunt stops. The hunters are revived after each hunts, and their stats, items, combos and actions are reset to their default values.
Hunters' actions
A
: Attack A [RequiresNRG
]B
: Attack B [RequiresNRG
]C
: Attack C [RequiresNRG
]G
: Guard [Requires 15NRG
. Can only be used if the weapon has GRD > 0. ActivatesGRD
stat in damage formula for next turn.]D
: Dodge [Requires 30NRG
. Completely dodge damage for next turn.]W
: Wait [Restores 30NRG
. Does nothing else.]T
: Taunt [Restores 80NRG
. IncreasesAGR
by 300.]P
: Potion [Requires 1POT
. Restores 90HP
. ReducesDEF
by 2 for next turn.]R
: Ration [Requires 1RAT
. Restores 30HP
AND 50NRG
. ReducesDEF
by 2 for next turn.]S
: Sharpen [Requires 1WHE
. RestoresSHP
to 4. ReducesDEF
by 2 for next turn.]
Monsters' actions
Monsters choose their action randomly.
O
: Observe (5% chance) [Does nothing.]A
: Attack (40% chance) [Attacks target (defined inMonster_TargetId
).]R
: Roar (10% chance) [Stuns everyone. Hunters do nothing next turn.]F
: Fly (10% chance) [Completely dodge every attack next turn.]C
: Charge (15% chance) [Attacks target (defined inMonster_TargetId
). Completely dodge every attack next turn.]S
: Spin (20% chance) [Attacks every hunter.]
Attacks & Combos
Each weapon can be used to launch 3 differents attacks : A
, B
and C
.
Each attacks requires and consumes NRG
according to this formula : energy = floor(100 / (SPD + 2))
Damages are calculated with this formula : damage = ATK * (10 + SHP - DEF [- GRD])
. GRD
is only applied if the hunter is currently guarding (see actions). When a hunter is using an item (see actions), his DEF
is reduced by 2. Each hit on a monster reduces SHP
by 1 till the minimum of 1. Monsters have a SHP
of 0. Each damage inflicted to a monster increases AGR
by the same value.
If you manage to chain attack to create a specific combo, your damage will be multiplicated by the corresponding bonus. Any action other than an attack reset your current combo, and combo with reset = 1
will also reset it.
| Combo | Bonus | Reset |
------------------------------------------------------------
Great Sword | B -> B -> A | 3 | 1 |
Great Sword | B -> B -> B -> C | 4 | 1 |
------------------------------------------------------------
Dual Blade | C -> C | 2 | 1 |
Dual Blade | A -> B -> A -> B | 3 | 0 |
Dual Blade | A -> B -> A -> B -> A | 4 | 0 |
Dual Blade | A -> B -> A -> B -> A -> C | 5 | 1 |
------------------------------------------------------------
Lance | B -> B -> B | 3 | 1 |
Lance | A -> A -> A | 2 | 0 |
Lance | A -> A -> A -> C | 4 | 1 |
------------------------------------------------------------
Hammer | B -> B -> A | 2 | 1 |
Hammer | C -> C -> A | 2 | 1 |
Rules
- Writing to files is allowed. Please write to "yoursubmissionname.txt", the folder will be emptied before a game starts. Other external resources are disallowed.
- Your submission has 1 second to respond.
- Provide commands to compile and run your submissions.
Scoring & Winning
You get :
- +1000 points for surviving a successful hunt (monster dead).
- +0 points for surviving a unsuccessful hunt (monster alive).
- -1000 points for passing away (hunter dead) no matter of the result of the hunt.
- +1 point per damage dealt to the monster
Winner is the one with the highest score after 5 hunts.
Controller
You can find the controller on github. It also contains 4 samplebots, written in Java. Open it in Eclipse, place the compiled bots in the root folder and add a class to the control program (just like the samplebots).
Results
Average of 10 games :
1. Lancer: 5495
2. Felyne: 4786
3. Melynx: 4190
4. RedViper: 3886
5. Koneko: 3639
6. TheKingsJester: 3100
7. RoranStronghammer: 3046
8. WeaselWill: 2849
Complete logs of 1 game : http://pastebin.com/bfR5ZiMJ
Results of 10 games : http://pastebin.com/YWFf6qT7
<br>
. (Related HTML5 pro-tip: there is no such thing as a self-closing tag.<br/>
is only permitted for legacy reasons and is semantically equivalent to<br>
.) \$\endgroup\$