int main(void)
{
	auto renderWindow = CreateRenderWindow();
	auto inputComponent = CreateInputHandler(renderWindow);

	auto gameBoard = CreateGameBoard();
	const auto numTiles = gameBoard->GetNumTiles();

	auto renderComponent = CreateGameRenderer(*gameBoard, renderWindow);
	auto boardController = std::make_unique<BoardController>(std::move(gameBoard));
	auto playerController = CreatePlayerController(NUM_PLAYERS);

	{
		auto chooser = std::make_shared<TileChooser>(NUM_PLAYERS, 10, *renderComponent);
		inputComponent->AddObserver(chooser);
		chooser->ChooseTiles();
		//chooser->AutoChooseTiles();
		chooser->AssignTilesToPlayers(*playerController);
	}

	{
		auto manager = std::make_shared<GameManager>(std::move(renderComponent), std::move(boardController), playerController);
		inputComponent->AddObserver(manager);
		playerController->ObserveTimers(manager);

		manager->StartGame();
	}

	glfwDestroyWindow(renderWindow);
	glfwTerminate();
}
Exemple #2
0
bool
sTileset::AppendImage(const char* filename)
{
  sTileset tileset;
  if (!tileset.Import_Image(filename))
    return false;

  int iInsertAt = GetNumTiles();
  AppendTiles(tileset.GetNumTiles());

  for (int i = 0; i < tileset.GetNumTiles(); i++)
    m_Tiles[iInsertAt + i] = tileset.GetTile(i);

  return true;
}
Exemple #3
0
glm::uvec2 ForwardPlusHelper::GetNumTiles(const glm::uvec2& screenSize)
{
	return GetNumTiles(screenSize.x, screenSize.y);
}