Hãy chắc chắn để xem thử thách khác, đảo ngược bản đồ nhân vật ASCII !
Bộ ký tự ASCII (Mã tiêu chuẩn Mỹ để trao đổi thông tin) là tiêu chuẩn mã hóa ký tự được sử dụng rộng rãi nhất. Mã ASCII thể hiện văn bản trong máy tính, thiết bị viễn thông và các thiết bị khác.
Thử thách
Thách thức của bạn là in một ánh xạ của bộ ký tự ASCII khi người dùng nhập chúng. QUÀ TẶNG:
Sau khi người dùng nhập mọi ký tự ASCII, đầu ra sẽ như thế này:
Lập bản đồ
Mỗi ký tự có một vị trí được gán trên lưới logic 16x6, bắt đầu bằng ký tự khoảng trắng ở vị trí trên cùng bên trái và gói sao cho chữ số 0 xuất hiện bên dưới nó.
Khi nhận được đầu vào ASCII có thể in, hãy in ký tự ASCII đó tại vị trí màn hình được chỉ định mà không xóa bất kỳ ký tự nào hiện trên màn hình.
Quy tắc
- Chương trình của bạn chỉ cần vạch ra các ký tự ASCII in được,
0x20
để0x7E
. - Chương trình của bạn không được chấm dứt và tiếp tục ánh xạ các ký tự lên màn hình cho đến khi tất cả các ký tự ASCII có thể in được nhập vào. Từ đây, chương trình của bạn có thể chấm dứt hoặc chạy vào Neverland.
- Chương trình của bạn có thể ánh xạ các ký tự theo bất kỳ cách nào bạn thích, ví dụ như bảng tính, bảng, cửa sổ bảng điều khiển hoặc cửa sổ đồ họa.
- Bất kể bạn hiển thị ánh xạ như thế nào, nó phải được cập nhật trong thời gian thực (ngay khi nhận được đầu vào của người dùng).
- Nếu chương trình của bạn không đọc đầu vào một cách im lặng, nó phải đặt con trỏ ra khỏi đường đi, vì vậy văn bản sẽ không cản trở bản đồ.
Cứu giúp
Đây là thuật toán mã giả mà tôi đã sử dụng để tạo GIF:
loop forever
c = input
y_coord = c / 16
x_coord = c - y * 16
if c is printable
print c at (x_coord * 2 + 1, y_coord + 1)
end if
end loop
Có thể có một cách khác để đạt được đầu ra cần thiết. Bạn có thể chọn sử dụng thuật toán của tôi hoặc của riêng bạn, nhưng đầu ra phải giống nhau bất kể.
Đây là một tài liệu tham khảo bảng ASCII hữu ích.
Chấm điểm
Câu trả lời có ít byte nhất trong mỗi ngôn ngữ sẽ thắng. Chúc vui vẻ!