diff --git a/.gitignore b/.gitignore index 8685940..030061a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,5 @@ -build -maps -ttrts +build/ +maps/ *.user *.sublime* -.idea +*.idea diff --git a/USAGE.txt b/USAGE.txt index ad7dacb..c3bd574 100644 --- a/USAGE.txt +++ b/USAGE.txt @@ -8,22 +8,24 @@ SYNOPSYS ttrts [OPTIONS...] MAPFILE DESCRIPTION - ttrts is a tiny terminal based RTS where that uses text files as order lists to control it's units. + ttrts is a tiny terminal based RTS where that uses text + files as order lists to control it's units. - This means that any user, program or cat that can read and write to text files can play the game. + This means that any user, program or cat that can read + and write to text files can play the game. USAGE - When invoked, ttrts will set up a full game and output a single file representing the current gamestate into a local directory called ttrts_{GAME_NAME}. + When invoked, ttrts will set up a full game and output a + single file representing the current gamestate into a + local directory called ttrts_{GAME_NAME}. - This file can be read in and interpretted by human, robot, or cat. - ttrts will wait for orders files to be placed in it's current working directory. + This file can be read in and interpretted by human, robot + or cat. ttrts will wait for orders files to be placed in + it's current working directory. - File name formats: - gamestate Turn_{TURN_NUMBER}.txt - orders Turn_{TURN_NUMBER}_Team_{TEAM_NUMBER}.txt - - Once orders have been set for each player taking part, ttrts consumes order files, - calculates new game state and outputs a new file. + Once orders have been set for each player taking part + ttrts will calculate the new game state and output a new + gamestate file for the next turn. This process repeats until a winner is chosen! @@ -33,21 +35,21 @@ OPTIONS GAMESTATE FILE FORMAT Name - Turn_{TURN_NUMBER}.txt + Turn_{TURN_NUMBER}.txt Contents - ===== {GAME_NAME} ===== - SIZE:[{X},{Y}] - TURN:{TURN_NUMBER} - ~~~~ - UNIT:{UNIT_ID} tm:{TEAM_NUMBER} vs:{VISUAL} dr:{DIRECTION(NESW)} ps:[{X},{Y}] - ... + ===== {GAME_NAME} ===== + SIZE:[{X},{Y}] + TURN:{TURN_NUMBER} + ~~~~ + UNIT:{ID} tm:{TEAM} vs:{VIS} dr:{DIR(NESW)} ps:[{X},{Y}] + ... ORDER FILE FORMAT Name - Turn_{TURN_NUMBER}_Team_{TEAM_NUMBER}.txt + Turn_{TURN_NUMBER}_Team_{TEAM_NUMBER}.txt Contents - ORDER:{ORDER_CHAR} id:{UNIT_ID} - ... + ORDER:{ORDER_CHAR} id:{UNIT_ID} + ... ORDERS F - Move unit forward one space diff --git a/source/ttrts/main.cpp b/source/ttrts/main.cpp index 2c6f8e4..ccf47a0 100644 --- a/source/ttrts/main.cpp +++ b/source/ttrts/main.cpp @@ -7,58 +7,60 @@ #include "game.h" static const char* sk_usage = - "NAME\n" - "\tttrts - Tiny Terminal RTS\n" - "\n" - "SYNOPSYS\n" - "\tttrts [OPTIONS...] MAPFILE\n" - "\n" - "DESCRIPTION\n" - "\tttrts is a tiny terminal based RTS where that uses text files as order lists to control it's units.\n" - "\n" - "\tThis means that any user, program or cat that can read and write to text files can play the game.\n" - "\n" - "USAGE\n" - "\tWhen invoked, ttrts will set up a full game and output a single file representing the current gamestate into a local directory called ttrts_{GAME_NAME}.\n" - "\n" - "\tThis file can be read in and interpretted by human, robot, or cat.\n" - "\tttrts will wait for orders files to be placed in it's current working directory.\n" - "\n" - "\tFile name formats:\n" - "\t gamestate Turn_{TURN_NUMBER}.txt\n" - "\t orders Turn_{TURN_NUMBER}_Team_{TEAM_NUMBER}.txt\n" - "\n" - "\tOnce orders have been set for each player taking part, ttrts consumes order files,\n" - "\tcalculates new game state and outputs a new file.\n" - "\n" - "\tThis process repeats until a winner is chosen!\n" - "\n" - "OPTIONS\n" - "\tMAPFILE:\n" - "\t\tFile to read in the initial game state from\n" - "\n" - "GAMESTATE FILE FORMAT\n" - "\tName\n" - "\t\tTurn_{TURN_NUMBER}.txt\n" - "\tContents\n" - "\t\t===== {GAME_NAME} =====\n" - "\t\tSIZE:[{X},{Y}]\n" - "\t\tTURN:{TURN_NUMBER}\n" - "\t\t~~~~\n" - "\t\tUNIT:{UNIT_ID} tm:{TEAM_NUMBER} vs:{VISUAL} dr:{DIRECTION(NESW)} ps:[{X},{Y}]\n" - "\t\t...\n" - "\n" - "ORDER FILE FORMAT\n" - "\tName\n" - "\t\tTurn_{TURN_NUMBER}_Team_{TEAM_NUMBER}.txt\n" - "\tContents\n" - "\t\tORDER:{ORDER_CHAR} id:{UNIT_ID}\n" - "\t\t...\n" - "\n" - "ORDERS\n" - "\tF - Move unit forward one space\n" - "\tL/R - Rotate unit left or right\n" - "\tA - Attack space in front of unit\n"; +"NAME\n" +"\tttrts - Tiny Terminal RTS\n" +"\n" +"SYNOPSYS\n" +"\tttrts [OPTIONS...] MAPFILE\n" +"\n" +"DESCRIPTION\n" +"\tttrts is a tiny terminal based RTS where that uses text\n" +"\tfiles as order lists to control it's units.\n" +"\n" +"\tThis means that any user, program or cat that can read\n" +"\tand write to text files can play the game.\n" +"\n" +"USAGE\n" +"\tWhen invoked, ttrts will set up a full game and output a\n" +"\tsingle file representing the current gamestate into a \n" +"\tlocal directory called ttrts_{GAME_NAME}.\n" +"\n" +"\tThis file can be read in and interpretted by human, robot\n" +"\tor cat. ttrts will wait for orders files to be placed in \n" +"\tit's current working directory.\n" +"\n" +"\tOnce orders have been set for each player taking part \n" +"\tttrts will calculate the new game state and output a new \n" +"\tgamestate file for the next turn.\n" +"\n" +"\tThis process repeats until a winner is chosen!\n" +"\n" +"OPTIONS\n" +"\tMAPFILE:\n" +"\t\tFile to read in the initial game state from\n" +"\n" +"GAMESTATE FILE FORMAT\n" +"\tName\n" +"\t Turn_{TURN_NUMBER}.txt\n" +"\tContents\n" +"\t ===== {GAME_NAME} =====\n" +"\t SIZE:[{X},{Y}]\n" +"\t TURN:{TURN_NUMBER}\n" +"\t ~~~~\n" +"\t UNIT:{ID} tm:{TEAM} vs:{VIS} dr:{DIR(NESW)} ps:[{X},{Y}]\n" +"\t ...\n" +"\n" +"ORDER FILE FORMAT\n" +"\tName\n" +"\t Turn_{TURN_NUMBER}_Team_{TEAM_NUMBER}.txt\n" +"\tContents\n" +"\t ORDER:{ORDER_CHAR} id:{UNIT_ID}\n" +"\t ...\n" +"\n" +"ORDERS\n" +"\tF - Move unit forward one space\n" +"\tL/R - Rotate unit left or right\n" +"\tA - Attack space in front of unit\n"; // time for waiting between file stats static const std::chrono::milliseconds sk_waitTime = std::chrono::milliseconds(100); @@ -191,4 +193,4 @@ int main(int argc, char* argv[]) std::cout<<"TTRTS: Game over! Winner:"<<(int)winningTeam<