我有這個程序 http://pastebin.com/uHNi15pW如何使文本在C#控制檯應用程序中閃爍不同的顏色?
我想這個代碼閃爍所有的顏色avalible
Console.WriteLine("Welcome to Tic Tac Toe!");
我怎麼去這個的?
我有這個程序 http://pastebin.com/uHNi15pW如何使文本在C#控制檯應用程序中閃爍不同的顏色?
我想這個代碼閃爍所有的顏色avalible
Console.WriteLine("Welcome to Tic Tac Toe!");
我怎麼去這個的?
試試這個
while (true)
{
foreach (ConsoleColor c in Enum.GetValues(typeof(ConsoleColor)))
{
Console.ForegroundColor = c;
Console.WriteLine("Welcome to Tic Tac Toe!");
Console.Clear();
}
}
你可以的foreach添加一些deley設置減速閃爍
while (true)
{
foreach (ConsoleColor c in Enum.GetValues(typeof(ConsoleColor)))
{
Console.ForegroundColor = c;
Console.WriteLine("Welcome to Tic Tac Toe!");
Thread.Sleep(1000); // 1 sec. deley
Console.Clear();
}
}
如果你想要的東西,而不Console.Clear()
試試這個:你必須設置X的位置和Y
Console.WriteLine("Some text"); // this text will stay when tesxt "Welcome to Tic Tac Toe!" will by blinking
while (true)
{
foreach (ConsoleColor c in Enum.GetValues(typeof(ConsoleColor)))
{
Console.CursorLeft = 4; // set position
Console.CursorTop = 6; // set position
Console.ForegroundColor = c;
Console.WriteLine("Welcome to Tic Tac Toe!");
}
}
在你的代碼必須貼上這樣的代碼befeore do
循環:
var task = new Task(() =>
{
while (true)
{
foreach (ConsoleColor c in Enum.GetValues(typeof(ConsoleColor)))
{
var x = Console.CursorLeft;
var y = Console.CursorTop;
Console.CursorLeft = 0; // set position
Console.CursorTop = 0; // set position
Console.ForegroundColor = c;
Console.WriteLine("Welcome to Tic Tac Toe!");
Console.CursorLeft = x;
Console.CursorTop = y;
Thread.Sleep(1000);
}
}
});
do
{
.... rest of code
而改變這一狀況,董事會後創建:
Board();// calling the board Function
if (task.Status != TaskStatus.Running)
{
task.Start();
}
choice = int.Parse(Console.ReadLine());//Taking users choice
完整代碼這裏
https://github.com/przemekwa/ProgramingStudy/blob/master/ProgramingStudy/Study/TikTakTou.cs
而且效果將通過在玩牌時閃爍標誌來實現。
爲此,您需要知道控制檯上文本的位置(因爲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);
}
}
x
和y
確定要顯示的文本控制檯上的光標位置。
您可以致電此類似:
CancellationTokenSource source = new CancellationTokenSource();
ShowTextInColors("Welcome to Tic Tac Toe!", 0, 10, 1000, source.Token);
,並最終通過調用
source.Cancel();
注意,這將與其他調用其他線程Console.*
方法地干擾停止。並且由於您的問題看起來像要在該線下顯示一個井字遊戲,您可能需要同步您的Console.*
調用。但同步將是一個新問題,你一定會在StackOverflow上找到很多它們(嘗試lock
關鍵字)。
只需設置['Console.ForegroundColor'](https://msdn.microsoft.com/en-us/library/system.console.foregroundcolor(v = vs.110).aspx)屬性? – Dan