Farmscape Blitz Tips and Tricks

Give your advice here.

3 Likes

great cant wait
:smile: :smile: :smile: :smile: :smile:

2 Likes

Patches are a great all-rounder.

1 Like

if you surround wheat it will produce more money

1 Like

But you need to surround it with wheat not just anything.

1 Like

rain slows you down :yawning_face: :yawning_face: :yawning_face: :yawning_face:

1 Like

Lol the 0-11 age bracket is dominating

1 Like

ya it is weird that the 0-11 age bracket is winning
i think it is because the ai youth and the code quest

1 Like

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)

1 Like

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.

1 Like

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.

2 Likes

How are you able to determine were the enemy’s farms are?

use hero.whatAt(place)

1 Like

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.

2 Likes

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.

1 Like