using System;
using Graph;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Graph
{
class graph
{
class ColorEl
{
public ColorEl(int x, int y, ConsoleColor b, ConsoleColor f, string txt){
Console.BackgroundColor = b;
Console.ForegroundColor = f;
Console.SetCursorPosition(x, y);
Console.WriteLine(txt);
Console.ResetColor();
}
}
public static void Main(string[] args)
{
ColorEl el1 = new ColorEl(12, 3, ConsoleColor.White, ConsoleColor.Black, "Drawing");
Console.WriteLine("\n\n\nНажмите любой символ для продолжения...");
Console.ReadKey();
Console.Clear();
Random rand = new Random();
int redo = 0;
int height = 10;
int sides = 20;
ConsoleKeyInfo keyinf;
Console.ForegroundColor = ConsoleColor.Cyan;
do
{
keyinf = Console.ReadKey(true);
switch(keyinf.Key){
case ConsoleKey.RightArrow:
sides++;
Console.SetCursorPosition(sides, height);
Console.WriteLine("▀");
break;
case ConsoleKey.LeftArrow:
sides--;
Console.SetCursorPosition(sides, height);
Console.WriteLine("▀");
break;
case ConsoleKey.UpArrow:
height--;
Console.SetCursorPosition(sides, height);
Console.WriteLine("▀");
break;
case ConsoleKey.DownArrow:
height++;
Console.SetCursorPosition(sides, height);
Console.WriteLine("▀");
break;
case ConsoleKey.Escape:
redo = 12;
Console.Clear();
Console.WriteLine("Рисование закончено");
break;
case ConsoleKey.R:
redo = 0;
break;
}
}while(redo == 0);
Console.ReadKey();
}
}
P.S. Переписан вопрос (простите, дописал, что бы было прям точно ясно, что я хочу узнать) Хочу сделать управление объектом, как реализовать? Я сам уже много что пробовал, искал, писал. Не могу найти нормально решения. Если есть уже примеры. Был бы рад посмотреть.
File -> New project -> Console application и вставляем код ниже в Progarm.cs
using System;
namespace TestConsole
{
class Program
{
class Square
{
private int _rightLimit;
private int _bottomLimit;
public int X { get; private set; }
public int Y { get; private set; }
public Square()
{
_rightLimit = Console.WindowWidth - 1;
_bottomLimit = Console.WindowHeight - 1;
X = 0;
Y = 0;
}
public void MoveToLeft()
{
if (X > 0) {
X--;
}
}
public void MoveToRight()
{
if(X < _rightLimit) {
X++;
}
}
public void MoveToUp()
{
if(Y > 0) {
Y--;
}
}
public void MoveToDown()
{
if(Y < _bottomLimit) {
Y++;
}
}
}
static void Main(string[] args)
{
Run();
Console.SetCursorPosition(0, 0);
Console.WriteLine("Всё...");
Console.ReadLine();
}
static void Run()
{
Square square = new Square();
// рисуем на стартовой позиции
PrintSquare(square);
while (true) {
ConsoleKeyInfo keyInfo = Console.ReadKey();
if (keyInfo.Key == ConsoleKey.Escape) {
break;
}
int oldX = square.X;
int oldY = square.Y;
switch(keyInfo.Key) {
case ConsoleKey.LeftArrow:
square.MoveToLeft();
break;
case ConsoleKey.RightArrow:
square.MoveToRight();
break;
case ConsoleKey.UpArrow:
square.MoveToUp();
break;
case ConsoleKey.DownArrow:
square.MoveToDown();
break;
}
if (oldX != square.X || oldY != square.Y) {
// чистим на старой позиции
Console.SetCursorPosition(oldX, oldY);
Console.Write(' ');
// рисуем на новой позиции
PrintSquare(square);
}
}
}
static void PrintSquare(Square square)
{
Console.SetCursorPosition(square.X, square.Y);
Console.Write('▀');
}
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Возможно ли замедлить цикл так, что бы мы увидели например, как появляются новые цифры в консоле при пересчете массива(не спрашивайте зачем...
Всё в шапкеНужно с c# внедрить скрипт в браузер в виде JS
Стоит задача получить список приложений на ПКЕсть WPF приложение, преобразованное в UWP через "мост"