BeachComber - fast and efficient beach combing

(9063,3,7) is a rare?

Code:
> BeachComberUtilities combed verbose

Loading rare tile data...
Loading verified rare tile data...
Loading uncommon tile data...
Loading common tile data...
Loading beach head data...
Loading sand castle data...
Loading combed tile data...
Done loading tile data
There is 1 unknown combed tile on 1 beach.
    (9063,3,7)

That is, literally, the only tile I have only seen as "combed" which is not in combo's raretiles.json.

By the way - once I have seen all "combed" tiles, I will update my data files to make columns run from 1-10, rather than 0-9.
I sort of understand why combo did that - the _beachLayout property lists rows from 1-10, but then gives a 10-character string for each row - and the character index in the string runs from 0-9 - but that's a computer-readability thing, not a sensible human-readable notation.
 
Funny. So 1001 rare tiles.
We could have a false rare, but frankly it should've been found by now and I'm assuming you've have mentioned it if you found it.

As Rinn said in discord, 1001 is similar enough to 11
Funny enough of a number, 1002 and 999 is just weird.

I have 198 rares to verify, no other tiles remaining.

Code:
1/24/2024, 11:50:36 AM  1706050236      Sand: 949,500
1/24/2024, 11:50:36 AM  1706050236      Uncommon Sparkle: 48,976
1/24/2024, 11:50:36 AM  1706050236      Rare Sparkle: 803
1/24/2024, 11:50:36 AM  1706050236      Castle: 512
1/24/2024, 11:50:36 AM  1706050236      Unknown tiles: 198
1/24/2024, 11:50:36 AM  1706050236      Head: 11
 
I added that "combed" tile to tiles.rare.json (which now has 1001 entries) and removed it from tiles.combed.json (which now has 0 entries).
I therefore removed detection of new combed tiles; the only remaining ones are simply unverified rares.
I changed "spade all" to go after unverified rares rather than "combed" - and stop after it has looked at all of them.
I also removed "combed" and "uncommon" from BeachComberUtilities, since they are no longer useful.

Code:
Iterating over 10,000 beaches, 10 rows, 10 columns

Total rares = 1001
(Unverified rares = 377)
Total uncommons = 48976
Total commons = 949500
Total beach heads = 11
Total sand castles = 512
Total: 1000000

You have 198 unverified rares and I have 377 of them. Other than that, aside from terminology, we are in agreement.

I guess I am gradually removing "spading" features. Once I have personally seen all 1,000,000 tiles, MY spading will be done.
I'll adjust the data format to be more human (rather than machine) readable, and tiles.{rare,uncommon,common,head,castle}.json will be the ground truth for every tile on the beach.

And BeachComber will simply be functionally equivalent to a more efficient version of combo. :)
 
Revision 37 adds another 51 verified rares. It also publishes tiles.combed.json, which contains the remaining 332 unverified rares.
BeachComber spade all will visit only beaches with unverified rares that are not washed by the tides.

Next revision:

- I'll be simplifying the format of the various tiles.xxx.json files to be much more compact and, presumably, much faster to load.
- I'll also be generating a tiles.txt data file which has a million lines keyed 1-1000000 and a single string - rare, uncommon, common, head, castle, combed. "combed" is assumed to be "rare", but is not yet verified (by me). That will readable by file_to_map().

Code:
Total rares = 1001
(Unverified rares = 332)
Total uncommons = 48976
Total commons = 949500
Total beach heads = 11
Total sand castles = 512
Total combed = 332
Total: 1000000

rowrare(combed#)uncommoncommonheadcastle#
101837776499294825000
91726666480895017300
81334747489794962800
7117454548459494509384
6994242491094991000
5602828492895012000
47919194931947940196156
36744488495049000
25422484195105000
137224940948000223178

Accumulating tidal data for 10 rows

rowrare(combed#)uncommoncommonheadcastle#
101837776499294825000
93551431429800189842300
8488190189146972848041100
760523523319542379749119384
670427727424452474740119384
576430530229380569752119384
48433243193431166454611289164
39103283233919575959511289164
29643303254403685470011289164
110013323274897694950011512180
 

Here we go. It could be improved and definitely could have the source tiles and whatnot included and compiled into said packed version..
But there's only so much effort its worth.
I'm currently on like, 52 rares left to verify. But I just marked every unverified tile as a rare for the built file.
 
I've been trying to "verify" all 1001 "rare" tiles, and have been stuck at 1000 for about 6 months.

I just learned a hitherto hoarded mechanic: there is always one rainbow pearl "rare" tile - but it takes two years to regenerate.

Which is to say, I've been trying to farm the next rainbow pearl.
I am quite certain that other people have already discovered this tile and are doing the same.

In any case, I believe the "spading" aspect of this script is complete.

- I removed the "spade" command
- I removed the "prune" and "merge" commands.
- ```BeachComber data``` no longer reports on "new" (rare, uncommon,common,castle) tiles or "verified rare" tiles.
- ```BeachComberUtilities complete``` is a bit more concise
- I cleared the "combed" data file; (rare, uncommmon, common, beach_heads, castle) data files contain all 1,000,000 tiles.

It strikes me that once the next rainbow pearl is found, the same handful of people will still want to spade out where the NEXT one will appear. So I added "pearl" mode.

```BeachComber pearl all``` (or ```BeachComber pearl N```) will spend the specified number of turns visiting only beaches that have "previously seen as combed" rare tiles. Where does it get that list? Well, if the "combed" data file is empty - as it is now - the first time you use ```BeachComber pearl```, it will initialize it with the complete set of rare tiles, and then act just like ```BeachComber rare``` - go only to beaches with rares - but will filter out tiles you have already found a rare in.

Which is to say, you will gradually visit all the rares - and harvest them - and eventually, just as I did, you'll get down to a single tile which stubbornly remains combed.

And that's your huckleberry.

Code:
> set VBC.ParseCommons=true

VBC.ParseCommons => true

> BeachComber data

Loading tile data...
Loading rare tile data...
Loading uncommon tile data...
Loading common tile data...
Loading beach head data...
Loading sand castle data...
Loading combed tile data...
Done loading tile data

Rare tiles: 1001
Uncommon tiles: 48976
Common tiles: 949500
Beach Heads: 11
Sand Castles: 512
combed tiles: 0

Beaches with rare tiles: 951
Beaches with uncommon tiles: 9946
Beaches with common tiles: 10000
Beaches with beach heads: 11
Beaches with sand castles: 180
Beaches with combed tiles: 0

and

Code:
> BeachComberUtilities complete

Loading rare tile data...
Loading uncommon tile data...
Loading common tile data...
Loading beach head data...
Loading sand castle data...
Loading combed tile data...
Done loading tile data

Iterating over 10,000 beaches, 10 rows, 10 columns

Total rares = 1001
Total uncommons = 48976
Total commons = 949500
Total beach heads = 11
Total sand castles = 512
Total combed = 0
Total: 1000000



rowrare(combed#)uncommoncommonheadcastle#
1018300499294825000
917200480895017300
813300489794962800
71170048459494509384
69900491094991000
56000492895012000
479004931947940196156
36700488495049000
25400484195105000
137004940948000223178

Code:
Accumulating tidal data for 10 rows



rowrare(combed#)uncommoncommonheadcastle#
1018300499294825000
9355009800189842300
848800146972848041100
76050019542379749119384
67040024452474740119384
57640029380569752119384
4843003431166454611289164
3910003919575959511289164
2964004403685470011289164
11001004897694950011512180


BeachComber.ash r43
 
I've been trying to "verify" all 1001 "rare" tiles, and have been stuck at 1000 for about 6 months.

I just learned a hitherto hoarded mechanic: there is always one rainbow pearl "rare" tile - but it takes two years to regenerate.

Which is to say, I've been trying to farm the next rainbow pearl.
I am quite certain that other people have already discovered this tile and are doing the same.
{ "minute": 9063, "row": 3, "column": 6 },
That's the one you think is a rainbow yeah? I remember seeing that discussion in kol chat, and I believe that's the only rare I added without confirming, because I couldn't confirm it. Obviously, none of the tiles I confirmed gave a pearl.
It also makes sense that rares are 1000, and the 1001th is not actually a rare.
Could be worth removing from combo, hoarded spot & super long cooldown.
 
{ "minute": 9063, "row": 3, "column": 6 },
That's the one you think is a rainbow yeah? I remember seeing that discussion in kol chat, and I believe that's the only rare I added without confirming, because I couldn't confirm it. Obviously, none of the tiles I confirmed gave a pearl.

No. For some reason, in the data files, "column" is numbered 0 - 9 but KoLmafia logs them as columns 1 - 10.

Code:
> Combing the square at coordinates (9063,3,7) which contains rough sand with a twinkle
Combing square 3,7 (9063 minutes down the beach)
You acquire an item: piece of driftwood
> (9063,3,7) is a 'rare' tile.

The single tile I have been unable to verify is

Code:
  { "minute": 9966, "row": 8, "column": 4 }

Which is to say, (9966,8, 5)

It also makes sense that rares are 1000, and the 1001th is not actually a rare.
Could be worth removing from combo, hoarded spot & super long cooldown.

I believe the mechanism is this:

- There are 1001 rare tiles.
- One is designated as the "next rainbow pearl" and is marked combed with a long cooldown.
- When it becomes uncombed and somebody combs the pearl, a different combed rare becomes the "next rainbow pearl".

If this script finds a pearl, it will log it - as a rare - and clear the combed tiles data file.
That will reload that data file with all rare tiles, next time you run in "pearl" mode, since you need to re-spade the "next rainbow pearl" rare.

I don't have an opinion on combo. One out 1001 tiles it takes you to will be effectively dead - but which tile that is will change, if somebody finds a rainbow pearl. Which COULD be a combo user, but is more likely to be a hoarder.
 
The single tile I have been unable to verify is

Code:
  { "minute": 9966, "row": 8, "column": 4 }

Which is to say, (9966,8, 5)
This was the tile that I identified back in September of last year, and I indeed found a rainbow pearl in it just under 3 months ago. I suspect the next one must necessarily be in a different location because...

I believe the mechanism is this:

- There are 1001 rare tiles.
- One is designated as the "next rainbow pearl" and is marked combed with a long cooldown.
- When it becomes uncombed and somebody combs the pearl, a different combed rare becomes the "next rainbow pearl".
My running guess is that it works roughly as follows
  1. You find a rare in spot (X,Y,Z)
  2. That category of rare has some cooldown rolled with bounds based on the category of rare and is placed in (A,B,C)
  3. The next (A,B,C) is set to the current (X,Y,Z)
So yes, my hypothesis agrees with yours.

I guessed the bounds for rainbow pearls average to two years, since we know one was found early on (in 2019) and two more were found by end of 2023 (as far as we can see from Rupa's display case, who has obviously worked this out a long time ago and kept it to himself). I found mine in 2025, so I estimate some time in early 2027 it will become available but I have no idea what the lower bound is and I'm not sure it will ever be possible to tell.
 
Fascinating. If you found a rainbow pearl 3 months ago (while I, too was actively going there; good to be in the UK, eh? 😉) - and the next pearl is not there any more, I guess I’ve been normally unlucky at not finding a different rare there.

Time to restart pearl spading to find NEXT tile.
 
Back
Top