2014-12-16 13:13:02 +00:00
|
|
|
#include "game.h"
|
|
|
|
|
|
|
|
#include <iostream>
|
|
|
|
#include <fstream>
|
2014-12-30 13:24:21 +00:00
|
|
|
#include "formatters.h"
|
2014-12-16 13:13:02 +00:00
|
|
|
|
2014-12-21 11:14:01 +00:00
|
|
|
void AddUnitToGame( player_t player, char vis, uvector2 vec, CTTRTSGame& game )
|
2014-12-16 13:13:02 +00:00
|
|
|
{
|
|
|
|
CUnit unit = CUnit::GetUnitFromVis(vis);
|
2014-12-21 10:44:08 +00:00
|
|
|
unit.SetPos(vec);
|
2014-12-21 11:04:26 +00:00
|
|
|
unit.SetPlayer(player);
|
2014-12-16 13:13:02 +00:00
|
|
|
game.AddUnit(std::move(unit));
|
|
|
|
}
|
|
|
|
|
2014-12-16 22:35:56 +00:00
|
|
|
void OutputGame( CTTRTSGame&& game )
|
2014-12-16 13:13:02 +00:00
|
|
|
{
|
|
|
|
std::ofstream output;
|
|
|
|
output.open (game.GetName() + ".txt");
|
2014-12-30 13:24:21 +00:00
|
|
|
output << GetStringFromGame(game);
|
2014-12-16 13:13:02 +00:00
|
|
|
output.close();
|
2014-12-16 22:35:56 +00:00
|
|
|
|
2014-12-21 10:44:08 +00:00
|
|
|
__forceResetCUnitID();
|
2014-12-16 13:13:02 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
int main()
|
|
|
|
{
|
2014-12-31 18:39:58 +00:00
|
|
|
// Tiny 1v1 Game
|
|
|
|
//------
|
|
|
|
//-G----
|
|
|
|
//----R-
|
|
|
|
//-G----
|
|
|
|
//----R-
|
|
|
|
//------
|
2014-12-16 13:13:02 +00:00
|
|
|
{
|
2014-12-20 15:35:19 +00:00
|
|
|
CTTRTSGame game(6, 6);
|
2014-12-31 18:39:58 +00:00
|
|
|
game.SetName("Tiny2player");
|
2014-12-16 13:13:02 +00:00
|
|
|
|
2014-12-21 11:14:01 +00:00
|
|
|
AddUnitToGame( player_t::Red, '<', uvector2(4, 2), game);
|
|
|
|
AddUnitToGame( player_t::Red, '<', uvector2(4, 4), game);
|
|
|
|
AddUnitToGame( player_t::Green, '>', uvector2(1, 1), game);
|
|
|
|
AddUnitToGame( player_t::Green, '>', uvector2(1, 3), game);
|
2014-12-16 22:35:56 +00:00
|
|
|
|
2014-12-31 18:39:58 +00:00
|
|
|
game.AddWall(uvector2(3,2));
|
|
|
|
game.AddWall(uvector2(3,3));
|
|
|
|
|
2014-12-16 22:35:56 +00:00
|
|
|
OutputGame(std::move(game));
|
|
|
|
}
|
|
|
|
|
2014-12-31 18:39:58 +00:00
|
|
|
// Basic 1v1 game
|
|
|
|
// --------------------
|
|
|
|
// -G------------------
|
|
|
|
// ------------------R-
|
|
|
|
// -G------------------
|
|
|
|
// ------------------R-
|
|
|
|
// -G------------------
|
|
|
|
// ------------------R-
|
|
|
|
// -G------------------
|
|
|
|
// ------------------R-
|
|
|
|
// -G------------------
|
|
|
|
// ------------------R-
|
|
|
|
// --------------------
|
2014-12-16 22:35:56 +00:00
|
|
|
{
|
2014-12-20 15:35:19 +00:00
|
|
|
CTTRTSGame game(20, 12);
|
2014-12-31 18:39:58 +00:00
|
|
|
game.SetName("Big2Player");
|
2014-12-16 22:35:56 +00:00
|
|
|
|
2014-12-20 15:35:19 +00:00
|
|
|
for ( ucoord_t y : { 2,4,6,8,10 } )
|
2014-12-21 11:14:01 +00:00
|
|
|
AddUnitToGame( player_t::Red, '<', uvector2(18, y), game);
|
2014-12-16 22:35:56 +00:00
|
|
|
for ( ucoord_t y : { 1,3,5,7,9 } )
|
2014-12-21 11:14:01 +00:00
|
|
|
AddUnitToGame( player_t::Green, '>', uvector2(1, y), game);
|
2014-12-16 22:35:56 +00:00
|
|
|
|
|
|
|
|
|
|
|
OutputGame(std::move(game));
|
|
|
|
}
|
|
|
|
|
2014-12-31 18:39:58 +00:00
|
|
|
// Sort of like Chess
|
|
|
|
//GG------
|
|
|
|
//------RR
|
|
|
|
//GG------
|
|
|
|
//------RR
|
|
|
|
//GG------
|
|
|
|
//------RR
|
|
|
|
//GG------
|
|
|
|
//------RR
|
2014-12-16 22:35:56 +00:00
|
|
|
{
|
|
|
|
CTTRTSGame game(8, 8);
|
|
|
|
game.SetName("Chess");
|
|
|
|
|
2014-12-20 15:35:19 +00:00
|
|
|
for ( ucoord_t y : { 1,3,5,7 } ) {
|
2014-12-21 11:14:01 +00:00
|
|
|
AddUnitToGame(player_t::Red, '<', uvector2(6, y), game);
|
|
|
|
AddUnitToGame(player_t::Red, '<', uvector2(7, y), game);
|
2014-12-16 22:35:56 +00:00
|
|
|
}
|
2014-12-16 13:13:02 +00:00
|
|
|
|
2014-12-20 15:35:19 +00:00
|
|
|
for ( ucoord_t y : { 0,2,4,6 } ) {
|
2014-12-21 11:14:01 +00:00
|
|
|
AddUnitToGame(player_t::Green, '>', uvector2(0, y), game);
|
|
|
|
AddUnitToGame(player_t::Green, '>', uvector2(1, y), game);
|
2014-12-20 15:35:19 +00:00
|
|
|
}
|
|
|
|
|
2014-12-16 22:35:56 +00:00
|
|
|
OutputGame(std::move(game));
|
2014-12-16 13:13:02 +00:00
|
|
|
}
|
2014-12-31 18:39:58 +00:00
|
|
|
|
|
|
|
// Medium 4 player game
|
|
|
|
//----------
|
|
|
|
//----------
|
|
|
|
//---GGGG---
|
|
|
|
//--R -- B--
|
|
|
|
//--R- -B--
|
|
|
|
//--R- -B--
|
|
|
|
//--R -- B--
|
|
|
|
//---YYYY---
|
|
|
|
//----------
|
|
|
|
//----------
|
|
|
|
{
|
|
|
|
CTTRTSGame game(10, 10);
|
|
|
|
game.SetName("Medium4Player");
|
|
|
|
|
|
|
|
for ( ucoord_t y : { 2,3,4,5 } ) {
|
|
|
|
AddUnitToGame(player_t::Red, '>', uvector2(2, y), game);
|
|
|
|
AddUnitToGame(player_t::Blue, '<', uvector2(7, y), game);
|
|
|
|
}
|
|
|
|
|
|
|
|
for ( ucoord_t x : { 2,3,4,5 } ) {
|
|
|
|
AddUnitToGame(player_t::Yellow, '^', uvector2(x,7), game);
|
|
|
|
AddUnitToGame(player_t::Green, 'v', uvector2(x,2), game);
|
|
|
|
}
|
|
|
|
|
|
|
|
// Diagonal walls
|
|
|
|
game.AddWall(uvector2(3,3));
|
|
|
|
game.AddWall(uvector2(3,6));
|
|
|
|
game.AddWall(uvector2(6,3));
|
|
|
|
game.AddWall(uvector2(6,6));
|
|
|
|
|
|
|
|
// middle walls
|
|
|
|
game.AddWall(uvector2(4,4));
|
|
|
|
game.AddWall(uvector2(4,5));
|
|
|
|
game.AddWall(uvector2(5,4));
|
|
|
|
game.AddWall(uvector2(5,5));
|
|
|
|
|
|
|
|
OutputGame(std::move(game));
|
|
|
|
}
|
|
|
|
|
|
|
|
// Medium 3 player game
|
|
|
|
//----------
|
|
|
|
//--------Y-
|
|
|
|
//--------Y-
|
|
|
|
//----------
|
|
|
|
//-G--------
|
|
|
|
//-G--------
|
|
|
|
//----------
|
|
|
|
//--------R-
|
|
|
|
//--------R-
|
|
|
|
//----------
|
|
|
|
{
|
|
|
|
CTTRTSGame game(10, 10);
|
|
|
|
game.SetName("Medium3Player");
|
|
|
|
|
|
|
|
AddUnitToGame(player_t::Red, '<', uvector2(8, 1), game);
|
|
|
|
AddUnitToGame(player_t::Red, '<', uvector2(8, 2), game);
|
|
|
|
AddUnitToGame(player_t::Green, '>', uvector2(1, 4), game);
|
|
|
|
AddUnitToGame(player_t::Green, '>', uvector2(1, 5), game);
|
|
|
|
AddUnitToGame(player_t::Yellow, '<', uvector2(8,7), game);
|
|
|
|
AddUnitToGame(player_t::Yellow, '<', uvector2(8,8), game);
|
|
|
|
|
|
|
|
OutputGame(std::move(game));
|
|
|
|
}
|
2014-12-16 13:13:02 +00:00
|
|
|
}
|