コード例 #1
0
ファイル: Player.cpp プロジェクト: yelimlim/battleship
Position Player::AttackShip(Position pos)
{
	Draw picaso;

	Position mappos;
	for (int i = 0; i < m_MyMap.GetMapColumn(); ++i)
	{
		for (int j = 0; j < m_MyMap.GetMapRow(); ++j)
		{
			mappos.x = i + 'a';
			mappos.y = j + '1';
			picaso.SetLetterColor(m_MyMap.GetMapStatus(mappos));
			picaso.DrawMap1inside(mappos, m_MyMap.GetShipMapStatus(mappos));
			picaso.SetLetterColor(WHITE);
			picaso.SetLetterColor(m_AttackMap.GetMapStatus(mappos));
			picaso.DrawMap2inside(mappos, m_AttackMap.GetShipMapStatus(mappos));
			picaso.SetLetterColor(WHITE);
		}
	}

	picaso.DrawMap2inside(pos, SQUARE);

	Position erasepos = pos;
	int attackkey = 0;

	while (m_AttackMap.GetMapStatus(pos) == ATTACK || attackkey != ENTER)
	{
		attackkey = _getch();

		if (attackkey == 224)
		{
			attackkey = _getch();
		}

		switch (attackkey)
		{
		case LEFT:
			pos.x--;
			break;
		case RIGHT:
			pos.x++;
			break;
		case UP:
			pos.y--;
			break;
		case DOWN:
			pos.y++;
			break;
		}

		picaso.SetLetterColor(m_AttackMap.GetMapStatus(erasepos));
		picaso.DrawMap2inside(mappos, m_AttackMap.GetMapStatus(erasepos));
		picaso.SetLetterColor(WHITE);
		picaso.DrawMap2inside(pos, SQUARE);
		erasepos = pos;

	}

	picaso.DrawMap2inside(pos, ECSE);

	m_AttackMap.ChangeStatusMap(pos, ATTACK);

	return pos;
}