Untitled
unknown
csharp
8 months ago
3.4 kB
6
Indexable
using System;
public class BaiTap64
{
// Hàm vẽ cửa sổ với nét đơn
static void DrawWindow(int cotTrai, int hangTren, int cotPhai, int hangDuoi)
{
// Kiểm tra tọa độ hợp lệ cơ bản
if (cotTrai >= cotPhai || hangTren >= hangDuoi ||
cotTrai < 0 || hangTren < 0 ||
cotPhai >= Console.WindowWidth || hangDuoi >= Console.WindowHeight)
{
Console.WriteLine("\nLỗi: Tọa độ cửa sổ không hợp lệ hoặc ra ngoài màn hình.");
return;
}
// Ký tự vẽ
char gocTrenTrai = '┌';
char gocTrenPhai = '┐';
char gocDuoiTrai = '└';
char gocDuoiPhai = '┘';
char ngang = '─';
char doc = '│';
ConsoleColor mauChuCu = Console.ForegroundColor;
ConsoleColor mauNenCu = Console.BackgroundColor;
try
{
// Vẽ góc trên trái
Console.SetCursorPosition(cotTrai, hangTren);
Console.Write(gocTrenTrai);
// Vẽ góc trên phải
Console.SetCursorPosition(cotPhai, hangTren);
Console.Write(gocTrenPhai);
// Vẽ góc dưới trái
Console.SetCursorPosition(cotTrai, hangDuoi);
Console.Write(gocDuoiTrai);
// Vẽ góc dưới phải
Console.SetCursorPosition(cotPhai, hangDuoi);
Console.Write(gocDuoiPhai);
// Vẽ đường ngang trên và dưới
for (int c = cotTrai + 1; c < cotPhai; c++)
{
Console.SetCursorPosition(c, hangTren);
Console.Write(ngang);
Console.SetCursorPosition(c, hangDuoi);
Console.Write(ngang);
}
// Vẽ đường dọc trái và phải
for (int r = hangTren + 1; r < hangDuoi; r++)
{
Console.SetCursorPosition(cotTrai, r);
Console.Write(doc);
Console.SetCursorPosition(cotPhai, r);
Console.Write(doc);
}
}
catch (ArgumentOutOfRangeException ex)
{
// Console.WriteLine($"\nLỗi khi vẽ: {ex.Message}");
}
finally
{
Console.ForegroundColor = mauChuCu;
Console.BackgroundColor = mauNenCu;
// Đặt con trỏ vào trong cửa sổ sau khi vẽ
try { Console.SetCursorPosition(cotTrai + 1, hangTren + 1); } catch { }
}
}
public static void Main(string[] args)
{
Console.OutputEncoding = System.Text.Encoding.UTF8;
Console.InputEncoding = System.Text.Encoding.UTF8;
Console.WriteLine("Hàm vẽ cửa sổ DrawWindow");
int c1 = 5, r1 = 2;
int c2 = 40, r2 = 10;
Console.WriteLine($"\nĐang vẽ cửa sổ từ ({c1},{r1}) đến ({c2},{r2})...");
Console.CursorVisible = false; // Ẩn con trỏ cho đẹp
DrawWindow(c1, r1, c2, r2);
Console.SetCursorPosition(c1 + 2, r1 + 1);
Console.Write("Đây là nội dung bên trong cửa sổ");
Console.SetCursorPosition(0, r2 + 2); // Di chuyển con trỏ ra ngoài sau khi vẽ xong
Console.CursorVisible = true; // Hiện lại con trỏ
Console.WriteLine("\nVẽ xong.");
}
}Editor is loading...
Leave a Comment