Number of boats:
Variable fish value:
Obstacles:
Clear

Goal

Send your boats to collect as many fish as possible. You have 300 turns for that.

The boats are controlled by executing commands via a update_player (i, world) function. "up", "down", "left" and "right" are valid return values (+x is right, +y is up). In case of no or invalid output the boat will wait for a turn. Each boat can carry only one fish.

World reference

World table

  • fish - a table of Fish objects (fish id is the key)
  • home - home tile position {x, y}
  • players - 1-indexed list of Player objects
  • obstacles - 1-indexed list of obstacle positions {x, y}

Fish table

  • x, y - current position
  • life - turns of life left
  • value - fish score / value
  • id - unique id (auto increment)

Player table

  • x, y - current position
  • loaded - collected Fish object or nil

Custom functions

  • debug(value) - log any Lua value to a side console

Misc.

Check https://github.com/maciekglowka/fish_bots if you're interested how the game works under the hood.

Lua compatiblity: the game uses a pure-rust Lua vm Piccolo in the Lua::core mode.

Changelog

2025-03-16
  • Fish id's
  • Spawn rate and fish life adjustment