Yeah. You read that right. Presenting:
The Graph Fetch Modus!
First, read through some of the Wikipedia page on graphs.
Handy dandy link! That’ll help define the terms that I use in this explanation.
The graph modus is a simple, connected, unweighted graph with n vertices, where each vertex is a captchalogue card with an item in it. The current vertex is either the item most recently added, or the item that was selected after removing the previous current vertex.
Adding an Item
When an item is added, it becomes the current vertex. An edge is added to the graph from the previous current vertex to the item just added. Then, for each other vertex in the graph, an edge is randomly added from the new vertex to that vertex with probability p <= .5. (p can be adjusted, but not to 0 or less, and not above .5. Default is .25).
Retrieving an Item
Only the current node can be removed. When it is, that item is removed and placed in the user’s hands. That node is removed from the graph, and all edges incident on that node are also removed from that graph. If this causes the graph to become disconnected, then the subgraph containing the new current node (any node adjacent to the current node, user’s choice) becomes the new graph, and everything else is ejected.
Other Options
The graph modus can calculate for you the shortest valid way to get a particular item ejected from the graph, either by removing it, or by having it ejected when it becomes disconnected from the main graph. Keep in mind, though, that this option may result in catastrophic explosions of items, especially when the quickest route to an item is to disconnect the graph.
So you might be asking yourself: why? Why would you do such a thing, CG? Well, for a SBURB session that I'm playing in with some friends, and this is going to be my fetch modus. NEEDLESS COMPLICATION AHOY! 8D