This is because you didn't "#define ALLEGRO_STATICLINK" in your source files. The easier way to do it is to pass -DALLEGRO_STATICLINK on your command line.
I tried to compile your code but its missing d_array.h and allcolor.h.
They're not missing, you're #include'ing them wrong. Use "allcolor.h" not <allcolor.h>. Quotation marks indicate a user include, and brackets indicate a system include. Always use quotes.
Your command line is still somewhat wrong. I had to change it to include map.cpp and I had to export the 'map' function from map.cpp. I cheated and used 'extern' on the declaration in board.cpp but you should really make a separate header for map.hpp.
This is the command I used to get it to compile :
g++ -Wall -g -o Dragon.exe -DALLEGRO_STATICLINK %A4INCDIR% allegro.cpp board.cpp keys.cpp main.cpp map.cpp play.cpp rand.cpp sound.cpp target.cpp title.cpp %A4LNKDIR% %A4STATICLIBS%
One thing, don't edit your %PATH% to search 'include' directories. It's for bin only. The -I switch tells gcc to search the next argument as a path for includes.
Third - you need consistent indentation and braces. Pay attention to compiler warnings about dangling if and else statements.
Here's a 7z of the files as I needed to modify them, including a statically linked Dragon.exe.