This is my programming challenge entry for Black Viking.