#include <iostream>
#include <stdio.h>  
#include <conio.h>
#include<stdlib.h> 
int map[9][11] = {
	{0,1,1,1,1,1,1,1,1,1,0},  
	{0,1,0,0,0,1,0,0,0,1,0},  
	{0,1,0,4,4,4,4,4,0,1,0},  
	{0,1,0,4,0,4,0,4,0,1,1},  
	{0,1,0,0,0,0,0,0,4,0,1},  
	{1,1,0,1,1,1,1,0,4,0,1},
	{1,0,8,3,3,3,3,0,0,0,1},  
	{1,0,3,3,3,3,3,0,0,1,1},
	{1,1,1,1,1,1,1,1,1,1,0} };
void DrawMap()
{
	
	for (int i = 0; i < 9; i++)
	{
		for (int j = 0; j < 11; j++)
		{
			
			switch (map[i][j])
			{
			case 0:
				printf("  ");
				break;
			case 1:
				printf("■");
				break;
			case 3:
				printf("☆");
				break;
			case 4:
				printf("□");
				break;
			case 5:
				printf("♀");  
				break;
			case 7:     
				printf("★");
				break;
			case 8:     
				printf("♀");
				break;
			}
		}
		printf("\n");
	}
}
void PlayGame()
{
	int r, c;  
	for (int i = 0; i < 9; i++)
	{
		for (int j = 0; j < 11; j++)
		{
			if (map[i][j] == 5 || map[i][j] == 8)   
			{
				r = i;
				c = j;
			}
		}
	}
	char ch;  
	ch = _getch();  
	
	
	
	switch (ch)
	{
	case 'W':  
	case 'w':
	case 72:
		if (map[r - 1][c] == 0 || map[r - 1][c] == 3)
		{
			map[r - 1][c] += 5;
			map[r][c] -= 5;
		}
		else if (map[r - 1][c] == 4 || map[r - 1][c] == 7)
		{
			if (map[r - 2][c] == 0 || map[r - 2][c] == 3)
			{
				map[r - 2][c] += 4;
				map[r - 1][c] += 1;
				map[r][c] -= 5;
			}
		}
		break;
	case 'S':  
	case 's':
	case 80:
		if (map[r + 1][c] == 0 || map[r + 1][c] == 3)
		{
			map[r + 1][c] += 5;
			map[r][c] -= 5;
		}
		else if (map[r + 1][c] == 4 || map[r + 1][c] == 7)
		{
			if (map[r + 2][c] == 0 || map[r + 2][c] == 3)
			{
				map[r + 2][c] += 4;
				map[r + 1][c] += 1;
				map[r][c] -= 5;
			}
		}
		break;
	case 'A':
	case 'a':
	case 75:
		if (map[r][c - 1] == 0 || map[r][c - 1] == 3)
		{
			map[r][c - 1] += 5;
			map[r][c] -= 5;
		}
		else if (map[r][c - 1] == 4 || map[r][c - 1] == 7)
		{
			if (map[r][c - 2] == 0 || map[r][c - 2] == 3)
			{
				map[r][c - 2] += 4;
				map[r][c - 1] += 1;
				map[r][c] -= 5;
			}
		}
		break;
	case 'D':
	case 'd':
	case 77:
		if (map[r][c + 1] == 0 || map[r][c + 1] == 3)
		{
			map[r][c + 1] += 5;
			map[r][c] -= 5;
		}
		else if (map[r][c + 1] == 4 || map[r][c + 1] == 7)
		{
			if (map[r][c + 2] == 0 || map[r][c + 2] == 3)
			{
				map[r][c + 2] += 4;
				map[r][c + 1] += 1;
				map[r][c] -= 5;
			}
		}
		break;
	}
}
int main()  
{
	while (1)
	{
		system("cls");
		DrawMap();
		PlayGame();
	}
	return 0;
}