Points Game
unknown
csharp
2 years ago
3.6 kB
4
Indexable
using System.Drawing;
using System.Globalization;
char playerChar = '*';
ConsoleColor playerColor = ConsoleColor.Green;
char pointChar = '$';
int startPlayerPositionX = 1;
int startPlayerPositionY = 1;
int currentPlayerPositionX = startPlayerPositionX;
int currentPlayerPositionY = startPlayerPositionY;
int pointAmount = 0;
int targetPoints = 3;
bool isWon = false;
char[,] map = new char[10, 10]
{
{'#', '#', '#', '#', '#', '#', '#', '#', '#', '#', },
{'#', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '#', },
{'#', ' ', '#', ' ', ' ', ' ', ' ', ' ', ' ', '#', },
{'#', ' ', '#', ' ', ' ', '#', '#', '#', ' ', '#', },
{'#', ' ', '#', ' ', ' ', ' ', '$', '#', ' ', '#', },
{'#', ' ', '#', ' ', ' ', ' ', '$', '#', ' ', '#', },
{'#', '$', '#', ' ', ' ', '#', '#', '#', ' ', '#', },
{'#', '#', '#', ' ', ' ', ' ', ' ', ' ', ' ', '#', },
{'#', '$', ' ', ' ', ' ', ' ', ' ', ' ', '$', '#', },
{'#', '#', '#', '#', '#', '#', '#', '#', '#', '#', },
};
while (true)
{
Console.Clear();
Render(map);
Input();
if (isWon)
{
Console.WriteLine("Поздравляем! Вы победили!");
break;
}
}
void Render(char[,] map)
{
for (int i = 0; i < map.GetLength(0); i++)
{
for (int j = 0; j < map.GetLength(1); j++)
{
if (i == currentPlayerPositionY && j == currentPlayerPositionX)
{
if (map[i, j] == '$')
{
pointAmount++;
map[i, j] = ' ';
}
Console.ForegroundColor = playerColor;
Console.Write(playerChar + " ");
}
else
{
if (map[i, j] == '$')
{
Console.ForegroundColor = ConsoleColor.Yellow;
}
Console.Write(map[i, j] + " ");
}
Console.ResetColor();
}
Console.WriteLine();
}
Console.WriteLine();
Console.WriteLine($"СОБРАНО ОЧКОВ: {pointAmount}/{targetPoints}");
if (pointAmount >= targetPoints)
{
Console.WriteLine();
Console.WriteLine("ВЫ СОБРАЛИ ДОСТАТОЧНО ОЧКОВ ДЛЯ ПРОДОЛЖЕНИЯ, НАЖМИТЕ ENTER");
}
}
void Input()
{
switch (Console.ReadKey().Key)
{
case ConsoleKey.LeftArrow:
if (map[currentPlayerPositionY, currentPlayerPositionX - 1] != '#')
{
currentPlayerPositionX--;
}
break;
case ConsoleKey.RightArrow:
if (map[currentPlayerPositionY, currentPlayerPositionX + 1] != '#')
{
currentPlayerPositionX++;
}
break;
case ConsoleKey.UpArrow:
if (map[currentPlayerPositionY - 1, currentPlayerPositionX] != '#')
{
currentPlayerPositionY--;
}
break;
case ConsoleKey.DownArrow:
if (map[currentPlayerPositionY + 1, currentPlayerPositionX] != '#')
{
currentPlayerPositionY++;
}
break;
case ConsoleKey.Enter:
if (pointAmount >= targetPoints)
{
isWon = true;
}
break;
default:
break;
}
}Editor is loading...
Leave a Comment