Multiple changes around Zictionary (mostly for Vietnamese) (#1069)
* Multiple changes - Edit Vietnamese Zictionary - Add STRING.viRemoveDiacritics() - Edit the search behavior with string written in Vietnamese without diacritics * Small changes * Update lang_vi.lua * Small change
This commit is contained in:
committed by
GitHub
parent
43215dfc4b
commit
42942d1ac4
@@ -36,7 +36,8 @@ do-- function STRING.shiftChar(c)
|
||||
end
|
||||
end
|
||||
|
||||
local upperData,lowerData
|
||||
-- [LOW PERFORMANCE!]
|
||||
local upperData,lowerData,VIdiaData
|
||||
function STRING.upperUTF8(str)
|
||||
for _,pair in next,upperData do
|
||||
str=str:gsub(pair[1],pair[2])
|
||||
@@ -49,6 +50,16 @@ function STRING.lowerUTF8(str)
|
||||
end
|
||||
return str
|
||||
end
|
||||
--[[
|
||||
[FOR VIETNAMESE ONLY]
|
||||
Remove all diacritics in strings written in Vietnamese
|
||||
]]
|
||||
function STRING.viRemoveDiacritics(str)
|
||||
for _,pair in next,VIdiaData do
|
||||
str=str:gsub(pair[1],pair[2])
|
||||
end
|
||||
return str
|
||||
end
|
||||
|
||||
function STRING.trim(s)
|
||||
if not s:find("%S") then return "" end
|
||||
@@ -390,34 +401,44 @@ function STRING.unpackTable(t)
|
||||
return JSON.decode(STRING.unpackText(t))
|
||||
end
|
||||
|
||||
repeat
|
||||
if love and love.filesystem and type(love.filesystem.read)=='function' then
|
||||
upperData=love.filesystem.read('Zframework/upcaser.txt')
|
||||
lowerData=love.filesystem.read('Zframework/lowcaser.txt')
|
||||
do
|
||||
local function readF(fname)
|
||||
if love and love.filesystem and type(love.filesystem.read)=='function' then
|
||||
f=love.filesystem.read(fname)
|
||||
else
|
||||
local f=io.open(fname,'r')
|
||||
local d=f:read('a')
|
||||
f:close()
|
||||
end
|
||||
return f
|
||||
end
|
||||
upperData=readF('Zframework/upcaser.txt')
|
||||
lowerData=readF('Zframework/lowcaser.txt')
|
||||
VIdiaData=readF('Zframework/vi_diaractics.txt')
|
||||
|
||||
local function splitData(data)
|
||||
for i=1,#data do
|
||||
local pair=STRING.split(data[i],'=')
|
||||
data[i]=pair
|
||||
end
|
||||
return data
|
||||
end
|
||||
if upperData then upperData=splitData(STRING.split(gsub(upperData,'\n',','),','))
|
||||
else
|
||||
local f=io.open('Zframework/upcaser.txt','r')
|
||||
if not f then break end
|
||||
upperData=f:read('a')
|
||||
f:close()
|
||||
f=io.open('Zframework/lowcaser.txt','r')
|
||||
if not f then break end
|
||||
lowerData=f:read('a')
|
||||
f:close()
|
||||
upperData={}
|
||||
LOG('ERROR: Failed to read the data from Zframework/upcaser.txt')
|
||||
end
|
||||
if lowerData then lowerData=splitData(STRING.split(gsub(lowerData,'\n',','),','))
|
||||
else
|
||||
lowerData={}
|
||||
LOG('ERROR: Failed to read the data from Zframework/lowcaser.txt')
|
||||
end
|
||||
|
||||
upperData=STRING.split(gsub(upperData,'\n',','),',')
|
||||
lowerData=STRING.split(gsub(lowerData,'\n',','),',')
|
||||
|
||||
for i=1,#upperData do
|
||||
local pair=STRING.split(upperData[i],'=')
|
||||
-- upperData[pair[1]]=pair[2]
|
||||
upperData[i]=pair
|
||||
if VIdiaData then VIdiaData=splitData(STRING.split(gsub(VIdiaData,'\n',','),','))
|
||||
else
|
||||
VIdiaData={}
|
||||
LOG('ERROR: Failed to read the data from Zframework/vi_diaractics.txt')
|
||||
end
|
||||
for i=1,#lowerData do
|
||||
local pair=STRING.split(lowerData[i],'=')
|
||||
-- lowerData[pair[1]]=pair[2]
|
||||
lowerData[i]=pair
|
||||
end
|
||||
until true
|
||||
end
|
||||
|
||||
return STRING
|
||||
|
||||
12
Zframework/vi_diaractics.txt
Normal file
12
Zframework/vi_diaractics.txt
Normal file
@@ -0,0 +1,12 @@
|
||||
Á=A,À=A,Ả=A,Ã=A,Ạ=A,Ă=A,Ắ=A,Ằ=A,Ẳ=A,Ẵ=A,Ặ=A,Â=A,Ấ=A,Ầ=A,Ẩ=A,Ẫ=A,Ậ=A
|
||||
á=a,à=a,ả=a,ã=a,ạ=a,ă=a,ắ=a,ằ=a,ẳ=a,ẵ=a,ặ=a,â=a,ấ=a,ầ=a,ẩ=a,ẫ=a,ậ=a
|
||||
Đ=D,đ=d
|
||||
É=E,È=E,Ẻ=E,Ẽ=E,Ẹ=E,Ê=E,Ế=E,Ề=E,Ể=E,Ễ=E,Ệ=E
|
||||
é=e,è=e,ẻ=e,ẽ=e,ẹ=e,ê=e,ế=e,ề=e,ể=e,ễ=e,ệ=e
|
||||
Í=I,Ì=I,Ỉ=I,Ĩ=I,Ị=I
|
||||
í=i,ì=i,ỉ=i,ĩ=i,ị=i
|
||||
Ó=O,Ò=O,Ỏ=O,Õ=O,Ọ=O,Ô=O,Ố=O,Ồ=O,Ổ=O,Ỗ=O,Ộ=O,Ơ=O,Ớ=O,Ờ=O,Ở=O,Ỡ=O,Ợ=O
|
||||
ó=o,ò=o,ỏ=o,õ=o,ọ=o,ô=o,ố=o,ồ=o,ổ=o,ỗ=o,ộ=o,ơ=o,ớ=o,ờ=o,ở=o,ỡ=o,ợ=o
|
||||
Ú=U,Ù=U,Ủ=U,Ũ=U,Ụ=U,Ư=U,Ứ=U,Ừ=U,Ử=U,Ữ=U,Ự=U
|
||||
ú=u,ù=u,ủ=u,ũ=u,ụ=u,ư=u,ứ=u,ừ=u,ử=u,ữ=u,ự=u
|
||||
Ý=Y,Ỳ=Y,Ỷ=Y,Ỹ=Y,Ỵ=Y,ý=y,ỳ=y,ỷ=y,ỹ=y,ỵ=y
|
||||
@@ -113,7 +113,7 @@ Bạn muốn đóng góp vào bản dịch? Bạn có thể vào trang dự án
|
||||
"http://studio26f.org",
|
||||
},
|
||||
{"Dự án trên GitHub",
|
||||
"nhom02; mã nguồn mở; dự án; github; repository; kho lưu trữ",
|
||||
"nhom02; mã nguồn mở; github; repository; kho lưu trữ",
|
||||
"org",
|
||||
"Repository chính thức của Techmino trên GitHub. Chúng tôi sẽ rất cảm kích nếu bạn tặng cho chúng tôi một ngôi sao!",
|
||||
"https://github.com/26F-Studio/Techmino",
|
||||
@@ -138,18 +138,18 @@ Nhấn nút hình địa cầu để tham gia cùng chúng tôi!
|
||||
"Nội dung của nhóm này đã bị ẩn đi do yêu cầu của nền tảng. Nhưng bạn vẫn có thể hỏi về nội dung này trong server Discord của chúng tôi."
|
||||
},
|
||||
not FNNS and {"Ủng hộ 1",
|
||||
"nhom03; ủng hộ 1; wechat alipay",
|
||||
"nhom03; wechat alipay",
|
||||
"org",
|
||||
"Để ủng hộ cho Techmino thông qua WeChat Pay hoặc Alipay, gõ \"support\" ở trong console và quét mã QR.",
|
||||
} or {"*ĐÃ ẨN*", "", "org", ""},
|
||||
not FNNS and {"Ủng hộ 2",
|
||||
"nhom03; ủng hộ 2; afdian aidadian",
|
||||
"nhom03; afdian aidadian",
|
||||
"org",
|
||||
"Để ủng hộ cho Techmino qua Aifadian, nhấn vào nút hình địa cầu để mở trang ủng hộ này. Lưu ý là Aifadian sẽ tính thêm 6% phí giao dịch.",
|
||||
"https://afdian.net/@MrZ_26",
|
||||
} or {"*ĐÃ ẨN*", "", "org", ""},
|
||||
not FNNS and {"Ủng hộ 3",
|
||||
"nhom03; ủng hộ 3; patreon",
|
||||
"nhom03; patreon",
|
||||
"org",
|
||||
"Để ủng hộ cho Techmino qua Patreon, hãy nhấn vào nút hình địa cầu để mở trang ủng hộ này. Lưu ý là Patreon có thể tính phí dịch vụ cho bạn đối với các giao dịch trên một số tiền nhất định.",
|
||||
"https://www.patreon.com/techmino",
|
||||
@@ -166,7 +166,7 @@ Nhấn nút hình địa cầu để tham gia cùng chúng tôi!
|
||||
Chúng tôi có vài lời khuyên dành cho những người mới chơi xếp gạch:
|
||||
Hai thứ cơ bản:
|
||||
1. Chọn những game xếp gạch chuyên nghiệp có cơ chế điều khiển tốt. Techmino, TETR.IO, Jstris và Tetris Online là một số lựa chọn khá tốt đấy. Đừng chơi những game có đánh giá không tốt bởi vì đa số chúng không đi sát với Guideline, hoặc là có cơ chế điều khiển tệ hại; gây ảnh hưởng xấu trong quá trình luyện tập.
|
||||
2. Dành thời gian để học các kỹ năng cơ bản đã. Cố gắng dành nhiều thời gian hơn cho các kỹ năng như đọc NEXT hoặc có thể xóa Tetris một cách ổn định. Làm chủ các phần cơ bản trước khi nghĩ tới những kỹ năng nâng cao hơn như T-spin.
|
||||
2. Dành thời gian để học các kỹ năng cơ bản đã. Cố gắng dành nhiều thời gian hơn cho các kỹ năng như đọc hàng NEXT hoặc có thể xóa Tetris một cách ổn định. Làm chủ các phần cơ bản trước khi nghĩ tới những kỹ năng nâng cao hơn như T-spin.
|
||||
Ba kỹ năng cần có:
|
||||
1. Nhớ các vị trí xuất hiện của gạch.
|
||||
2. Nhớ các chuỗi thao tác để di chuyển gạch đến vị trí mong muốn.
|
||||
@@ -216,7 +216,7 @@ T-spin là một kỹ năng khá khó, không tài nào thành thạo nổi nế
|
||||
Lời khuyên của chúng tôi, bạn nên bắt đầu học làm T-spin khi bạn có thể:
|
||||
- Xoá 40 hàng trong vòng 60 giây (tùy vào khả năng cá nhân con số này sẽ khác)
|
||||
- Xóa 40 hàng chỉ dùng Tetris
|
||||
- Xóa 40 hàng chỉ dùng Tetris + không Hold mà không bị mất tốc độ quá nhiều
|
||||
- Xóa 40 hàng chỉ dùng Tetris + không HOLD mà không bị mất tốc độ quá nhiều
|
||||
|
||||
Những chế độ này sẽ giúp bạn củng cố kỹ năng đọc NEXT và lên kế hoạch.
|
||||
]],
|
||||
@@ -224,7 +224,7 @@ Những chế độ này sẽ giúp bạn củng cố kỹ năng đọc NEXT và
|
||||
{"Điều chỉnh DAS",
|
||||
"nhom04 das tuning",
|
||||
"help",
|
||||
"Với những người chơi đã có kinh nghiệm mà muốn chơi nhanh hơn, khuyên dùng DAS 4-6f (67-100 ms) và ARR 0f (các viên gạch sẽ ngay lập tức dính vào tường khi DAS kết thúc).\n\nNếu bạn thấy khó điều khiển, hãy thử tăng DAS lên 1-2 f, nhưng giữ ARR bé hơn 2 f (33 ms).\n\nTóm lại, DAS nên để thấp nhất có thể nhưng vẫn phải đảm bảo được game có thể phân biệt được bạn đang nhấn hay giữ phím trong khi ARR để ở mức thấp nhất có thể.",
|
||||
"Với những người chơi đã có kinh nghiệm mà muốn chơi nhanh hơn, khuyên dùng DAS 4-6f (67-100 ms) và ARR 0f (các viên gạch sẽ ngay lập tức dính vào tường khi DAS kết thúc).\n\nNếu bạn thấy khó điều khiển, hãy thử tăng DAS lên 1-2f, nhưng giữ ARR bé hơn 2f (33 ms).\n\nTóm lại, DAS nên để thấp nhất có thể nhưng vẫn phải đảm bảo được game có thể phân biệt được bạn đang nhấn hay giữ phím trong khi ARR để ở mức thấp nhất có thể.",
|
||||
},
|
||||
{"Bố cục phím",
|
||||
"nhom04 feel",
|
||||
@@ -255,9 +255,9 @@ Những yếu tố sau có thể ảnh hưởng tới việc xử lý gạch c
|
||||
]],
|
||||
},
|
||||
{"Các nút xoay",
|
||||
"nhom04 doublerotation hai phím xoay",
|
||||
"nhom04 doublerotation phím xoay",
|
||||
"help",
|
||||
"Dùng cả nút xoay trái và phải sẽ giảm số lần nhấn nút, vì xoay một hướng ba lần thì cũng tương tự xoay một lần hướng ngược lại.\nĐây cũng là một thứ cần phải lưu ý nếu bạn muốn thành thạo Finesse.\n\nNếu bạn dùng thêm nút xoay 180°, bạn có thể xoay tới bất kì hướng nào chỉ với 1 lần nhấn phím (nếu không xét spin).\nTuy nhiên, chúng tôi không khuyến khích dùng 180° vì không phải game nào cũng hỗ trợ xoay 180°, và sự khác biệt về tốc độ giữa việc dùng hai nút và ba nút là không quá đáng kể.\nBạn có thể bỏ qua kỹ thuật này trừ khi bạn muốn chơi nhanh hơn chớp.",
|
||||
"Dùng cả nút xoay trái và phải sẽ giảm số lần nhấn nút, vì xoay một hướng ba lần thì cũng tương tự xoay một lần hướng ngược lại.\nĐây cũng là một thứ cần phải lưu ý nếu bạn muốn thành thạo Finesse.\n\nNếu bạn dùng thêm nút xoay 180°, bạn có thể xoay tới bất kì hướng nào chỉ với 1 lần nhấn phím (nếu không xét spin).\n\nTuy nhiên, chúng tôi không khuyến khích dùng 180° vì không phải game nào cũng hỗ trợ xoay 180°, và sự khác biệt về tốc độ giữa việc dùng hai nút và ba nút là không quá đáng kể.\nBạn có thể bỏ qua kỹ thuật này trừ khi bạn muốn chơi nhanh hơn chớp.",
|
||||
},
|
||||
{"=[NHÓM 05]=",
|
||||
"nhom05",
|
||||
@@ -266,7 +266,7 @@ Những yếu tố sau có thể ảnh hưởng tới việc xử lý gạch c
|
||||
NHÓM 05: CÁC YẾU TỐ CẦN THIẾT CỦA CÁC GAME XẾP GẠCH HIỆN ĐẠI
|
||||
|
||||
Khái niệm về trò chơi Tetris hay trò chơi xếp gạch "hiện đại" khá là mờ nhạt.
|
||||
Nói chung, một game xếp gạch hiện đại thường sẽ bám sát theo Tetris Design Guideline (Bộ nguyên tắc thiết kế cho Tetris). Game nào thỏa mãn đa số các tiêu chí dưới đây có thể được coi là game xếp gạch hiện đại.
|
||||
Nói chung, một game xếp gạch hiện đại thường sẽ bám sát theo Tetris Design Guideline (Bộ nguyên tắc thiết kế cho một game Tetris). Game nào thỏa mãn đa số các tiêu chí dưới đây có thể được coi là game xếp gạch hiện đại.
|
||||
|
||||
1. Phần có thể nhìn thấy được của bảng có kích thước 10 cột × 20 hàng, cùng với 2 - 3 hàng ẩn ở trên cùng. (Kích thước bảng thực tế ở trong mã nguồn game thường cố định ở 10 cột × 40 hàng).
|
||||
2. Gạch mới xuất hiện ở giữa trên cùng của vùng có thể nhìn thấy (thường là ở hàng 21-22). Mỗi gạch đều có màu sắc và hướng xuất hiện mặc định riêng. Với những gạch có chiều dài lẻ có thể lệch sang trái hoặc phải 1 ô.
|
||||
@@ -274,29 +274,29 @@ Nói chung, một game xếp gạch hiện đại thường sẽ bám sát theo
|
||||
4. Có một hệ thống xoay, và cho phép xoay theo ít nhất 2 hướng. Ưu tiên hệ thống xoay SRS hoặc các biến thể tương tự.
|
||||
5. Có hệ thống chờ khóa gạch thích hợp.
|
||||
6. Có cơ chế top-out thích hợp.
|
||||
7. Có cột NEXT hiện từ 3 - 6 gạch sắp rơi (vẫn chấp nhận trường hợp chỉ hiện 1 gạch) và những gạch trong cột này phải giống tư thế khi chúng vừa mới xuất hiện trong bảng.
|
||||
7. Có hàng NEXT hiện từ 3 - 6 gạch sắp rơi (vẫn chấp nhận trường hợp chỉ hiện 1 gạch) và những gạch trong cột này phải giống tư thế khi chúng vừa mới xuất hiện trong bảng.
|
||||
8. Cho phép giữ gạch.
|
||||
9. Nếu có hệ thống chờ tạo gạch hoặc hệ thống chờ xóa hàng, game thường sẽ có hệ thống IRS và IHS. Techmino còn có cả hệ thống IMS nữa (tìm trong Zictionary để biết thêm).
|
||||
10. Có hệ thống DAS nhằm hỗ trợ các chuyển động ngang một cách chính xác và nhanh chóng.
|
||||
]],
|
||||
},
|
||||
{"Next (Kế / Tiếp)",
|
||||
"nhom05 preview next ke tiep",
|
||||
"nhom05 preview",
|
||||
"term",
|
||||
"Hiện chuỗi gạch sẽ lần lượt xuất hiện. Có một kỹ năng cần thiết đó là lên kế hoạch trước cách đặt các gạch từ cột NEXT. Số lượng gạch bạn muốn lên kế hoạch là tùy thuộc vào bạn và có thể thay đổi tùy theo chế độ chơi và tình trạng bảng chơi hiện tại của bạn.",
|
||||
"Là một hàng dùng để hiện chuỗi gạch sẽ lần lượt xuất hiện. Có một kỹ năng cần thiết đó là lên kế hoạch trước cách đặt các gạch từ hàng NEXT. Số lượng gạch bạn muốn lên kế hoạch là tùy thuộc vào bạn và có thể thay đổi tùy theo chế độ chơi và tình trạng bảng chơi hiện tại của bạn.",
|
||||
},
|
||||
{"Hold (Giữ)",
|
||||
"nhom05 hold",
|
||||
{"Hold (Giữ/Trữ/Cất)",
|
||||
"nhom05",
|
||||
"term",
|
||||
"Một chức năng cho phép bạn\n\t- Cất gạch vào HOLD và lấy gạch tiếp theo nếu chưa có gạch nào trong HOLD\n\t- Hoán đổi gạch đang rơi với gạch trong HOLD\n\nBình thường, Hold chỉ có thể được sử dụng 1 lần cho mỗi gạch.\n\nTrên thực tế, việc dùng Hold hay không cũng có ưu nhược của nó.\nNếu không dùng Hold:\n\t- Có thể giảm áp lực cho người chơi khi điều khiển gạch.\n\t- Đồng thời có thể giảm số phím cần nhấn trong game → có thể tăng KPS lên.\nTrên thực tế, đã có nhiều kỷ lục 40L được xác lập mà không cần Hold.\n\nNếu dùng Hold:\n\t- Hold có thể có ích trong nhiều trường hợp khác nhau (ví dụ như khi đang chơi ở tốc độ rơi cao).\n\t- Cho phép người chơi có thể làm được nhiều setup phức tạp hơn mà không đẩy thêm áp lực cho người chơi."
|
||||
"Một chức năng cho phép bạn sử dụng gạch ở trong ô HOLD\n(hoặc gạch đầu tiên ở hàng NEXT nếu bạn chưa cất gạch trước đó)\nvà cất gạch đang rơi vào ô HOLD \n\nBình thường, Hold chỉ có thể được sử dụng 1 lần cho mỗi gạch.\n\nTrên thực tế, việc dùng Hold hay không cũng có ưu nhược của nó.\nNếu không dùng Hold:\n\t- Có thể giảm áp lực cho người chơi khi điều khiển gạch.\n\t- Đồng thời có thể giảm số phím cần nhấn trong game → có thể tăng KPS lên.\nTrên thực tế, đã có nhiều kỷ lục 40L được xác lập mà không cần Hold.\n\nNếu dùng Hold:\n\t- Hold có thể có ích trong nhiều trường hợp khác nhau (ví dụ như khi đang chơi ở tốc độ rơi cao).\n\t- Cho phép người chơi có thể làm được nhiều setup phức tạp hơn mà không đẩy thêm áp lực cho người chơi."
|
||||
},
|
||||
{"Hold tại chỗ",
|
||||
"nhom05 inplace hold taicho",
|
||||
"nhom05 physicalhold physics inplacehold",
|
||||
"term",
|
||||
"*Chỉ có trên Techmino*\n\"Giữ ngay tại chỗ\".\n\nMột kiểu Hold đặc biệt cho phép gạch được lấy ra từ HOLD sẽ xuất hiện ngay tại vị trí mà gạch hiện tại đang rơi (khác với Hold thông thường khi mà gạch sẽ xuất hiện ở trên cùng của bảng).\nBạn có thể bật chức năng này trong Chế độ tự do.\n\nFun fact: người Trung gọi cái này là \"Physical Hold\"",
|
||||
},
|
||||
{"Swap (Chuyển)",
|
||||
"nhom05 hold chuyen",
|
||||
"nhom05 hold",
|
||||
"term",
|
||||
"Một biến thể khác của \"Hold\". Swap sẽ đổi gạch đang rơi với gạch tiếp theo trong NEXT. Bạn có thể bật chức năng này trong Chế độ tự do.",
|
||||
},
|
||||
@@ -316,32 +316,31 @@ Techmino mặc định sẽ không kiểm tra điều kiện Lock out và Top ou
|
||||
{"Vùng đệm",
|
||||
"nhom05 invisible buffer zone",
|
||||
"term",
|
||||
"Tên tiếng Anh là \"Buffer Zone\". Chỉ bao gồm các hàng từ hàng 21-40 (nằm ở phía trên vùng nhìn thấy).\n\nVùng này tồn tại vì sẽ có trường hợp hàng rác sẽ đẩy gạch trong bảng ra khỏi vùng nhìn thấy (dễ thấy nhất là Center 4-Wide).\nNhững ô gạch nào đi ra khỏi vùng nhìn thấy được sẽ đi vào vùng đệm và sẽ xuất hiện lại trong vùng nhìn thấy nếu bạn đã xóa đủ hàng.\n\nVùng đệm thường cao 20 ô, nhưng vài game có thể tăng con số đó tới vô cực.\n\nCác bạn có thể tìm hiểu thêm ở mục \"Vùng biến mất\".",
|
||||
"Tên tiếng Anh là \"Buffer Zone\". Chỉ bao gồm các hàng từ hàng 21-40 (nằm ở phía trên vùng nhìn thấy).\n\nTồn tại vùng này là vì sẽ có trường hợp hàng rác sẽ đẩy gạch trong bảng ra khỏi vùng nhìn thấy (dễ thấy nhất là Center 4-Wide).\nNhững ô gạch nào đi ra khỏi vùng nhìn thấy được sẽ đi vào vùng đệm và sẽ xuất hiện lại trong vùng nhìn thấy nếu bạn đã xóa đủ hàng.\n\nVùng đệm thường cao 20 ô (thường là do bảng đã bị cố định kích thước ở trong các dòng code), nhưng có game có vùng này cao vô hạn (ví dụ như trong chính Techmino luôn, khi bảng có thể mở rộng kích thước của nó).\n\nCác bạn có thể tìm hiểu thêm ở mục \"Vùng biến mất\".",
|
||||
},
|
||||
{"Vùng biến mất",
|
||||
"nhom05 gone vanish zone",
|
||||
"term",
|
||||
[[
|
||||
Tên tiếng Anh: "Vanish Zone".
|
||||
Là vùng bao gồm các hàng nằm ở trên "Vùng đệm", thường nằm từ hàng 40 trở lên.
|
||||
Tên tiếng Anh: "Vanish Zone". Là vùng bao gồm các hàng nằm ở trên "Vùng đệm", thường bắt đầu từ hàng 40 trở lên.
|
||||
|
||||
Bình thường, nếu có ô gạch nào ở trong vùng này thì game sẽ kích hoạt ngay cơ chế top-out.
|
||||
Tuy nhiên, mỗi game sẽ có cách xử lý khác nhau. Ví dụ:
|
||||
- Jstris: Vùng biến mất nằm ở hàng 22 trở lên, những ô gạch nào nằm trong vùng này sẽ biến mất hoàn toàn.
|
||||
- Tetris Online: Game sập.
|
||||
- Puyo Puyo Tetris: Các ô gạch ở vùng biến mất sẽ sao chép lại vô số lần khi xuống dưới vùng nhìn thấy (nhấn vào hình địa cầu để xem ví dụ của trường hợp này).
|
||||
- Puyo Puyo Tetris: Các ô gạch ở vùng biến mất sẽ sao chép lại vô số lần khi chúng quay về lại vùng nhìn thấy (nhấn vào hình địa cầu để xem ví dụ của trường hợp này).
|
||||
]],
|
||||
"https://youtu.be/z4WtWISkrdU",
|
||||
},
|
||||
{">A|Gạch",
|
||||
"nhom05a",
|
||||
"",
|
||||
"Bạn có biết?\nGame này hỗ trợ và cho phép bạn chơi với 29 loại gạch khác nhau\n\n1 Mino | 1 Domino | 2 Trimino | 7 Tetromino | 18 Pentomino\n\nMino: gạch 1 ô\nDomino: gạch 2 ô\nTrimino: gạch 3 ô\nTetromino: gạch 4 ô\nPentomino: gạch 5 ô\n\nTechmino có Hexomino không?\nBây giờ thì chưa nhưng tương lai thì có thể có.",
|
||||
"Bạn có biết?\nGame này hỗ trợ và cho phép bạn chơi với 29 loại gạch khác nhau\n\n1 Mino | 1 Domino | 2 Trimino | 7 Tetromino | 18 Pentomino\n\nMino: gạch 1 ô\nDomino: gạch 2 ô\nTrimino: gạch 3 ô\nTetromino: gạch 4 ô\nPentomino: gạch 5 ô\n\nTechmino có Hexomino (gạch 5 ô) không?\nBây giờ thì chưa nhưng tương lai thì có thể có.",
|
||||
},
|
||||
{"Hình dạng",
|
||||
"nhom05a hình dạng của tetro. hình dạng của tetromino"..tetromino,
|
||||
"nhom05a hình dáng"..tetromino,
|
||||
"term",
|
||||
"Trong đa số các game xếp gạch, tất cả gạch đều là Tetromino\n\nCó 7 loại Tetromino, nếu cho phép xoay nhưng không lật ngang hay dọc, gồm: Z, S, J, L, T, O, và I.\nHãy xem mục \"Gạch & tên tương ứng\" để có thêm thông tin.", -- Removed " - gạch được liên kết bởi 4 ô, bám dính vào mặt chứ không bám vào góc."
|
||||
"Trong đa số các game xếp gạch, tất cả gạch đều là Tetromino\n\nCó 7 loại Tetromino, nếu cho phép xoay nhưng không lật ngang hay dọc, gồm: Z, S, J, L, T, O, và I.\nHãy xem mục \"Tên\" (Nhóm 05A) để có thêm thông tin.", -- Removed " - gạch được liên kết bởi 4 ô, bám dính vào mặt chứ không bám vào góc."
|
||||
},
|
||||
{"Màu",
|
||||
"nhom05a màu"..tetromino,
|
||||
@@ -349,7 +348,7 @@ Tuy nhiên, mỗi game sẽ có cách xử lý khác nhau. Ví dụ:
|
||||
"Nhiều game xếp gạch hiện đại, từ chính thức tới fan-made, đã và đang sử dụng cùng một bảng màu duy nhất cho Tetromino.\n\nNhững màu này bao gồm:\n\tZ - Đỏ \n\tS - Xanh lá \n\tJ - Xanh dương \n\tL - Cam \n\tT - Tím \n\tO - Vàng \n\tI - Xanh lơ\n\nTechmino cũng sử dụng bảng màu này để tô màu cho Tetromino.",
|
||||
},
|
||||
{"Tên",
|
||||
"nhom05a mino gạch & tên tương ứng gạch và tên tương ứng"..tetromino,
|
||||
"nhom05a mino tên gạch"..tetromino,
|
||||
"term",
|
||||
"Đây là danh sách gạch mà Techmino sử dụng\n(cùng với tên tương ứng của chúng):\n\nTetromino:\nZ: "..CHAR.mino.Z..", S: "..CHAR.mino.S..", J: "..CHAR.mino.J..", L: "..CHAR.mino.L..", T: "..CHAR.mino.T..", O: "..CHAR.mino.O..", I: "..CHAR.mino.I..";\n\nPentomino:\nZ5: "..CHAR.mino.Z5..", S5: "..CHAR.mino.S5..", P: "..CHAR.mino.P..", Q: "..CHAR.mino.Q..", F: "..CHAR.mino.F..", E: "..CHAR.mino.E..", T5: "..CHAR.mino.T5..", U: "..CHAR.mino.U..", V: "..CHAR.mino.V..", W: "..CHAR.mino.W..", X: "..CHAR.mino.X..", J5: "..CHAR.mino.J5..", L5: "..CHAR.mino.L5..", R: "..CHAR.mino.R..", Y: "..CHAR.mino.Y..", N: "..CHAR.mino.N..", H: "..CHAR.mino.H..", I5: "..CHAR.mino.I5..";\n\nTrimino, Domino và Mino:\nI3: "..CHAR.mino.I3..", C: "..CHAR.mino.C..", I2: "..CHAR.mino.I2..", O1: "..CHAR.mino.O1..".",
|
||||
},
|
||||
@@ -471,17 +470,17 @@ So với XRS, BiRS dễ nhớ hơn vì chỉ dùng một bảng wall-kick; nhưn
|
||||
{"IRS",
|
||||
"nhom05c initialrotationsystem",
|
||||
"term",
|
||||
"Initial Rotation System\nCho phép bạn giữ phím xoay trong khoảng thời gian chờ tạo gạch (spawn delay) để gạch được xoay sẵn lúc xuất hiện. Việc này có thể giúp bạn thoát chết trong một vài tình huống."
|
||||
"Initial Rotation System\nCho phép bạn giữ phím xoay trong lúc chờ tạo gạch (spawn delay) để gạch được xoay sẵn lúc xuất hiện. Việc này có thể giúp bạn thoát chết trong một vài tình huống."
|
||||
},
|
||||
{"IHS",
|
||||
"nhom05c initialholdsystem",
|
||||
"term",
|
||||
"Initial Hold System\nCho phép bạn giữ phím Hold trong khoảng thời gian chờ tạo gạch (spawn delay) để thay gạch sắp tới bằng gạch trong HOLD. Việc này có thể giúp bạn thoát chết trong một vài tình huống.",
|
||||
"Initial Hold System\nCho phép bạn giữ phím Hold trong lúc chờ tạo gạch (spawn delay) để thay gạch sắp tới bằng gạch trong HOLD. Việc này có thể giúp bạn thoát chết trong một vài tình huống.",
|
||||
},
|
||||
{"IMS",
|
||||
"nhom05c initialmovesystem",
|
||||
"term",
|
||||
"Initial Movement System\n*Chỉ có trên Techmino*\n\nCho phép bạn giữ một phím di chuyển trái phải trong khoảng thời gian chờ tạo gạch (spawn delay) để gạch xuất hiện cách chỗ ban đầu 1 ô theo hướng được giữ. Việc này có thể giúp bạn thoát chết trong một vài tình huống.\nLưu ý: DAS buộc phải được \"sạc\" đầy trước khi gạch xuất hiện.",
|
||||
"Initial Movement System\n*Chỉ có trên Techmino*\n\nCho phép bạn giữ một phím di chuyển trái phải trong lúc chờ tạo gạch (spawn delay) để gạch xuất hiện cách chỗ ban đầu 1 ô theo hướng được giữ. Việc này có thể giúp bạn thoát chết trong một vài tình huống.\nLưu ý: DAS buộc phải được \"nạp đầy\" trước khi gạch xuất hiện.",
|
||||
},
|
||||
{">D|Các kiểu xáo",
|
||||
"nhom05d",
|
||||
@@ -604,7 +603,7 @@ Xem mục tiếp theo để biết thêm.
|
||||
{"Lockdown Delay",
|
||||
"nhom05e1 lockdelay lockdowndelay lockdowntimer ld; thời gian chờ khóa gạch",
|
||||
"term",
|
||||
"Thời gian chờ khóa gạch, viết tắt là LD.\nĐây là khoảng thời gian sau khi gạch chạm đất và trước khi gạch bị khóa (không thể điều khiển được nữa).\n\nTrong các game xếp gạch cổ điển, khoảng thời gian chờ này = khoảng thời gian gạch cần có để di chuyển xuống 1 ô, và không có cơ chế nào để trì hoãn việc khóa gạch.\n\nTrong các game xếp gạch hiện đại, thời gian chờ được thong thả hơn, và trong game thường có cơ chế trì hoãn việc khóa gạch, trong đó bạn có thể di chuyển hoặc xoay gạch để đặt lại thời gian chờ (tối đa 15 lần trong hầu hết các game).",
|
||||
"Thời gian chờ khóa gạch, viết tắt là LD.\nĐây là khoảng thời gian ngay sau khi gạch chạm đất và trước khi gạch bị khóa (không thể điều khiển được nữa).\n\nTrong các game xếp gạch cổ điển, khoảng thời gian chờ này = khoảng thời gian gạch cần có để di chuyển xuống 1 ô, và không có cơ chế nào để trì hoãn việc khóa gạch.\n\nTrong các game xếp gạch hiện đại, thời gian chờ được thong thả hơn, và trong game thường có cơ chế trì hoãn việc khóa gạch, trong đó bạn có thể di chuyển hoặc xoay gạch để đặt lại thời gian chờ (tối đa 15 lần trong hầu hết các game).",
|
||||
},
|
||||
{"Spawn&ClearDelay",
|
||||
"nhom05e1 spawndelay cleardelay; thời gian chờ gạch sinh ra; thời gian chờ xóa hàng",
|
||||
@@ -614,7 +613,7 @@ Xem mục tiếp theo để biết thêm.
|
||||
{"ARE",
|
||||
"nhom05e1 spawn appearance delay",
|
||||
"term",
|
||||
"Thời gian chờ xuất hiện gạch mới\nHay còn được biết với tên: Appearance Delay và Entry Delay.\n\n\"ARE\" chỉ khoảng thời gian sau khi gạch bị khóa và trước khi gạch mới xuất hiện\n\nTừ \"ARE\" không phải là từ viết tắt hay hay là một dạng của \"be\" trong tiếng Anh; nó bắt nguồn từ <あれ> (a-re) trong tiếng Nhật, có nghĩa là \"nó\" hoặc \"cái đó\" / \"cái kia\" / \"cái ấy\".",
|
||||
"Thời gian chờ xuất hiện gạch mới\nHay còn được biết với tên: Appearance Delay và Entry Delay.\n\n\"ARE\" chỉ khoảng thời gian sau khi gạch bị khóa và trước khi gạch mới xuất hiện\n\nP/s: Từ \"ARE\" không phải là từ viết tắt hay hay là một dạng của \"be\" trong tiếng Anh; nó bắt nguồn từ <あれ> (a-re) trong tiếng Nhật, có nghĩa là \"nó\" hoặc \"cái đó\" / \"cái kia\" / \"cái ấy\".",
|
||||
},
|
||||
{"Line ARE",
|
||||
"nhom05e1 appearance delay",
|
||||
@@ -1007,7 +1006,7 @@ Chế độ Stack của Techmino cũng bắt nguồn từ game này.
|
||||
[[
|
||||
Chơi trên trình duyệt | Chơi đơn / Chơi trực tuyến | Hỗ trợ cảm ứng
|
||||
|
||||
Gọi tắt là JS. Nó có một số chế độ chơi đơn với thông số có thể điều chỉnh được. Có thể điều chỉnh phím ảo trên màn hình, nhưng trò chơi này không có hiệu ứng động nào cả.
|
||||
Gọi tắt là JS. Game này có một số chế độ chơi đơn với thông số có thể điều chỉnh được. Có thể điều chỉnh phím ảo trên màn hình, nhưng trò chơi này không có hiệu ứng động nào cả.
|
||||
]],
|
||||
"https://jstris.jezevec10.com",
|
||||
},
|
||||
@@ -1017,7 +1016,7 @@ Gọi tắt là JS. Nó có một số chế độ chơi đơn với thông số
|
||||
[[
|
||||
Chơi trên trình duyệt / client chính thức | Chơi đơn / Chơi trực tuyến
|
||||
|
||||
Gọi tắt là tetrio hoặc IO. Trò chơi này có một hệ thống xếp rank cũng như có chế độ tự do với nhiều thông số có thể tùy chỉnh. Trò chơi này cũng có một client dành cho máy tính, giúp cải thiện tốc độ, giảm độ trễ và gỡ bỏ quảng cáo
|
||||
Gọi tắt là tetrio hoặc IO. Trò chơi này có một hệ thống xếp rank cũng như có chế độ tự do với nhiều thông số có thể tùy chỉnh. Trò chơi này cũng có một client dành cho máy tính, giúp cải thiện tốc độ, giảm độ trễ và bỏ quảng cáo
|
||||
|
||||
[MrZ: Có vẻ như Safari không thể mở game này.]
|
||||
]],
|
||||
@@ -1072,7 +1071,7 @@ Có thể áp dụng cho "Tetris Gems" và "Tetris Mind Bender"]
|
||||
Hiện có ba cách điều khiển: hai cách dành cho màn hình cảm ứng gồm "vuốt" (swipe) và "thông minh" (smart), hoặc cắm bàn phím (nếu máy hỗ trợ).
|
||||
Bạn có thể thử nghiệm với cả ba chế độ điều khiển để tìm xem chế độ nào tối ưu với mình nhất
|
||||
|
||||
Để điều khiển bằng bàn phím thì hãy kết nối bàn phím (miễn là điện thoại nhận được bàn phím thì game cũng sẽ nhận thôi)
|
||||
Để điều khiển bằng bàn phím thì hãy kết nối bàn phím (miễn là điện thoại nhận được bàn phím thì game cũng sẽ nhận)
|
||||
Để đổi giữa "vuốt" và "thông minh" thì hãy mở Options của game.
|
||||
]]
|
||||
},
|
||||
@@ -1350,7 +1349,7 @@ Android | Chơi trực tuyến
|
||||
|
||||
(JJ块)
|
||||
|
||||
Một game xếp gạch ở trên JJ Card Games (JJ棋牌). Chơi ở màn hình dọc, độ trễ đầu vào thấp, điều khiển mượt. DAS / ARR có thể điều chỉnh được và có thể đổi giữ Thả nhanh / Thả nhẹ, nhưng hạn chế về tùy biến bố cục phím ảo. Không Hold cũng như B2B, không bộ đệm rác hay cơ chế hủy rác. Mỗi tấn công gửi tối đa 4 hàng, còn cơ chế combo thì "ao chình". Phần còn lại thì tương tự như Tetris hiện đại.
|
||||
Một game xếp gạch ở trên JJ Card Games (JJ棋牌). Chơi ở màn hình dọc, độ trễ đầu vào thấp, điều khiển mượt. DAS / ARR có thể điều chỉnh được và có thể đổi giữ Thả nhanh / Thả nhẹ, nhưng hạn chế về tùy biến bố cục phím ảo. Không HOLD cũng như B2B, không bộ đệm rác hay cơ chế hủy rác. Mỗi tấn công gửi tối đa 4 hàng, còn cơ chế combo thì "ao chình". Phần còn lại thì tương tự như Tetris hiện đại.
|
||||
]],
|
||||
},
|
||||
{"Huopin Tetris",
|
||||
@@ -1361,7 +1360,7 @@ Windows | Chơi trực tuyến
|
||||
|
||||
(火拼俄罗斯)
|
||||
|
||||
Một game xếp gạch ở trên Tencent Game Center - một nền tảng chơi game trực tuyến dành riêng tại Trung Quốc. Có bảng rộng 12 ô, 1 Next, 0 Hold. DAS và ARR giống với DAS và ARR hay dùng trong các app gõ văn bản, 1 Next, không Hold. Chỉ có thể gửi rác bằng Tetris (gửi 3 hàng rác) và xóa 3 hàng (gửi 2 hàng rác). Hàng rác có cấu trúc xen kẽ và gần như không thể đào.
|
||||
Một game xếp gạch ở trên Tencent Game Center - một nền tảng chơi game trực tuyến dành riêng tại Trung Quốc. Có bảng rộng 12 ô, 1 NEXT, 0 HOLD, DAS và ARR giống với DAS và ARR hay dùng trong các app gõ văn bản. Chỉ có thể gửi rác bằng Tetris (gửi 3 hàng rác) và xóa 3 hàng (gửi 2 hàng rác). Hàng rác có cấu trúc xen kẽ và gần như không thể đào.
|
||||
]],
|
||||
},
|
||||
{"=[NHÓM 07]=",
|
||||
@@ -1384,7 +1383,7 @@ NHÓM 07: MỘT VÀI CƠ CHẾ VÀ CHẾ ĐỘ CỦA MỘT SỐ GAME
|
||||
{"Chế độ MPH",
|
||||
"nhom07 mph",
|
||||
"term",
|
||||
"Sự kết hợp của ba quy tắc:\n\n\"Memoryless - Không nhớ gì\" (chuỗi gạch tạo ra hoàn toàn ngẫu nhiên)\n\"Previewless - Không biết trước gạch nào sẽ tới\" (không hiện NEXT)\n\"Holdless- Không Hold được\".\n\nMột chế độ đòi hỏi tốc độ và phản ứng nhạy bén từ người chơi.",
|
||||
"Sự kết hợp của ba quy tắc:\n\n\"Memoryless - Không nhớ gì\" (chuỗi gạch tạo ra hoàn toàn ngẫu nhiên)\n\"Previewless - Không biết trước gạch nào sẽ tới\" (không có hàng NEXT)\n\"Holdless- Không có ô HOLD\".\n\nMột chế độ đòi hỏi tốc độ và phản ứng nhạy bén từ người chơi.",
|
||||
},
|
||||
{"Secret Grade",
|
||||
"nhom07 larger than > <",
|
||||
@@ -1573,7 +1572,7 @@ Nhấn nút hình địa cầu để vào server Discord, còn nếu muốn vào
|
||||
{"A|Stacking",
|
||||
"nhom11a",
|
||||
"",
|
||||
"NHÓM 11A: STACKING (XẾP LÊN)\n\nDùng để chỉ việc xếp các gạch làm sao mà không để lại một cái lỗ.\nĐây là kỹ năng càn thiết yêu càu khả năng tận dụng Next.\nBạn có thể cải thiện kỹ năng này bằng cách luyện tập 40L với 0 HOLD",
|
||||
"NHÓM 11A: STACKING (XẾP LÊN)\n\nDùng để chỉ việc xếp các gạch làm sao mà không để lại một cái lỗ.\nĐây là kỹ năng càn thiết yêu càu khả năng tận dụng hàng NEXT.\nBạn có thể cải thiện kỹ năng này bằng cách luyện tập 40L với 0 HOLD",
|
||||
},
|
||||
{"Side well",
|
||||
"nhom11a ren combo sidewell",
|
||||
@@ -1598,7 +1597,7 @@ Nhấn nút hình địa cầu để vào server Discord, còn nếu muốn vào
|
||||
{"Side 2-wide",
|
||||
"nhom11a s2w side2wide sidewell",
|
||||
"term",
|
||||
"Hay còn gọi là S2W.\nVới setup này bạn sẽ xây một cái giếng sâu rộng 2 ô ở một bên bảng.\n\nS2W rất dễ xây và có thể tạo ra combo khá dài khi kết hợp với Hold.\nTuy nhiên, những người chơi giỏi hơn cũng sẽ ít khi dùng setup này vì các lý do tương tự như S1W.",
|
||||
"Hay còn gọi là S2W.\nVới setup này bạn sẽ xây một cái giếng sâu rộng 2 ô ở một bên bảng.\n\nS2W rất dễ xây và có thể tạo ra combo khá dài khi kết hợp với HOLD.\nTuy nhiên, những người chơi giỏi hơn cũng sẽ ít khi dùng setup này vì các lý do tương tự như S1W.",
|
||||
},
|
||||
{"Side 3-wide",
|
||||
"nhom11a s3w side3wide sidewell",
|
||||
@@ -1753,7 +1752,7 @@ Opener phải đạt 2 trong 4 tiêu chí sau
|
||||
{"Perfect Clear Opener",
|
||||
"nhom12a opener 7piecepuzzle",
|
||||
"setup",
|
||||
"Một opener làm All Clear có khả năng thành công cao (~84.6% nếu bạn đang giữ I trong ô Hold và ~61.2% nếu không giữ).\n\nTrong chế độ PC Training (Luyện tập PC), setup này được sử dụng để tạo ra setup chưa hoàn chỉnh, không tạo ra lỗ.\n\nĐể có thêm thông tin, bạn có thể nhấn nút hình địa cầu để mở bài ở trên wiki Hard Drop",
|
||||
"Một opener làm All Clear có khả năng thành công cao (~84.6% nếu bạn đang giữ I trong ô HOLD và ~61.2% nếu không giữ).\n\nTrong chế độ PC Training (Luyện tập PC), setup này được sử dụng để tạo ra setup chưa hoàn chỉnh, không tạo ra lỗ.\n\nĐể có thêm thông tin, bạn có thể nhấn nút hình địa cầu để mở bài ở trên wiki Hard Drop",
|
||||
"https://harddrop.com/wiki?search=Perfect_Clear_Opener",
|
||||
},
|
||||
{"Grace System",
|
||||
|
||||
@@ -217,9 +217,9 @@ return {
|
||||
|
||||
modInstruction="Hãy chọn modifier bạn muốn.\nMod cho phép bạn có thể tùy biến game, nhưng cũng có thể làm game sập.\nKể cả thế, hãy thoải mái và chơi theo cách của bạn!\nBạn có thể dùng bàn phím để chọn mod (giữ Shift để chọn lùi)\nĐiểm sẽ không được lưu lại khi dùng mod.",
|
||||
modInfo={
|
||||
next="NEXT\nGhi đè số gạch hiển thị ở cột NEXT",
|
||||
next="NEXT\nGhi đè số gạch hiển thị ở hàng NEXT",
|
||||
hold="HOLD\nGhi đè số lượng gạch được giữ ở cột HOLD",
|
||||
hideNext="Hidden NEXT\nẨn số lượng gạch ở cột NEXT (Tính từ ô đầu tiên)",
|
||||
hideNext="Hidden NEXT\nẨn số lượng gạch ở hàng NEXT (Tính từ ô đầu tiên)",
|
||||
infHold="InfiniHold\nCho phép bạn HOLD vô số lần",
|
||||
hideBlock="Hide Current Piece\nGạch đang rơi trong bảng sẽ bị tàng hình",
|
||||
hideGhost="No Ghost\nBóng gạch sẽ bị tắt",
|
||||
@@ -1040,7 +1040,7 @@ C. Tay cầm chơi game (Gamepad):
|
||||
"B2B2B2B tồn tại hả?",
|
||||
"Đừng để những thứ nhỏ nhặt làm bạn nản chí!",
|
||||
"Đây không phải là lỗi, đây là tính năng!",
|
||||
"Hệ thống xoay gạch của Techmino rất đẹp trai!",
|
||||
"Hệ thống xoay gạch của Techmino rất là đẹp trai!",
|
||||
"Em rất tốt nhưng anh rất tiếc…", -- EXCELLENT! But… let's go better next time
|
||||
"Đừng quên xem qua phần cài đặt!",
|
||||
"Nếu bạn thấy có vấn đề gì, hãy lên trang GitHub báo lại cho chúng tôi!",
|
||||
@@ -1133,7 +1133,7 @@ C. Tay cầm chơi game (Gamepad):
|
||||
{C.Z,"Gì? ",C.lC,"Xspin?"},
|
||||
|
||||
|
||||
|
||||
-- Bắt đầu từ đoạn này là mình phải lấy từ bản tiếng Trung nhờ cả Bard lẫn GPT3.5 dịch hộ :|
|
||||
-- TECHMINO FUN FACT
|
||||
-- How do you pronounce Techmino?
|
||||
"Phát âm từ Techmino như thế nào mới đúng?",
|
||||
@@ -1175,9 +1175,9 @@ C. Tay cầm chơi game (Gamepad):
|
||||
-- Don't play with your phone if your homework isn't finished.
|
||||
"Đừng chơi điện thoại khi bài tập về nhà còn chưa hoàn thành.",
|
||||
-- Enabling vibration on some mobile systems may cause severe lag."
|
||||
"Bật rung trên điện thoại có thể khiến máy phải thở oxy.",
|
||||
"Bật rung trên một số điện thoại có thể làm cho chúng… phải thở oxy!",
|
||||
-- Eat the button? Really? I suggest you play it back to see if you pressed it and how long it took you to press it"
|
||||
"Phím không ăn? Đùa à? Xem lại replay để chắc rằng ông đã nhấn và xem thử mất bao nhiêu thời gian để ông nhấn phím đó.",
|
||||
"Phím không ăn? Hãy thử kiểm tra lại phím đi!",
|
||||
-- Probably someone will read the tip
|
||||
"Chắc chắn có người đang đọc cái dòng chữ nhỏ đang chạy ở dưới này.",
|
||||
-- It seems like no one has reached a high level by playing with their feet yet.
|
||||
@@ -1187,19 +1187,19 @@ C. Tay cầm chơi game (Gamepad):
|
||||
-- The ability to dig is extremely important in battles!!!
|
||||
"Khả năng đào xuống (downstacking) của bạn là RẤT QUAN TRỌNG trong chiến đấu!!!",
|
||||
-- Skilled players of the Classic Tetris game are also formidable; don't underestimate them
|
||||
"Xếp gạch cổ điển cũng không đơn giản gì như xếp gạch hiện đại đâu. Đừng có mà xem thường những người chơi hệ cổ điển!",
|
||||
"Đừng có mà xem thường những người chơi xếp gạch cổ điển! Chơi cái đó cũng khó không khác gì chơi xếp gạch hiện đại đâu.",
|
||||
-- Classic Tetris and Modern Tetris are two different games; being skilled in one doesn't mean you'll be skilled in the other. You have to start from scratch.
|
||||
"Xếp gạch cổ điển và xếp gạch hiện đại là hai thể loại game khác nhau đấy! Giỏi một trong hai chưa chắc bạn giỏi cả bên còn lại đâu. Bạn phải học lại từ đầu đấy",
|
||||
-- To protect the players' well-being, the game has a temporary and simplified anti-addiction system! (But you probably won't trigger it, haha)
|
||||
"Để tránh việc người chơi nào đó chơi quá lâu, game đã có hệ thống chống nghiện đơn giản tạm thời (Nhưng bạn có lẽ sẽ không bao giờ kích hoạt chúng đâu, haha)",
|
||||
-- Basic stacking and digging skills are crucial; those who neglect these two aspects often regret it (trust me)
|
||||
{"Kỹ năng xếp lên vào đào xuống là 2 kỹ năng RẤT quan trọng; những ai (đã/từng) coi thường/bỏ bê hai khía cạnh này thường hay bị bón hành súp mặt lờ (tin ",C.W,"MrZ",C.Z," đi!)"},
|
||||
{"Kỹ năng xếp lên vào đào xuống là 2 kỹ năng RẤT quan trọng; những ai (đã/từng) coi thường hay bỏ bê hai khía cạnh này thường hay bị bón hành súp mặt lờ (tin ",C.W,"MrZ",C.Z," đi!)"},
|
||||
-- Even if you're topped out, don't give up; every line of garbage can potentially become your weapon.
|
||||
"Ngay cả khi bạn sắp bị top out, đừng bỏ cuộc; vì từng hàng rác có tiềm năng trở thành vũ khí của bạn!",
|
||||
"Đừng bỏ cuộc khi đống hàng rác đang làm bạn sắp bị top out, bởi bạn có thể biến chúng trở thành đòn phản công.",
|
||||
-- The video shown above is not a recording; it's the robot playing in real-time.
|
||||
"Cái ở trên là replay hả? Không, là AI đang chơi trong thời gian thực đấy!",
|
||||
"Cái ở trên là bản ghi sẵn hả? Không, là AI đang chơi trong thời gian thực đấy!",
|
||||
-- Extended gaming sessions will gradually deteriorate your performance! Remember to take breaks when playing for a long time~
|
||||
"THường xuyên chơi game lâu có thể khiến bạn có thể bị đuối sức (cả thể chất và tinh thần, tệ nhất có thể bị stall). Hãy nhớ nghỉ giải lao sau khi chơi lâu nhé!",
|
||||
"Thường xuyên chơi game lâu có thể khiến bạn có thể bị đuối sức (cả thể chất và tinh thần, tệ nhất có thể bị stall). Hãy nhớ nghỉ giải lao sau khi chơi lâu nhé!",
|
||||
-- Be careful of tenosynovitis!
|
||||
{C.R,"CẢNH BÁO! ",C.Z,"Bệnh viêm bao gân cổ tay!"},
|
||||
-- The button with a question mark in the bottom-right corner is the game manual (assuming you haven't enabled the Simple mode).
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
Lối chơi:
|
||||
Cách chơi:
|
||||
Hệ thống sẽ cấp cho người chơi 7 loại tetromino (gạch 4 ô) bao gồm: Z, S, J, L, I, O, T;
|
||||
và người chơi cần điều khiển chúng (di chuyển sang trái và phải; xoay 90 / 180 / 270 độ).
|
||||
Cứ mỗi hàng được lấp đầy trong bảng bởi các viên gạch, chúng sẽ bị xóa ra khỏi bảng.
|
||||
|
||||
@@ -18,6 +18,7 @@ local lastSelected -- Last selected item
|
||||
|
||||
local currentFontSize=25 -- Current font size, default: 25
|
||||
local needLowerUTF8
|
||||
local isLangVi -- There are special handlings that only for Vietnamese --SweetSea--
|
||||
|
||||
local typeColor={
|
||||
help=COLOR.Y,
|
||||
@@ -45,8 +46,10 @@ local function _scanDict(D)
|
||||
local O=D[i]
|
||||
O.title,O.title_Org=_filter(O[1])
|
||||
O.titleLowered=needLowerUTF8 and STRING.lowerUTF8(O.title) or O.title:lower()
|
||||
O.titleNoDiaratics=isLangVi and STRING.viRemoveDiacritics(O.titleLowered)
|
||||
O.keywords=O[2]
|
||||
O.keywordsLowered=needLowerUTF8 and STRING.lowerUTF8(O.keywords) or O.keywords:lower()
|
||||
O.keywordsNoDiaratics=isLangVi and STRING.viRemoveDiacritics(O.keywordsLowered)
|
||||
O.type=O[3]
|
||||
O.content,O.content_Org=_filter(O[4])
|
||||
O.url=O[5]
|
||||
@@ -92,7 +95,7 @@ local function _search()
|
||||
_clearResult()
|
||||
input=needLowerUTF8 and STRING.lowerUTF8(input) or input:lower()
|
||||
for i=1,#dict do
|
||||
pos=find(dict[i].titleLowered,input,nil,true) or find(STRING.lowerUTF8(dict[i].keywordsLowered),input,nil,true)
|
||||
pos=find(dict[i].titleLowered,input,nil,true) or find(dict[i].keywordsLowered,input,nil,true) or isLangVi and (find(dict[i].titleNoDiaratics,input,nil,true) or find(dict[i].keywordsNoDiaratics,input,nil,true))
|
||||
if pos==1 and not first then
|
||||
ins(result,1,dict[i])
|
||||
first=true
|
||||
@@ -145,6 +148,7 @@ function scene.enter()
|
||||
'en'
|
||||
)
|
||||
needLowerUTF8=SETTING.locale:find'vi'
|
||||
isLangVi=SETTING.locale:find'vi' -- DO NOT CHANGE THIS! --SweetSea--
|
||||
|
||||
dict=require(localeFile)
|
||||
_scanDict(dict)
|
||||
@@ -228,13 +232,13 @@ function scene.keyDown(key)
|
||||
-- MES.new("error","Hotload failed! May need restarting!\n\n"..table.concat(_r,"\n"))
|
||||
-- else
|
||||
-- local lastLscrollPos=listBox.scrollPos
|
||||
-- local lastTscrollPos=textBox.scrollPos
|
||||
-- local lastTscrollPos=contentBox.scrollPos
|
||||
-- listBox:setList(_getList())
|
||||
-- if #inputBox:getText()>0 then _search() end
|
||||
-- listBox.selected=lastSelected<#dict and lastSelected or #dict -- In case the last item is removed!
|
||||
-- listBox.scrollPos=lastLscrollPos
|
||||
-- _updateInfoBox()
|
||||
-- textBox.scrollPos=lastTscrollPos
|
||||
-- _updateContentBox()
|
||||
-- contentBox.scrollPos=lastTscrollPos
|
||||
-- SFX.play('pc')
|
||||
-- end
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user