"The file to read planet data from")
var fuel = flag.Int("fuel", 16,
"The file to read planet data from")
var fuel = flag.Int("fuel", 16,
- "Reactor units; How many non-Eden jumps we can make " +
- "(but remember that deviating from the flight plan " +
- "costs two units of fuel per jump)")
+ "Reactor units; How many non-Eden jumps we can make "+
+ "(but remember that deviating from the flight plan "+
+ "costs two units of fuel per jump)")
var start_edens = flag.Int("start_edens", 0,
"How many Eden Warp Units are you starting with?")
var start_edens = flag.Int("start_edens", 0,
"How many Eden Warp Units are you starting with?")
BeaconOn bool
/* Use relative prices rather than absolute prices because you
can get relative prices without traveling to each planet. */
BeaconOn bool
/* Use relative prices rather than absolute prices because you
can get relative prices without traveling to each planet. */
- Commodities map [string] Commodity
- Planets map [string] Planet
- pi, ci map [string] int // Generated; not read from file
+ Commodities map[string]Commodity
+ Planets map[string]Planet
+ pi, ci map[string]int // Generated; not read from file
- Edens = iota // 1 3 # of Eden warp units (0 - 2 typically)
- Cloaks // 2 2 # of Devices of Cloaking (0 or 1)
- UnusedCargo // 3 4 # of unused cargo spaces (0 - 3 typically)
- Fuel // 4 17 Reactor power left (0 - 16)
- Location // 5 26 Location (which planet)
- Hold // 6 15 Cargo bay contents (a *Commodity or nil)
- NeedFighters // 7 2 Errand: Buy fighter drones (needed or not)
- NeedShields // 8 2 Errand: Buy shield batteries (needed or not)
- Visit // 9 2**N Visit: Stop by these N planets in the route
+ Edens = iota // 1 3 # of Eden warp units (0 - 2 typically)
+ Cloaks // 2 2 # of Devices of Cloaking (0 or 1)
+ UnusedCargo // 3 4 # of unused cargo spaces (0 - 3 typically)
+ Fuel // 4 17 Reactor power left (0 - 16)
+ Location // 5 26 Location (which planet)
+ Hold // 6 15 Cargo bay contents (a *Commodity or nil)
+ NeedFighters // 7 2 Errand: Buy fighter drones (needed or not)
+ NeedShields // 8 2 Errand: Buy shield batteries (needed or not)
+ Visit // 9 2**N Visit: Stop by these N planets in the route
func EncodeIndex(dims, addr []int) int {
index := addr[0]
for i := 1; i < len(dims); i++ {
func EncodeIndex(dims, addr []int) int {
index := addr[0]
for i := 1; i < len(dims); i++ {
/* What is the value of hauling 'commodity' from 'from' to 'to'?
* Take into account the available funds and the available cargo space. */
func TradeValue(data planet_data,
/* What is the value of hauling 'commodity' from 'from' to 'to'?
* Take into account the available funds and the available cargo space. */
func TradeValue(data planet_data,
-func IndexPlanets(m *map [string] Planet) map [string] int {
- index := make(map [string] int, len(*m))
+func IndexPlanets(m *map[string]Planet) map[string]int {
+ index := make(map[string]int, len(*m))
-func IndexCommodities(m *map [string] Commodity) map [string] int {
- index := make(map [string] int, len(*m))
+func IndexCommodities(m *map[string]Commodity) map[string]int {
+ index := make(map[string]int, len(*m))
data.ci = IndexCommodities(&data.Commodities)
dims := DimensionSizes(data)
table := NewStateTable(dims)
data.ci = IndexCommodities(&data.Commodities)
dims := DimensionSizes(data)
table := NewStateTable(dims)