Pocket Frogs by NimbleBit is a frog collecting and set-building game that I’ve played off and on since December 2010, but it was only a few months ago that I learned about the included Search Minigame.
This post is a simple approach to farming reward boxes using the lowest level Anura frog species, with a strategy based on a sort-of Bayesian approach. A future post will describe using Julia to solve for the general case applicable to any Pocket Frog species pairs as well as for NimbleBit’s Disco Zoo game, upon which this minigame is based.
Search minigame
The game is very simple. You start with a 5 x 5 grid of lilypads, on which there are two hidden frogs, each represented by a “pattern” that will be placed somewhere on the grid, and 1 hidden gift. Different frog species have different patterns, but gift farming is done with the lowest level Anura species and its pattern. The two patterns and the gift can not overlap. You get 10 guesses.
Because it is VERY cheap to play the search minigame with Anuras, and at higher player levels the gift can provide very useful items, the goal in this case is to find the gift and avoid the frog pattern spaces.
Assumptions:
- All possible starting positions are equally probable (8 of 25 positions filled)
- After the two frog patterns are placed, the gift is equally likely to be in any of the remaining 17 positions
When the prize is revealed, it can be obtained without using up a move; i.e., if the prize is revealed on your tenth and final move, it’s still possible to collect the prize. With these assumptions, for the simple case using Anura frogs for gift farming, I did a few back-of-the-envelope conditional probability calculations to determine yields.
I posted a version of the following on the Pocket Frogs Discord, and it was well-received.
PF Search Minigame Gift Farming with Anura
Here’s a play strategy that is able to yield ~160 gifts per hour.
The strategy is simple enough that you can get really fast playing through it repeatedly to farm gifts effectively.
Strategy
As previously reported, using an Anura is only 38 coins per game and its minigame placement pattern has some great properties.
The goal is to AVOID clicking on any of the (8) Anura frog lilypads to try to maximize the rate of gift farming.
- Always start with #1 - #5 down the center column, because they can not contain an Anura
- Upper Right: if position 6 is clear, then 7, 8, and 9 MUST be clear; click #10 for your last guess
- Lower Left: If position 6 had an Anura, try position 7; if it’s clear, 8, 9, and 10 MUST be clear
- Lower Right: If both position 6 and 7 had Anuras, positions 8, 9, and 10 MUST be clear
Yields
- 31.8% chance for the “best” scenario of selecting 10/10 empty lilypads (Upper Right, with #10 clear)
- 18.2% chance for selecting 9/10 empty lilypads (Upper Right with #10 occupied)
- 36% chance for selecting 9/10 empty lilypads (Lower Left)
- 14% chance for selecting 8/10 empty lilypads (Lower Right)
This yields an average of 9.18 empty lilypads per game, which yields an expected 42.6% chance per game of getting a gift.
Performance
- I was able to do 13 games in 2 minutes –> 390 games/hour –> 166 gift/hour
- Gifts at my level could yield up to ~1900 coins, ~28 potions or stamps, scenery items, and habitats
- Over the last few days, I was able keep my mailbox filled at 32
- Some cool things I got included the beach habitat, turtles (which are limited), and a starfish, and thousands of potions / stamps
- Pretty good for 38 coins per game :)
Notes
Optimal vs Faster
The strategy above chooses speed and simplicity over highest probability of choosing an empty space.
A later post will describe the Bayesian and information theory approach written Julia, for this simple case as well as the more complex case.
But in brief, after enumerating all 22 possible ways to place two Anura patterns, assuming each possible start had an equal probability, I calculated the overall probability of each space being empty, as well as the “expected information” to be gained at each position.
(Expected information of x means selecting that space is expected to decrease the total number of remaining playing board possibilities by 2x fold; i.e., seeing the result of a spot with expected information of 1 would typically halve the number of remaining possible game positions.)
The starting situation before any guesses is shown below. Notice that the probability of being empty is 100% down the center column; the expected information is 0 because selecting from there never rules out any game board possibilities.
Enter comma-separated list: anura,anura
Probability empty
5×5 Matrix{Float64}:
0.73 0.73 1.0 0.73 0.73
0.5 0.5 1.0 0.5 0.5
0.55 0.55 1.0 0.55 0.55
0.5 0.5 1.0 0.5 0.5
0.73 0.73 1.0 0.73 0.73
Expected information
5×5 Matrix{Float64}:
1.12 1.12 0.0 1.12 1.12
1.5 1.5 0.0 1.5 1.5
1.45 1.45 0.0 1.45 1.45
1.5 1.5 0.0 1.5 1.5
1.12 1.12 0.0 1.12 1.12
The “optimal” approach to gift farming would be to always guess the remaining square with the highest probability of being empty. However, this would be slower as it would require more complex decision-making.
In contrast, the approach I described above is simple enough to execute REALLY quickly (even while watching a movie).
This is why after choosing the middle column, I don’t choose the corners (73% probability of being empty) and instead choose from the 4th (or equivalently the 2nd row) even though they have a lower 50% probability of being empty.
The spots I favor have higher expected information density (see also 3Blue1Brown Wordle information theory which is where I got the idea of using simple information theory), resulting in a simpler algorithm for playing.
Generalizing
I started looking into the Pocket Frogs search minigame because I wanted to farm gifts. For this goal, you only play with the lowest level Anura frogs to minimize the cost per game.
However, you can also play with higher level frog species, each of which has its own pattern. In this case, the goal might not be to farm gifts, but instead to farm the frogs themselves.
I also learned that the search minigame is based on the core game mechanic of another NimbleBit Game – Disco Zoo. In Disco Zoo, you also have a 5x5 grid but there can be more or less than two animals per game board.
Eventually, I wrote some Julia code to solve for the more general scenario, where given a starting position of n
different patterns on a 5x5 grid, the probabilities of each animal and the expected information content of each position would be calculated, updated after each move.
Using this tool, I ground through all the Disco Zoo levels embarassingly quickly. A future post will show the Julia code (shared on Google Colab, in case anyone wants to try it.)