在这个博客中,我们将学习如何创建一个简单的飞行棋游戏。飞行棋是一种棋类游戏,玩家通过掷骰子来移动棋子,并根据不同的方块进行不同的操作。
首先,我们需要创建一个C#控制台应用程序。在程序中,我们定义了一些全局变量和数组,用于存储地图方块位置、玩家姓名和玩家坐标等信息。
/// <summary>
/// 模拟地图方块位置数组
/// </summary>
static int[] MapArr = new int[100];
/// <summary>
/// 存放玩家姓名
/// </summary>
static string[] playerArr = new string[2];
/// <summary>
/// 存储玩家坐标
/// </summary>
static int[] playerCoordinate = new int[2];
/// <summary>
/// 用来存储判断哪个玩家完成一轮游戏
/// </summary>
static bool[] flagArr = new bool[2];
接下来,我们定义了几个辅助函数来绘制游戏头部、画地图和初始化地图。绘制游戏头部函数主要用于显示游戏的名称和作者等信息,画地图函数用于绘制游戏地图,初始化地图函数用于设置地图方块的规则。
/// <summary>
/// 游戏头
/// </summary>
static void GameHead()
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("********************************");
Console.ForegroundColor = ConsoleColor.Blue;
Console.WriteLine("********************************");
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("********************************");
Console.ForegroundColor = ConsoleColor.Yellow;
Console.WriteLine("*************飞行棋*************");
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("********************************");
Console.ForegroundColor = ConsoleColor.Blue;
Console.WriteLine("********************************");
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("********************************");
}
/// <summary>
/// 画地图
/// </summary>
static void DrawMap()
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("图例:幸运轮盘:◎ 地雷:★ 暂停:▲ 时空隧道:卐 ");
Console.ForegroundColor = ConsoleColor.White;
#region 第一横行
for (int i = 0; i < 30; i++)
{
SetMap(i);
}
Console.WriteLine();//第一横行画完后换行
#endregion
#region 第一竖行
for (int i = 30; i < 35; i++)
{
for (int j = 1; j < 30; j++)
{
Console.Write(" ");
}
SetMap(i);
Console.WriteLine();
}
#endregion
#region 第二横行
for (int i = 64; i >= 35; i--)
{
SetMap(i);
}
Console.WriteLine();//第二横行画完后换行
#endregion
#region 第二竖行
for (int i = 65; i < 70; i++)
{
SetMap(i);
Console.WriteLine();
}
#endregion
#region 第三横行
for (int i = 70; i < 100; i++)
{
SetMap(i);
}
Console.WriteLine();
#endregion
}
/// <summary>
/// 初始化地图(设置地图规则)
/// </summary>
static void InitializeMap()
{
//幸运轮盘
int[] luckArr = { 8, 15, 25, 38, 46, 52, 68, 80 };
for (int i = 0; i < luckArr.Length; i++)
{
MapArr[luckArr[i]] = 1;
}
//地雷
int[] landmine = { 10, 20, 35, 50, 66, 78, 95 };
for (int i = 0; i < landmine.Length; i++)
{
MapArr[landmine[i]] = 2;
}
//暂停
int[] stop = { 3, 7, 18, 21, 30, 43, 57, 79, 88, 97 };
for (int i = 0; i < stop.Length; i++)
{
MapArr[stop[i]] = 3;
}
//时空隧道
int[] tunnel = { 6, 22, 40, 53, 69, 77, 87, 90 };
for (int i = 0; i < tunnel.Length; i++)
{
MapArr[tunnel[i]] = 4;
}
}
/// <summary>
/// 设置地图方块
/// </summary>
/// <param name="i">循环绘制地图的位置</param>
static void SetMap(int i)
{
if (playerCoordinate[0] == playerCoordinate[1] && playerCoordinate[0] == i)
{
Console.Write("<>");
}
else if (playerCoordinate[0] == i)
{
Console.ForegroundColor = ConsoleColor.DarkMagenta;
Console.Write("A");
}
else if (playerCoordinate[1] == i)
{
Console.ForegroundColor = ConsoleColor.Cyan;
Console.Write("B");
}
else
{
switch (MapArr[i])
{
case 0:
Console.ForegroundColor = ConsoleColor.Yellow;
Console.Write("□");
break;
case 1:
Console.ForegroundColor = ConsoleColor.Green;
Console.Write("◎");
break;
case 2:
Console.ForegroundColor = ConsoleColor.Red;
Console.Write("☆");
break;
case 3:
Console.ForegroundColor = ConsoleColor.Blue;
Console.Write("▲");
break;
case 4:
Console.ForegroundColor = ConsoleColor.White;
Console.Write("卐");
break;
}
}
}
然后,我们开始进入游戏的主要逻辑部分。我们使用一个循环来控制游戏的进行,直到有玩家胜利为止。在每一轮中,我们先刷新地图,然后让玩家掷骰子,根据掷骰子的结果移动棋子,并判断棋子当前位置的方块类型,执行对应的操作。
static void Main(string[] args)
{
//调用头部
GameHead();
#region 输入玩家姓名
Console.WriteLine("请输入玩家A的姓名:");
playerArr[0] = Console.ReadLine();
while (playerArr[0] == "")
{
Console.WriteLine("玩家A姓名不能为空");
playerArr[0] = Console.ReadLine();
}
Console.WriteLine("请输入玩家B的姓名:");
playerArr[1] = Console.ReadLine();
while (playerArr[1] == "")
{
Console.WriteLine("玩家B姓名不能为空");
playerArr[1] = Console.ReadLine();
}
//输入完成后实现清屏
Console.Clear();
#endregion
flagArr[0] = true;//默认 玩家一 开始玩游戏
//没有玩家胜利时,就一直玩游戏
while (playerCoordinate[0] <= 99 && playerCoordinate[1] <= 99)
{
//玩家一 玩游戏
if (flagArr[0])
{
PlayGame(0);
Console.Clear();
flagArr[0] = false;
}
else
{
flagArr[0] = true;
}
//玩家二 玩游戏
if (flagArr[1])
{
PlayGame(1);
Console.Clear();
flagArr[1] = false;
}
else
{
flagArr[1] = true;
}
}
//PlayGame(1);
Console.Clear();
if (playerCoordinate[0] > 99)
{
Console.WriteLine("胜利者:" + playerArr[0]);
Win();
}
if (playerCoordinate[1] > 99)
{
Console.WriteLine("胜利者:" + playerArr[1]);
Win();
}
Console.ReadKey();
}
/// <summary>
/// 玩游戏
/// </summary>
static void PlayGame(int playerID)
{
#region 每轮掷骰子时候就刷新地图
GameHead();
Console.WriteLine();
Console.WriteLine();
InitializeMap();
DrawMap();
#endregion
Console.WriteLine("请按任意键开始游戏");
Console.ReadKey(true);
Random random = new Random();
//掷骰子的随机数
int num = random.Next(1, 7);
Console.WriteLine($"{playerArr[playerID]}掷出了{num}");
Console.ReadKey(true);
Console.WriteLine($"{playerArr[playerID]}前进了{num}格");
Console.ReadKey(true);
playerCoordinate[playerID] += num;
SwitchCheck(playerID);
}
如果玩家踩到了幸运轮盘方块,玩家可以选择与对方交换位置或轰炸对方使其回退6格。如果玩家踩到了地雷方块,玩家会回退6格。如果玩家踩到了暂停方块,玩家需要暂停一回合。如果玩家踩到了时空隧道方块,玩家会前进10格。
/// <summary>
/// 判断旗子前进位置
/// </summary>
/// <param name="playerID">玩家</param>
static void SwitchCheck(int playerID)
{
if (playerCoordinate[playerID] < 0)
{
playerCoordinate[playerID] = 0;
}
//获取当前棋子在地图上的位置
int value = MapArr[(playerCoordinate[playerID] > 99 ? 99 : playerCoordinate[playerID])];
int i = (playerID + 1) > 1 ? 0 : playerID + 1;
//玩游戏过程中玩家一踩到了玩家二的情况
if (playerCoordinate[playerID] == playerCoordinate[((playerID + 1) > 1 ? 0 : playerID + 1)])
{
Console.WriteLine($"玩家{playerArr[playerID]}踩到了玩家{playerArr[((playerID + 1) > 1 ? 0 : playerID + 1)]},玩家{playerArr[((playerID + 1) > 1 ? 0 : playerID + 1)]}退后6格");
playerCoordinate[((playerID + 1) > 1 ? 0 : playerID + 1)] -= 6;
playerCoordinate[((playerID + 1) > 1 ? 0 : playerID + 1)] = playerCoordinate[((playerID + 1) > 1 ? 0 : playerID + 1)] <= 0 ? 0 : playerCoordinate[((playerID + 1) > 1 ? 0 : playerID + 1)];
Console.ReadKey(true);//判断被踩玩家回退时棋盘模块
SwitchCheck(((playerID + 1) > 1 ? 0 : playerID + 1));
}
else
{
switch (value)
{
//方块
case 0:
Console.WriteLine($"{playerArr[playerID]}踩到了方块,安全");
Console.ReadKey(true);
break;
//幸运轮盘
case 1:
Console.WriteLine($"{playerArr[playerID]}踩到了幸运轮盘,1--交换位置 2--轰炸对方");
string check = Console.ReadLine();
//要求必须输入1/2
while (check.Equals("") || (check != "1" && check != "2"))
{
Console.WriteLine("请输入1或者2,1--交换位置 2--轰炸对方");
check = Console.ReadLine();
}
if (check == "1")
{
int temp;
temp = playerCoordinate[playerID];
playerCoordinate[playerID] = playerCoordinate[(playerID + 1) > 1 ? 0 : playerID + 1];
playerCoordinate[(playerID + 1) > 1 ? 0 : playerID + 1] = temp;
Console.WriteLine($"{playerArr[playerID]}与{playerArr[(playerID + 1) > 1 ? 0 : playerID + 1]}交换位置");
SwitchCheck(playerID);//交换位置后判断棋子当前位置的情况
Console.ReadKey(true);
}
if (check == "2")
{
playerCoordinate[(playerID + 1) > 1 ? 0 : playerID + 1] -= 6;
Console.WriteLine($"{playerArr[playerID]}轰炸了{playerArr[(playerID + 1) > 1 ? 0 : playerID + 1]},{playerArr[(playerID + 1) > 1 ? 0 : playerID + 1]}回退6格");
Console.ReadKey(true);
SwitchCheck((playerID + 1) > 1 ? 0 : playerID + 1);//轰炸对方,看对方棋子位置
}
break;
//地雷
case 2:
Console.WriteLine($"{playerArr[playerID]}踩到了地雷,回退6格");
playerCoordinate[playerID] -= 6;
Console.ReadKey(true);
SwitchCheck(playerID);//判断回退位置
break;
//暂停
case 3:
Console.WriteLine($"{playerArr[playerID]}踩到了暂停,暂停一回合");
//flagArr[(playerID + 1) > 1 ? 0 : playerID + 1] = false;
Console.ReadKey(true);
Console.Clear();
PlayGame((playerID + 1) > 1 ? 0 : playerID + 1);
break;
//时空隧道
case 4:
playerCoordinate[playerID] += 10;
Console.WriteLine($"{playerArr[playerID]}踩到了时空隧道,前进10格");
Console.ReadKey(true);
SwitchCheck(playerID);
break;
}
}
}
最后,当有玩家的坐标超过99时,即玩家到达终点,游戏结束,显示胜利者的姓名并展示胜利界面。
/// <summary>
/// 胜利
/// </summary>
public static void Win()//定义一个胜利的方法,用来在玩家胜利时提示胜利界面
{
Console.ForegroundColor = ConsoleColor.Red;//将输出内容的颜色改为红色
Console.WriteLine(" ◆ ");
Console.WriteLine(" ■ ◆ ■ ■");
Console.WriteLine(" ■■■■ ■ ■ ◆■ ■ ■ ■");
Console.WriteLine(" ■ ■ ■ ■ ◆ ■ ■ ■ ■");
Console.WriteLine(" ■ ■ ■■■■■■ ■■■■■■■ ■ ■ ■");
Console.WriteLine(" ■■■■ ■ ■ ●■● ■ ■ ■");
Console.WriteLine(" ■ ■ ■ ● ■ ● ■ ■ ■");
Console.WriteLine(" ■ ■ ■■■■■■ ● ■ ● ■ ■ ■");
Console.WriteLine(" ■■■■ ■ ● ■ ■ ■ ■ ■");
Console.WriteLine(" ■ ■ ■ ■ ■ ■ ■ ■");
Console.WriteLine(" ■ ■ ■ ■ ■ ■");
Console.WriteLine(" ■ ■ ■ ■ ● ■ ");
Console.WriteLine(" ■ ■■ ■■■■■■ ■ ● ●");
Console.ResetColor();
}
这是一个简单的飞行棋游戏的实现过程。通过这个例子,我们可以学习到如何使用C#编写控制台应用程序,如何利用循环和条件语句控制游戏的进行,以及如何使用数组来存储和处理游戏数据。希望对你有所帮助!
完整代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Game
{
internal class Program
{
/// <summary>
/// 模拟地图方块位置数组
/// </summary>
static int[] MapArr = new int[100];
/// <summary>
/// 存放玩家姓名
/// </summary>
static string[] playerArr = new string[2];
/// <summary>
/// 存储玩家坐标
/// </summary>
static int[] playerCoordinate = new int[2];
/// <summary>
/// 用来存储判断哪个玩家完成一轮游戏
/// </summary>
static bool[] flagArr = new bool[2];
static void Main(string[] args)
{
//调用头部
GameHead();
#region 输入玩家姓名
Console.WriteLine("请输入玩家A的姓名:");
playerArr[0] = Console.ReadLine();
while (playerArr[0] == "")
{
Console.WriteLine("玩家A姓名不能为空");
playerArr[0] = Console.ReadLine();
}
Console.WriteLine("请输入玩家B的姓名:");
playerArr[1] = Console.ReadLine();
while (playerArr[1] == "")
{
Console.WriteLine("玩家B姓名不能为空");
playerArr[1] = Console.ReadLine();
}
//输入完成后实现清屏
Console.Clear();
#endregion
flagArr[0] = true;//默认 玩家一 开始玩游戏
//没有玩家胜利时,就一直玩游戏
while (playerCoordinate[0] <= 99 && playerCoordinate[1] <= 99)
{
//玩家一 玩游戏
if (flagArr[0])
{
PlayGame(0);
Console.Clear();
flagArr[0] = false;
}
else
{
flagArr[0] = true;
}
//玩家二 玩游戏
if (flagArr[1])
{
PlayGame(1);
Console.Clear();
flagArr[1] = false;
}
else
{
flagArr[1] = true;
}
}
//PlayGame(1);
Console.Clear();
if (playerCoordinate[0] > 99)
{
Console.WriteLine("胜利者:" + playerArr[0]);
Win();
}
if (playerCoordinate[1] > 99)
{
Console.WriteLine("胜利者:" + playerArr[1]);
Win();
}
Console.ReadKey();
}
/// <summary>
/// 游戏头
/// </summary>
static void GameHead()
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("********************************");
Console.ForegroundColor = ConsoleColor.Blue;
Console.WriteLine("********************************");
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("********************************");
Console.ForegroundColor = ConsoleColor.Yellow;
Console.WriteLine("*************飞行棋*************");
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("********************************");
Console.ForegroundColor = ConsoleColor.Blue;
Console.WriteLine("********************************");
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("********************************");
}
/// <summary>
/// 画地图
/// </summary>
static void DrawMap()
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("图例:幸运轮盘:◎ 地雷:★ 暂停:▲ 时空隧道:卐 ");
Console.ForegroundColor = ConsoleColor.White;
#region 第一横行
for (int i = 0; i < 30; i++)
{
SetMap(i);
}
Console.WriteLine();//第一横行画完后换行
#endregion
#region 第一竖行
for (int i = 30; i < 35; i++)
{
for (int j = 1; j < 30; j++)
{
Console.Write(" ");
}
SetMap(i);
Console.WriteLine();
}
#endregion
#region 第二横行
for (int i = 64; i >= 35; i--)
{
SetMap(i);
}
Console.WriteLine();//第二横行画完后换行
#endregion
#region 第二竖行
for (int i = 65; i < 70; i++)
{
SetMap(i);
Console.WriteLine();
}
#endregion
#region 第三横行
for (int i = 70; i < 100; i++)
{
SetMap(i);
}
Console.WriteLine();
#endregion
}
/// <summary>
/// 初始化地图(设置地图规则)
/// </summary>
static void InitializeMap()
{
//幸运轮盘
int[] luckArr = { 8, 15, 25, 38, 46, 52, 68, 80 };
for (int i = 0; i < luckArr.Length; i++)
{
MapArr[luckArr[i]] = 1;
}
//地雷
int[] landmine = { 10, 20, 35, 50, 66, 78, 95 };
for (int i = 0; i < landmine.Length; i++)
{
MapArr[landmine[i]] = 2;
}
//暂停
int[] stop = { 3, 7, 18, 21, 30, 43, 57, 79, 88, 97 };
for (int i = 0; i < stop.Length; i++)
{
MapArr[stop[i]] = 3;
}
//时空隧道
int[] tunnel = { 6, 22, 40, 53, 69, 77, 87, 90 };
for (int i = 0; i < tunnel.Length; i++)
{
MapArr[tunnel[i]] = 4;
}
}
/// <summary>
/// 设置地图方块
/// </summary>
/// <param name="i">循环绘制地图的位置</param>
static void SetMap(int i)
{
if (playerCoordinate[0] == playerCoordinate[1] && playerCoordinate[0] == i)
{
Console.Write("<>");
}
else if (playerCoordinate[0] == i)
{
Console.ForegroundColor = ConsoleColor.DarkMagenta;
Console.Write("A");
}
else if (playerCoordinate[1] == i)
{
Console.ForegroundColor = ConsoleColor.Cyan;
Console.Write("B");
}
else
{
switch (MapArr[i])
{
case 0:
Console.ForegroundColor = ConsoleColor.Yellow;
Console.Write("□");
break;
case 1:
Console.ForegroundColor = ConsoleColor.Green;
Console.Write("◎");
break;
case 2:
Console.ForegroundColor = ConsoleColor.Red;
Console.Write("☆");
break;
case 3:
Console.ForegroundColor = ConsoleColor.Blue;
Console.Write("▲");
break;
case 4:
Console.ForegroundColor = ConsoleColor.White;
Console.Write("卐");
break;
}
}
}
/// <summary>
/// 玩游戏
/// </summary>
static void PlayGame(int playerID)
{
#region 每轮掷骰子时候就刷新地图
GameHead();
Console.WriteLine();
Console.WriteLine();
InitializeMap();
DrawMap();
#endregion
Console.WriteLine("请按任意键开始游戏");
Console.ReadKey(true);
Random random = new Random();
//掷骰子的随机数
int num = random.Next(1, 7);
Console.WriteLine($"{playerArr[playerID]}掷出了{num}");
Console.ReadKey(true);
Console.WriteLine($"{playerArr[playerID]}前进了{num}格");
Console.ReadKey(true);
playerCoordinate[playerID] += num;
SwitchCheck(playerID);
}
/// <summary>
/// 判断旗子前进位置
/// </summary>
/// <param name="playerID">玩家</param>
static void SwitchCheck(int playerID)
{
if (playerCoordinate[playerID] < 0)
{
playerCoordinate[playerID] = 0;
}
//获取当前棋子在地图上的位置
int value = MapArr[(playerCoordinate[playerID] > 99 ? 99 : playerCoordinate[playerID])];
int i = (playerID + 1) > 1 ? 0 : playerID + 1;
//玩游戏过程中玩家一踩到了玩家二的情况
if (playerCoordinate[playerID] == playerCoordinate[((playerID + 1) > 1 ? 0 : playerID + 1)])
{
Console.WriteLine($"玩家{playerArr[playerID]}踩到了玩家{playerArr[((playerID + 1) > 1 ? 0 : playerID + 1)]},玩家{playerArr[((playerID + 1) > 1 ? 0 : playerID + 1)]}退后6格");
playerCoordinate[((playerID + 1) > 1 ? 0 : playerID + 1)] -= 6;
playerCoordinate[((playerID + 1) > 1 ? 0 : playerID + 1)] = playerCoordinate[((playerID + 1) > 1 ? 0 : playerID + 1)] <= 0 ? 0 : playerCoordinate[((playerID + 1) > 1 ? 0 : playerID + 1)];
Console.ReadKey(true);//判断被踩玩家回退时棋盘模块
SwitchCheck(((playerID + 1) > 1 ? 0 : playerID + 1));
}
else
{
switch (value)
{
//方块
case 0:
Console.WriteLine($"{playerArr[playerID]}踩到了方块,安全");
Console.ReadKey(true);
break;
//幸运轮盘
case 1:
Console.WriteLine($"{playerArr[playerID]}踩到了幸运轮盘,1--交换位置 2--轰炸对方");
string check = Console.ReadLine();
//要求必须输入1/2
while (check.Equals("") || (check != "1" && check != "2"))
{
Console.WriteLine("请输入1或者2,1--交换位置 2--轰炸对方");
check = Console.ReadLine();
}
if (check == "1")
{
int temp;
temp = playerCoordinate[playerID];
playerCoordinate[playerID] = playerCoordinate[(playerID + 1) > 1 ? 0 : playerID + 1];
playerCoordinate[(playerID + 1) > 1 ? 0 : playerID + 1] = temp;
Console.WriteLine($"{playerArr[playerID]}与{playerArr[(playerID + 1) > 1 ? 0 : playerID + 1]}交换位置");
SwitchCheck(playerID);//交换位置后判断棋子当前位置的情况
Console.ReadKey(true);
}
if (check == "2")
{
playerCoordinate[(playerID + 1) > 1 ? 0 : playerID + 1] -= 6;
Console.WriteLine($"{playerArr[playerID]}轰炸了{playerArr[(playerID + 1) > 1 ? 0 : playerID + 1]},{playerArr[(playerID + 1) > 1 ? 0 : playerID + 1]}回退6格");
Console.ReadKey(true);
SwitchCheck((playerID + 1) > 1 ? 0 : playerID + 1);//轰炸对方,看对方棋子位置
}
break;
//地雷
case 2:
Console.WriteLine($"{playerArr[playerID]}踩到了地雷,回退6格");
playerCoordinate[playerID] -= 6;
Console.ReadKey(true);
SwitchCheck(playerID);//判断回退位置
break;
//暂停
case 3:
Console.WriteLine($"{playerArr[playerID]}踩到了暂停,暂停一回合");
//flagArr[(playerID + 1) > 1 ? 0 : playerID + 1] = false;
Console.ReadKey(true);
Console.Clear();
PlayGame((playerID + 1) > 1 ? 0 : playerID + 1);
break;
//时空隧道
case 4:
playerCoordinate[playerID] += 10;
Console.WriteLine($"{playerArr[playerID]}踩到了时空隧道,前进10格");
Console.ReadKey(true);
SwitchCheck(playerID);
break;
}
}
}
/// <summary>
/// 胜利
/// </summary>
public static void Win()//定义一个胜利的方法,用来在玩家胜利时提示胜利界面
{
Console.ForegroundColor = ConsoleColor.Red;//将输出内容的颜色改为红色
Console.WriteLine(" ◆ ");
Console.WriteLine(" ■ ◆ ■ ■");
Console.WriteLine(" ■■■■ ■ ■ ◆■ ■ ■ ■");
Console.WriteLine(" ■ ■ ■ ■ ◆ ■ ■ ■ ■");
Console.WriteLine(" ■ ■ ■■■■■■ ■■■■■■■ ■ ■ ■");
Console.WriteLine(" ■■■■ ■ ■ ●■● ■ ■ ■");
Console.WriteLine(" ■ ■ ■ ● ■ ● ■ ■ ■");
Console.WriteLine(" ■ ■ ■■■■■■ ● ■ ● ■ ■ ■");
Console.WriteLine(" ■■■■ ■ ● ■ ■ ■ ■ ■");
Console.WriteLine(" ■ ■ ■ ■ ■ ■ ■ ■");
Console.WriteLine(" ■ ■ ■ ■ ■ ■");
Console.WriteLine(" ■ ■ ■ ■ ● ■ ");
Console.WriteLine(" ■ ■■ ■■■■■■ ■ ● ●");
Console.ResetColor();
}
}
}