Cuộc cách mạng tiếp theo trong việc gõ trên máy tính xách tay đã được SwiftKey phát hành vào ngày đầu tiên của tháng 4 năm 2014 . Tuy nhiên, tôi muốn trở thành người đầu tiên viết bản sao nano vuốt, nhưng, vì tôi không thể tìm thấy một văn bản vuốt tốt đến thư viện văn bản thực và tôi không thể chờ họ, tôi đang hỏi ở đây.
Bài tập
Viết chương trình lấy văn bản vuốt và xuất văn bản tương đương. Thí dụ:
Input: hgrerhjklo
Output: hello
Khi người dùng thực hiện:
Những ví dụ khác:
Input: wertyuioiuytrtjklkjhgfd
Output: world
Input: poiuytrtyuioiugrewsasdfgbhnmkijnbg
Output: programming
Input: poiuygfdzxcvhjklkjhgres
Output: puzzles
Input: cvhjioiugfde
Output: code
Input: ghiolkjhgf
Output: golf
Quy tắc
- Chương trình sẽ lấy một từ 'swiped' trên stdin hoặc argv
- Chữ cái đầu tiên và cuối cùng của đầu vào được vuốt sẽ tương đương với chữ cái đầu tiên và cuối cùng của từ thực sự
- Bạn có thể giả sử người dùng sẽ tạo các đường thẳng hợp lý, nhưng bạn có thể sử dụng dữ liệu mẫu để xác minh điều này (Tôi đã tạo dữ liệu mẫu và tôi sẽ tạo dữ liệu thử nghiệm cuối cùng)
- Đối với đầu vào không rõ ràng, bạn có thể chọn đầu ra, nhưng tôi sẽ cố gắng xóa tất cả sự mơ hồ khỏi dữ liệu thử nghiệm
- Từ này sẽ nằm trong danh sách từ này (nhưng đã vuốt). Danh sách từ sẽ nằm trong thư mục hiện tại và có thể được đọc (dòng mới được phân tách, sẽ được đặt tên
wordlist
, không có phần mở rộng). - Việc vuốt sẽ chỉ chứa các ký tự chữ cái viết thường
- Việc vuốt có thể chứa các ký tự trùng lặp, nếu người dùng tạm dừng trên một phím
- Chương trình phải xuất ra thiết bị xuất chuẩn (trường hợp không quan trọng)
- Chương trình phải trả về
0
làm mã trả về - Bạn phải cung cấp lệnh chạy, lệnh biên dịch (nếu cần), tên và đường dẫn đầu vào nào sẽ sử dụng
- Áp dụng sơ hở tiêu chuẩn (mặc dù chúng có thể không giúp đỡ)
- Không cho phép thư viện không dựng sẵn
- Các giải pháp xác định, không chơi gôn / che giấu được ưa thích
- Không có tập tin viết, mạng, vv
- Mã của bạn phải chạy trong một giây hoặc ít hơn (mã của bạn được chạy một lần cho mỗi từ)
- Việc chạy tính điểm được chạy trên bộ xử lý Intel i7 Haswell, với 4 mã ảo (2 mã thực), vì vậy bạn có thể sử dụng các luồng nếu bạn phải
- Độ dài mã tối đa 5000 byte
- Ngôn ngữ bạn sử dụng phải có phiên bản miễn phí (không dùng thử) dành cho Linux (Arch Linux, nếu có vấn đề)
Tiêu chí chiến thắng
- Người chiến thắng là giải pháp chính xác nhất (được ghi bởi chương trình kiểm soát , sử dụng danh sách kiểm tra được cung cấp)
- Phổ biến là máy cắt cà vạt
- Bảng điểm sẽ được cập nhật vài ngày một lần
- Thời gian chờ và sự cố được tính là thất bại
- Thử thách này sẽ diễn ra trong hai tuần trở lên, tùy thuộc vào mức độ phổ biến
- Điểm cuối cùng sẽ sử dụng một danh sách các từ được chọn ngẫu nhiên khác nhau (cùng độ dài, từ cùng một danh sách từ)
Khác
- Bạn có thể sử dụng chương trình điều khiển để kiểm tra chương trình của bạn
- Nếu bạn không kiên nhẫn và muốn chương trình của mình được cập nhật / thêm nhanh chóng, hãy bắt đầu một vấn đề hoặc yêu cầu kéo tại https://github.com/matsjoyce/codegolf-swipe-type/blob/master
- Các bài dự thi được duy trì tại https://github.com/matsjoyce/codegolf-swipe-type/blob/master/entries
- Nhật ký của mỗi lần chạy chương trình được duy trì tại https://github.com/matsjoyce/codegolf-swipe-type/blob/master/logs
- Nhật ký chính tại https://github.com/matsjoyce/codegolf-swipe-type/blob/master/log.log
- Vị trí của mỗi khóa sẽ được cung cấp dưới dạng tệp csv trong thư mục hiện tại được gọi
keypos.csv
, với các giá trị x và y được cung cấp tương đối vớiQ
(xem https://github.com/matsjoyce/codegolf-swipe-type/blob/master/ keypose.csv ) - Mỗi khóa có kích thước 1,5 x 1,5 cm (cùng đơn vị như trong keypose.csv)
Bảng điểm hiện tại
danh sách kiểm tra ( nhật ký ):
Three Pass Optimizer:Errors: 0/250 Fails: 7/250 Passes: 243/250 Timeouts: 0/250
Corner Sim: Errors: 0/250 Fails: 9/250 Passes: 241/250 Timeouts: 0/250
Discrete Fréchet Distance:Errors: 0/250 Fails: 17/250 Passes: 233/250 Timeouts: 0/250
Turnaround: Errors: 0/250 Fails: 18/250 Passes: 232/250 Timeouts: 0/250
Direction Checker: Errors: 0/250 Fails: 19/250 Passes: 231/250 Timeouts: 0/250
Regex Solver: Errors: 0/250 Fails: 63/250 Passes: 187/250 Timeouts: 0/250
Corner Sim: Errors: 0/250 Fails: 10/250 Passes: 240/250 Timeouts: 0/250
Three Pass Optimizer:Errors: 2/250 Fails: 14/250 Passes: 234/250 Timeouts: 0/250
Turnaround: Errors: 0/250 Fails: 16/250 Passes: 234/250 Timeouts: 0/250
Direction Checker: Errors: 0/250 Fails: 17/250 Passes: 233/250 Timeouts: 0/250
Discrete Fréchet Distance:Errors: 0/250 Fails: 18/250 Passes: 232/250 Timeouts: 0/250
Regex Solver: Errors: 0/250 Fails: 67/250 Passes: 183/250 Timeouts: 0/250
Chạy cuối cùng
danh sách kiểm tra ( nhật ký ):
Corner Sim: Errors: 0/250 Fails: 14/250 Passes: 236/250 Timeouts: 0/250
Three Pass Optimizer:Errors: 0/250 Fails: 18/250 Passes: 232/250 Timeouts: 0/250
Direction Checker: Errors: 0/250 Fails: 20/250 Passes: 230/250 Timeouts: 0/250
Turnaround: Errors: 0/250 Fails: 23/250 Passes: 227/250 Timeouts: 0/250
Discrete Fréchet Distance:Errors: 0/250 Fails: 30/250 Passes: 220/250 Timeouts: 0/250
Regex Solver: Errors: 0/250 Fails: 55/250 Passes: 195/250 Timeouts: 0/250
Làm tốt cho tất cả mọi người và hgfdsasdertyuiopoiuy swertyuiopoijnhg!
l
, mà không được nhân đôi.