
In this problem, using IDA* can save us a lot of memory and improve the speed.
--
DJWS, a newbie in programming

Moderator: Board moderators
Code: Select all
west
west
south
south
east
east
south
west
west
north
north
east
east
east
west
west
west
east
east
east
east
east
west
south
south
east
east
south
south
west
west
south
west
south
west
west
south
south
west
south
east
west
west
west
north
south
north
west
west
north
east
south
south
south
west
east
east
south
east
west
north
north
south
east
south
east
south
south
south
south
east
east
west
south
south
south
south
east
east
west
south
north
north
north
Code: Select all
1
8
########
#......#
#......#
#......#
#....#.#
#..#..##
#...#..#
######.#
and output
west
north
west
west
west
north
west
east
east
south
south
south
east
south
east
south
east
south
In heuristic searching, the estimate function h(x) must be an under-estimate.Hackson wrote:My way to make estimation is:
h(x)
Summation of all the 'people' that makes the shortest distance with any goal.
Code: Select all
bad code is cut :)
Code: Select all
/* Declares 64-bit unsigned integer type 'uint64' */
#ifdef _MSC_VER
typedef unsigned __int64 uint64;
#else
typedef unsigned long long uint64;
#endif
Code: Select all
north: s' = ((s >> 8) | (s & (walls << 8))) & inner)
south: s' = ((s << 8) | (s & (walls >> 8))) & inner)
west: s' = ((s >> 1) | (s & (walls << 1))) & inner)
east: s' = ((s << 1) | (s & (walls >> 1))) & inner)
Code: Select all
south: s' = (((s<< 8) | (s & (walls>> 8))) & inner)
north: s' = (((s >> 8) | (s & (walls << 8))) & inner)
east: s' = (((s << 1) | (s & (walls >>1))) & inner)
west: s' = (((s >>1) | (s & (walls << 1))) & inner)