gpt4 book ai didi

c# - 如何使文本在 C# 控制台应用程序中闪烁不同的颜色?

转载 作者:太空宇宙 更新时间:2023-11-03 21:14:35 25 4
gpt4 key购买 nike

我有这个程序 http://pastebin.com/uHNi15pW

我想让这段代码闪烁所有可用的颜色

Console.WriteLine("Welcome to Tic Tac Toe!");

我该怎么做?

最佳答案

为此,您需要知道文本在控制台上的位置(因为 Console.WriteLine 只会在当前光标位置写入)。你可以这样做:

public async Task ShowTextInColors(string text, int x, int y, int delay, CancellationToken token)
{
ConsoleColor[] colors = Enum.GetValues(typeof(ConsoleColor)).OfType<ConsoleColor>().ToArray();

int color = -1;
while (!token.IsCancellationRequested)
{
color += 1;
if (color >= colors.Length) color = 0;
Console.CursorLeft = x;
Console.CursorTop = y;
Console.ForegroundColor = colors[color];
Console.Write(text);
await Task.Delay(delay, token);
}
}

xy 确定您要在控制台上显示文本的光标位置。

你可以这样调用它:

CancellationTokenSource source = new CancellationTokenSource();
ShowTextInColors("Welcome to Tic Tac Toe!", 0, 10, 1000, source.Token);

并最终通过调用停止它

source.Cancel();

请注意,这会干扰其他线程中对 Console.* 方法的其他调用。由于您的问题看起来像您想在该行下方显示一个井字游戏,因此您可能需要同步您的 Console.* 调用。但是同步将是一个新问题,您肯定会在 StackOverflow 上找到很多同步问题(试试 lock 关键字)。

关于c# - 如何使文本在 C# 控制台应用程序中闪烁不同的颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35271996/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com