After printing some data(a, b, c)
a
b
c
on console screen, how to get back to the first line and print x, y, z like this
a x
b y
c z
After printing some data(a, b, c)
a
b
c
on console screen, how to get back to the first line and print x, y, z like this
a x
b y
c z
You can control the cursor through Console.CursorTop, Console.CursorLeft properties.
static void Main(string[] args)
{
Random rand = new Random();
int maxShoots = 100;
Console.Clear();
for (int loop = 0; loop < maxShoots; loop++)
{
Console.CursorLeft = rand.Next(Console.WindowWidth);
Console.CursorTop = rand.Next(Console.WindowHeight);
Console.Write("x");
Console.CursorLeft = 0;
Console.CursorTop = 0;
Console.Write("Iteration " + loop);
Thread.Sleep(rand.Next(100));
}
Console.CursorLeft = 0;
Console.CursorTop = Console.WindowHeight-1;
Console.ReadKey();
}
You will have to use explicit cursor positioning for this to work on the console, it could be something like this:
public class SomeCharPos{
private char ch;
private int row, col;
public SomeCharPos(char ch, int row, int col){
this.ch = ch;
this.row = row;
this.col = col;
}
public char SomeChar{
get{ return this.ch; }
}
public int Row{
get{ return this.row; }
}
public int Col{
get{ return this.col; }
}
}
public class DemoIt{
public Dictionary thisDict = new Dictionary();
public DemoIt(){
thisDict.Add('a', new SomeCharPos('a', 1, 1));
thisDict.Add('b', new SomeCharPos('a', 2, 1));
thisDict.Add('c', new SomeCharPos('a', 3, 1));
....
thisDict.Add('x', new SomeCharPos('x', 1, 3));
thisDict.Add('y', new SomeCharPos('x', 2, 3));
thisDict.Add('z', new SomeCharPos('x', 3, 3));
}
public void DrawIt(){
foreach (SomeCharPos pos in thisDict.Values){
Console.SetCursorPosition(pos.Col, pos.Row);
Console.Write(pos.SomeChar);
}
}
}
Hope this helps, Best regards, Tom.