First of all, my absolute congrats to you for coding everything from scratch without engine.
About the game: took me 2 rounds to fully understand the gameplay. I'm more a RTS guy (only played turn based Civilization 1 back in the 90's) Plus I sent one by one to attack, which leads in 2 consecutive defeats.
But the 3rd match was awesome... I design the strategy of constructing a higher ground for the archers, and while the enemy crossed the bridges, only a few manage to reach my shore. And the once that did found dead by my pikemen and knights.
The fact that randomize the terrain make it re playable several times.
You did a awesome job with this game. Congratulations!