Skip to content

Latest commit

 

History

History
108 lines (97 loc) · 3.26 KB

README-vietnamese.md

File metadata and controls

108 lines (97 loc) · 3.26 KB

marlb

Một ngôn ngữ lập trình nho nhỏ nhưng có võ, được dùng để viết một giai điệu đơn giản. Tên được đề xuất bởi bạn của tôi LOLLLLLLL.
Xây dựng dựa trên ngôn ngữ brainfuck AKA đ*t não

Tải trình thông dịch

Điều kiện:
Python: 3.10
Windows: 10

Trình thông dịch này chỉ chạy được trên Windows do tôi không tìm thấy
gói phần mềm hỗ trợ nào để kêu một tiếng beep trên Linux và MacOSX :(
Định dạng tệp tin: *.marble

chú ý: Trình thông dịch sẽ không thực thi các câu lệnh có trong một file có định dạng tệp tin khác *.marble 

Dùng git để clone cái repo này về
git clone https://github.com/bennett-nguyen/marlb.git
hoặc tải file zip về rồi giải nén mà xài :v

Hướng dẫn sử dụng

Có 2 phiên bản, bản mã nguồn và bản executable (kiểm tra ./bin/README.md để xem thêm thông tin). Nếu bạn lười tải Python để chạy trình thông dịch này thì dùng bản executable còn nếu có Python và muốn chỉnh sửa mã nguồn thì dùng bản mã nguồn

Bản mã nguồn: Chạy trên terminal emulator (command prompt, powershell): python marlb.py -m MODE -f đường/dẫn/tới/file
Bản executable: Chạy: marlb -m MODE -f đường/dẫn/tới/file
muốn xem thêm thông tin về tham số thì gõ --help vào phía sau câu lệnh, vd: marlb --help

Tôi đã viết sẵn một số file lệnh trong thư mục ./test, dùng câu lệnh tôi vừa hướng dẫn ở trên để thực thi file lệnh đó.

Chế độ (MODE)

interpret: thông dịch thông thường
debug: thông dịch nhưng in ra thông tin về những gì đang diễn ra, 
vd như dòng đang dịch, độ cao của âm hiện tại, độ dài của âm hiện tại, v.v

Cú pháp

Comment được ký hiệu bằng dấu ", những ký tự nào đứng sau " sẽ bị trình thông dịch bỏ qua. Mặc dù những kí tự mà trình thông dịch này không nhận dạng được cũng sẽ bị xem là một comment, sử dụng comment bằng dấu " vẫn là một lựa chọn tốt nhất!

Trình thông dịch sẽ chơi một nốt ứng với ký tự đại diện cho nốt đó, các ký tự bao gồm:
q: C
a: C#

w: D
s: D#

e: E

r: F
d: F#

u: G
j: G#

i: A
k: A#

o: B

p: C (âm cao hơn nốt C của q)


Để thay đổi cao độ hay độ dài của một nốt thì sử dụng những ký tự sau đây:
mặc định:
  độ cao của nốt (pitch_level): 2
  độ dài của nốt (duration): 200ms

+: Tăng cao độ lên 1 (cao nhất: 16)
-: Giảm cao độ xuống 1 (thấp nhất: 1)
>: Tăng độ dài của nốt lên 100ms (cao nhất: 15s)
<: Giảm độ dài của nốt xuống 100ms (thấp nhất: 0ms)
!: Ngừng việc thực thi lệnh trong 0.5s
:: Reset cao độ và độ dài của nốt xuống mức mặc định

Update

xem CHANGELOG.md