i will also throw in my vote for doable as a webbased turnbased php application:
warning: late night babbling follows
1) you have a game world/map - and that map is in some state
ok a sql database can store the basic information for each game - the map, what countries have what polygons and are placed where , and as Weedpacket said the GD library can draw the pixels of the map each page load
2) you have several players playing the game
ok again the sql database can keep stats on each player in a certain game easy
3) turnbased -
3.a) either player 3 must wait for player one to finish, then an action to happen, then player 2 to finish, and the action to happen, then player 3 gets to give a move....
3.b) perhaps players 1-4 may enter their move at any time.. and once the moves are all there... the computer makes them all happen... then notifies the users that they can read up on what happened and log their next move
both of these are doable but again since you are using a browser to communicate to the program... the server cannot push info to the browser... the browser must ask for the info... there are many ways to do this... but it means that you can't just sit back and wait for the 'your turn message' but this is a function of the browser/internet and not php
if you use a java applet or flash as the basis for your game, both can load as a program inside the browser.. and can keep an open socket to your main server, where it will be able to wait and recieve input from the server like you want...
4) when one person enters a move, the server would check to see if everyone else has their move in... that way when the last person moves, the server will look and see that all moves are in,and that will be the trigger to actually do stuff and it can just
compute your actions and do the battle system like you wanted...
this will all have to happen behind the scenes and once the results are in..... they will be stored... when the user reloads or rerequests a page... they will be able to see the results of the turn
the current move state is again easily stored in a sql table....
so you need in sql:
-some table to hold members of your site
-some table to hold the map state for each game
-some table to hold the members/computers playing in each game
-some table to hold the moves each member is making
for the web you need:
-a method of authenticating that a certain user is playing a certain game: allowed to see page/perform actions
-a method of determining what state the user is in and showing them appropriate allowed actions
-a method of displaying the map and other game state info to the user
and all of that is doable... but by jan1 hmmm... depends on how much cofee you have