Hello and welcome!
This first edition of the Eulora Hackathon, running between December the 28th and December the 30th, targets beginner computer scientists and all those who want to make their first steps in the wonderful world of sane software engineering.
All the tasks revolve around extending functionality of the very clearly written Foxybot by Diana Coman (for an instructive example see Daniel P Barron's well documented drunk explore extension). They are as follows :
- Bot activates on command /bot build ords and obeys /bot reset
- Bot drops craft table from inventory, examines its content, saves a list of all the Ordinary Bundles it encounters
- Bot examines inventory, picks first Ordinary Claim key, reads its coordinates and uses /pilot to point itself that way
- Bot table-walks to its destination checking approach on each step.
- Once one step increased rather than decreased distance to destination, bot targets the claim, unlocks it, equips the proper enumeration, places the bundle in the claim and processes it. Once done picks up loot and places key in the claim exactly like current mining bot behaves.
- On success bot moves on to the next key in inventory ; on error outputs error message and moves to next key in inventory.
II. Inventory Evaluator.
- On command /bot inveval the bot produces a complete list of items as found in character inventory as well as in bank inventory, including type, quantity, quality, total base value. The list is output to file logsi/Inv_Eval_$date.csv as a csv table.
III. Craft Evaluator.
- On command /bot crafteval the bot produces a list of all the items that can currently be craftedii on the basis of presently owned blueprints and raw materials to be output in a manner at the implementer's choice. Recursive evaluation is preferred but not required.
IV. Quality Optimizer.
- On command /bot extract [name] [quality] [loss] the bot proceeds to extract stacks of named items from the bank so that they are mixed with minimal loss and the final quality of the stack is as specified. If a final quality is not specified, the bot should extract the largest count possible. It is ok if this bot assumes that all the stacks of [name] are found in bank (not on player inventory). If [loss] is specified, the bot will not mix stacks that result in a loss greater than [loss] per million points. If [loss] is not specified it should default to 10`000 (one percent).
Uncharacteristically for a hackathon, the accepted solution to the stated problems will result in prizes, as follows :
- The first accepted solution entitles the solver to a prize of 1 (one) million ECu, payable on the spot.
- The second accepted solution entitles the solver to a prize of 4 (four) million ECu, payable on the spot.
- The third accepted solution entitles the solver to a prize of 16 (sixteen) million ECu, payable on the spot.
- The fourth accepted solution entitles the solver to a prize of 64 (sixty-four) million ECu, payable on the spot.
If multiple solutions are presented to any problem before the closing of the Hackathon, I will select the best solution among them. If multiple solutions are equally best, the first published will be selected. Acceptable publication mechanisms are a) your blogiii or b) v patches on a properly formulated tree.iv
There are about four and a half hours remaining until the start of this fabulous event, feel free to use them to extract any clarifications that may be needed, and then, once the clock strikes midnight - have fun!
———- Same path currently used for explore and craft logs. [↩]
- Diana Coman has graciously provided a csv of all known recipes. [↩]
- If it is capable of trackbacks and sends one to Trilema then the time of the trackback will count ; otherwise the time of your notification to me in #eulora will count. [↩]
- Deed them for a timestamp. [↩]