Untitled
unknown
csharp
10 days ago
3.4 kB
3
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