Give your advice here.
great cant wait
Patches are a great all-rounder.
if you surround wheat it will produce more money
But you need to surround it with wheat not just anything.
rain slows you down
Lol the 0-11 age bracket is dominating
ya it is weird that the 0-11 age bracket is winning
i think it is because the ai youth and the code quest
but i bet shiniglice will beat them
What combination of farms do you think is best to use?
The league finished. I was fixing the code right before the end, so I am completely exhausted…
I have some tips. First, I simulated strong pattern of farms for build in protected area.
Strongest combination of farms is patch
and wheat
with river
.
patch river patch
wheat river wheat
...
However, rain
makes more strong combination. In field in a field without any obstacles, strongest farm type is wheat
. Protected area should be filled by wheat
.
One more thing, if there are river
, well
, or tree
, patch
is better than wheat
for next farm. But, if two patch
adjoins, their income will down.
Strongest combination of farms in non-protected area will transform by case. (ex. strongest in empty area is garden
, but in filled area garden
isn’t strong)
Next, about rain
and mist
. I used this function to calc income.
// rains = [ true / false ]
// mists = [ null / "wheat" / "patch" / "garden" / "poison" ]
function incomeCalc(obj, rains, mists){
if(obj === null || obj.type == "river" || obj.type == "construction") return 0;
if(obj.type in obstacles) return 0;
var ans = obj.baseIncome;
if(obj.color != hero.color) ans *= -1;
if(!rains[obj.col]){
if(obj.type == mists[obj.row]) return ans * 2;
if(mists[obj.row] == "poison")
return ans * (hasRiverFactor(obj.place) ? poisonMistRecoverFactor : 0);
if(mists[obj.row] !== null) return ans * 0.5;
return ans;
}
if(!hasRiverFactor(obj))
return ans * (1 + (hero.getParameters(obj.type).riverFactor-1)*0.25);
return ans;
}
It also works for not actually patterns, so I can know income before make them.
It is bad to recklessly make them. I kept it until opponent makes, and then I made. Sometimes, I made poison
mist to down opponent’s income.
Since codecombat didn’t send me the winner verification form (yet), I will be sharing some tips here.
There are 2 possible playstyles for this game.
You can play safely by building on your 3 columns with the patch and wheat with river combination as k_k_javascript mentioned above. Then you can build anywhere that gives you the highest value / time
score. Another playstyle is playing aggressively by only building patches and gardens around rivers and replacing your opponent’s high income farms.
I simulated these 2 playstyles on the 1st turn to determine which one gives the most income. This also gives me a plan to follow and I constantly update the plan when the opponent builds something.
Mist is only played if it cannot be backfired. I try every possible position of the mist to pick the best row that maximizes my income or minimizes the opponent’s income. I regret spending very little time coding the mist and rain because I think there are more strategies that can be explored.
How are you able to determine were the enemy’s farms are?
use hero.whatAt(place)
Thx a lot (20 Chars)
What movement type worked best for you?
I used hero.build
to move. hero.move
caused a lot of timeouts for me.
I used hero.move
. That way I could get boost, make rain and mist, change target while moving.
But, it caused a lot of timeouts for me, too. So, I had to optimize my code hard.